Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Atuin, improved shell history with multi-machine sync (github.com/ellie)
48 points by elliebike 6 months ago | hide | past | favorite | 9 comments

This is cool! I've thought many times that something like this would be useful, as previous commands seem to never be in history when you need them again, especially across multiple terminal panes/tabs.

More details on how the encryption for server sync works would be helpful for assessing security.

Thank you! Yup, that's basically why I made it!

> More details on how the encryption for server sync works would be helpful for assessing security.

Good point - I'll add something more detailed to the README shortly

For now though, it's fairly simple. Almost all of the information is first serialized with MessagePack, and then encrypted using libsodium's secretbox. This blob is what ends up being POSTed to the server

The only other information available to the server operator is

  - the username/email address/hashed password of the user
  - the UUID of this history item
  - the history timestamp (needed for sync at the moment)
  - the hash of the machine's hostname (also useful for sync)

Nice, seems very solid!

I think mcfly's ( https://github.com/cantino/mcfly ) prioritization engine is still the killer feature for my purposes, but the sync server and timing display are both fantastic ideas, and I'd love to see them all together. Mcfly's also Rust+SQLite, even....

Remind me of python based "rash" application that did the same thing with sqlite based CMD history.

Kinda wish you made the same variables savable and supported additional search options (see rash) at https://pypi.org/project/rash/

I git commit my `fish_history` file such that I have a history of commands going back 7 years. It's been the single best tool of my career and the single greatest showcase of the power of an outboard brain I've struggled to prove with other solutions such as org-brain or org-roam.

Really cool! Needs more upvotes! I do kinda this with Dropbox, but way more crappy.

Neat. I always wanted something like this. Seems super useful if you have a ton of sessions / machines / etc. I will try it out this weekend!

Nice, would be great if it also worked without an actual server by just supporting synced file storage (e.g. Dropbox, Nextcloud, etc.)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact