frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Shittp – Volatile Dotfiles over SSH

https://github.com/FOBshippingpoint/shittp
78•sdovan1•3h ago

Comments

sdovan1•3h ago
I often need to login to colleagues' machines at work, but I find that their settings are not what I am familiar with. So I wrote an SSH wrapper in POSIX shell which tars dotfiles into a base64 string, passes it to SSH, and decodes / setups on the remote temp directory. Automatically remove when session ends.

Supported: .profile, .vimrc, .bashrc, .tmux.conf, etc.

This idea comes from kyrat[1]; passing files via a base64 string is a really cool approach.

[1]: https://github.com/fsquillace/kyrat/

amelius•38m ago
Ok, but what if your colleague does not have Vim installed?

Wouldn't it make more sense to have a tool that brings files over to the local computer, starts Vim on them, and then copies them back?

Joker_vD•36m ago
That starts to sound like using VS Code in remote mode.
exe34•27m ago
Emacs in tramp mode.
QuinnyPig•26m ago
I can’t recall encountering a system in the last 15 years that didn’t have vim (or at least vi for esoteric things) on it.
kees99•6m ago
Bare-bones Alpine installs often use busybox's vi implementation by default. Which doesn't parse .vimrc.
sdovan1•21m ago
We usually work on the VM with daily-built ISO. For example, I would compile and upload Java program to the frontend team member's VM, and type "srt" for "systemctl restart tomcat."
Joker_vD•37m ago

   scp my-precious-dotfiles remote:~
   trap 'ssh remote rm my-precious-dotfiles' EXIT
   ssh remote
Or you can even bake the trap into the remote bash's invocation, although that'd be a bit harder.
alsetmusic•21m ago
I came across something similar a few months ago. I pieced together a working hybrid by patching in parts from an older release with the latest version. I didn't ever work out if the latest version failed because of something in my environment or not, but I'm on a Mac fwiw.

https://github.com/cdown/sshrc

tensegrist•2h ago
time to call the it team at work (on the phone) to ask them to add a new item to the software allowlist
grepfru_it•2h ago
Be careful, this will force your defaults over system defaults possibly overriding compliance or security settings. There are a few places I noticed where well-placed malware could hop in etc.

It’s not bad software, it’s also not mature. I’m currently on a phone and on vacation so this is the extent of my review. Maybe I’ll circle back around with some PRs next week

tensegrist•2h ago
i was merely joking about the name apparently being intended to be pronounced in a rather juvenile manner
sdovan1•26m ago
It's not obvious, but the shitt-p is borrowed from an anime character. So it should pronounce like sheet-p: https://ipa-reader.com/?text=%C9%95it%CB%90opi%CB%90
Y_Y•2h ago

  tmp="$(mktemp -d)" && rsync -a --exclude='.ssh' user@host:~/.[!.]* "$tmp"/ && HOME="$tmp" exec "$SHELL"
imiric•2h ago
I use something similar.

It's surprising to me how many projects can be replaced with just a line or two of shell script. This project is a slightly more sophisticated shell script that exposes a friendlier UI, but I don't see why it's needed when the alternative is much simpler, considering the target audience.

grepfru_it•1h ago
I think this will copy your 9gb Mozilla cache directory as well? Still one liners like this is all you need lol
sigwinch•59m ago
Any sufficiently-advanced automated rsync would have a filter for caches.
grepfru_it•3m ago
Except only ssh is filtered. Just commenting on what I see, not what should be
Bender•52m ago
My mozilla cache would be under ~/.mozilla/firefox. Is the nightly version moving to ~/.config?

Reason I say would be is that I disable disk cache among other things performed by Arkenfox [1]

[1] - https://github.com/arkenfox/user.js

grepfru_it•4m ago
What does config have to do with the one liner?
twp•2h ago
chezmoi has similar functionality, but it does install a binary on the target machine:

https://www.chezmoi.io/reference/commands/ssh/

thunderbong•1h ago
Is this similar to sshrc?

https://github.com/cdown/sshrc

K0IN•1h ago
Maybe also kind of related xxh

https://github.com/xxh/xxh

goku12•1h ago
How about mounting your dotfiles directory (~/.config) or even your entire home directory on the remote system using SSHFS or NFS? I'm sure somebody would have tried it or some project may already exist. Any idea why that isn't as prevalent as copying your dotfiles over?
vbernat•1h ago
This would enable a lot of attacks.
goku12•1h ago
Could you elaborate?
kees99•4m ago
"Mounting your [...] entire home directory on the remote system", assuming it's a shared system would be just asking for trouble. Especially mounting r/w.
sigwinch•1h ago
I’m trying to imagine why sshfs mounting the less-capable remote onto the workstation would be blocked.
qudat•1h ago
I have a dotfiles git repo that symlinks my dotfiles. Then I can either pull the repo down on remote machine or rsync. I’m not sure why I would pick this over a git repo with a dotfiles.sh script

https://erock-git-dotfiles.pgs.sh/tree/main/item/dotfiles.sh...

montroser•42m ago
This is for when you have to ssh into some machine that's not yours, in order to do debugging or troubleshooting -- and you need your precious dotfiles while you're in there, but it would be not nice to scatter your config and leave it as a surprise for the next person.

This installs into temp dirs and cleans it all up when you disconnect.

Personally, my old-man solution to this problem is different: always roll with defaults even if you don't like them, and don't use aliases. Not for everyone, but I can ssh into any random box and not be flailing about.

Even with OP's neat solution, it's not really going to work when you have to go through a jump box, or have to connect with a serial connection or some enterprise audit loggable ssh wrapper, etc

throw2772•1h ago
This reminds me - in a previous company I worked at, we had a bunch of old firewalls and switches that ran SSH servers without support for modern key exchange algorithms etc

One of the engineers wrote a shell alias called “shitssh”, which would call ssh with the right options to allow the old crufty crypto algorithms to be used. This alias got passed down to new members of the team like a family heirloom.

est•1h ago
I wonder why are dofiles have to be on remote machines?

e.g. I type an alias, the ssh client expands it on my local machine and send complex commands to remote. Could this be possible?

I suppose a special shell could make it work.

minitech•55m ago
> I suppose a special shell could make it work.

Working on it! :)

Remote machines usually don’t need to know your keystrokes or handle your line editing, either. There’s a lot of latency to cut out, local customization to preserve, and protocol simplification to be had.

Joker_vD•41m ago
> I wonder why are dofiles have to be on remote machines?

Because the processes that use them run on the remote machines.

> I type an alias, the ssh client expands it on my local machine and send complex commands to remote.

This is not how SSH works. It merely takes your keystrokes and sends them to the remote machine, where bash/whatever reads and processes them.

Of course, you can have it work the way you imagine, it's just that it'd require a very special shell on your local machine, and a whole RAT client on the remote machine, which your special shell should be intimately aware about. E.g. TAB-completion of files would involve asking the remote machine to send the dir contents to your shell, and if your alias includes a process substitution... where should that process run?

drewr•35m ago
I didn't look closely at the project, but why take the extra step of base64? I do this all the time with tar by itself and it's wire-proof enough to work fine.

Show HN: Shittp – Volatile Dotfiles over SSH

https://github.com/FOBshippingpoint/shittp
78•sdovan1•3h ago•35 comments

Show HN: Jmail – Google Suite for Epstein files

https://www.jmail.world
1120•lukeigel•18h ago•246 comments

Show HN: Lyrics to Rolling WebVTT Converter

https://gitlab.com/9o1d/vtt
2•9o1d•19m ago•0 comments

Show HN: Passkeybot.com – add passkey auth with a few server side HTTP handlers

https://github.com/emadda/passkeybot
2•emadda•23m ago•0 comments

Show HN: The Official National Train Map Sucked, So I Made My Own

https://www.bdzmap.com/
22•Pavlinbg•3h ago•5 comments

Show HN: BetterQR – I got tired of $20/mo+ subscriptions for simple QR codes

https://www.betterqr.app
3•dzrmb•37m ago•0 comments

Show HN: HN Sentiment API – I ranked tech CEOs by how much you hate them

https://docs.hnpulse.com
4•kingofsunnyvale•41m ago•3 comments

Show HN: MomentBridge – A 24KB site to share life moments (pure HTML/CSS/JS)

https://vnglstzrs.github.io/momentbridge/
2•vangelistziaros•52m ago•0 comments

Show HN: RenderCV – Open-source CV/resume generator, YAML → PDF

https://github.com/rendercv/rendercv
5•sinaatalay•2h ago•0 comments

Show HN: Mushak – Zero config zero downtime Docker/Compose to server deployment

https://mushak.sh
4•hmontazeri•2h ago•3 comments

Show HN: HN Wrapped 2025 - an LLM reviews your year on HN

https://hn-wrapped.kadoa.com?year=2025
246•hubraumhugo•1d ago•131 comments

Show HN: Chishiko – 8 free AI tools for academic researchers (built on OpenAlex)

https://www.chishiko.com/
2•AiStyl•1h ago•0 comments

Show HN: Lockify – developer-friendly CLI for managing encrypted env variables

https://github.com/ahmed-abdelgawad92/lockify
4•ahmedabdelgawad•3h ago•0 comments

Show HN: Open-source Markdown research tool written in Rust – Ekphos

https://github.com/hanebox/ekphos
24•haneboxx•5d ago•6 comments

Show HN: I built an LLM agent that finds you online and roasts you

https://santa.veris.ai
2•_josh_meyer_•4h ago•0 comments

Show HN: ZXC – Asymmetric, +40% decode vs. LZ4 on ARM (C, BSD-3, Fuzzed)

https://github.com/hellobertrand/zxc
22•pollop_•4d ago•3 comments

Show HN: I built a job board that filters "Ghost Jobs" in the Middle East

https://camels.work/
2•adityamallah•5h ago•2 comments

Show HN: Claude Code Plugin to play music when waiting on user input

https://github.com/Sevii/agent-marketplace/blob/main/plugins/elevator-music/README.md
51•Sevii•23h ago•14 comments

Show HN: Chart Preview – Preview environments for Helm charts on every PR

19•chartpreview•22h ago•7 comments

Show HN: Ava – open-source AI voice assistant that runs in the browser

https://ava.muthu.co/
2•muthukrishnanwz•7h ago•1 comments

Show HN: TinyPDF – 3kb pdf library (70x smaller than jsPDF)

https://github.com/Lulzx/tinypdf
245•lulzx•2d ago•32 comments

Show HN: Stickerbox, a kid-safe, AI-powered voice to sticker printer

https://stickerbox.com/
44•spydertennis•1d ago•58 comments

Show HN: Wingspan Games: Arrow – a multiplayer game built in Elixir / Phoenix

https://wingspan.games/arrow
4•calflegal•15h ago•1 comments

Show HN: Picknplace.js, an alternative to drag-and-drop

https://jgthms.com/picknplace.js/
445•bbx•4d ago•149 comments

Show HN: Cerberus – Real-time network monitor with eBPF

https://github.com/zrougamed/cerberus
8•zrouga•21h ago•3 comments

Show HN: SHA-256 quasi-collision with 184/256 matching bits

https://github.com/POlLLOGAMER/SHA-256-Colision-Finder-NEW.ipynb/blob/main/Base_Version/SHA_256_C...
2•KaoruAK•12h ago•1 comments

Show HN: Misata – synthetic data engine using LLM and Vectorized NumPy

https://github.com/rasinmuhammed/misata
23•rasinmuhammed•5d ago•1 comments

Show HN: Learning a Language Using Only Words You Know

https://simedw.com/2025/12/15/langseed/
81•simedw•6d ago•28 comments

Show HN: Stop AI scrapers from hammering your self-hosted blog (using porn)

https://github.com/vivienhenz24/fuzzy-canary
367•misterchocolat•4d ago•276 comments

Show HN: ArkhamMirror – CIA's Analysis of Competing Hypotheses, Runs in Browser

https://mantisfury.github.io/ArkhamMirror/ach/
6•ArkhamMirror•14h ago•1 comments