frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Atuin – Magical Shell History

https://atuin.sh
103•tosh•3h ago

Comments

GardenLetter27•2h ago
Looks like it has some really nice features - https://docs.atuin.sh/configuration/key-binding/

I'm using fish + fzf atm but this looks better tbh.

leosanchez•2h ago
TIL: You can also self-host atuin.
znanz•2h ago
I have been using it for over 6 months self hosted, best feature is to be able to sync between all my machines. Really good to replicate my rsync across servers. And nothing leaves my private infrastructure. A breeze with docker.
raaron773•2h ago
atuin is great been using ít for few weeks now. i like how configurable the TUI itself is. The only thing i wish it had was profiles.
bananapub•2h ago
I've been using it for a year or two, and it's great. it's also very easy to run your own instance of it.
nidnogg•2h ago
I've been using Atuin for at least a year and a half, and I think it's definitely the tool I'd been looking for the most in my entire dev career. It has made me much more confident with my hazy memory. Before it I'd struggle consistently to remember most of my recent commands.

bck-i was always a bit obtuse to me and I honestly never grokked it until I had Atuin wired into my workflow (hard) and ran into bck-i instead when SSH'd.

Anytime a peer views my screenshare, they ask "what's the funny thing that makes you so fast". I then proceed to share, first and foremost, Atuin.

Thanks Atuin team! Would love to contribute someday with more time.

ellieh•2h ago
(dev here!) thank you so much! I love to hear things like this <3
lblume•1h ago
Thanks a lot for your work!
nidnogg•1h ago
now please give us the cloud history feature opt-out by default please please. cheers
ellieh•1h ago
You already have it

Nothing syncs without you registering an account or logging in

nidnogg•15m ago
lovely. I vaguely remember back when I first signed on, it wasn't opt-out by default so I assumed it stayed the same. disregard my quip! hahaha
Despacito2019•58m ago
did you even try to read the web page documentation? or the previous answer to that same question you asked? it doesn't send anything by default...
nidnogg•15m ago
it could've been back in the day when I first installed it. glad to have it resolved tho. take it easy man
InsideOutSanta•50m ago
I hadn't heard of this until just now, and I already can't imagine living without it. Thank you!
thibaultamartin•1h ago
I second this wholeheartedly. Atuin is a joy to use and makes it so easier to find past commands. Thanks a lot atuin, and thanks to the colleague who recommended it!
nkko•2h ago
Atuin has been a part of my dotfiles install.sh for the last two years. It became such an integral part of my flow that it became invisible. Prob not a good thing for them, but also a testament to how naturally it fits in.
drcongo•2h ago
I recently switched to Atuin from McFly, and while McFly has been a solid performer for me for years, I love Atuin. Worth pointing out for others who care about such things as it's not made clear on this landing page, you don't actually need to register - if you don't need the sync, you can just use it without registering and it's still amazing, and if you do need the sync but don't like the idea of your history being stored on someone else's server, you can self-host the sync server too.
kerberos84•2h ago
will you add support for ksh ?
tecleandor•2h ago
If any of you is having problems with Atuin acting weirds or slow, and has a ZFS filesystem, there's a known problem with sqlite and ZFS [0]. There are a couple of workarounds [1] that are, either using `atuin daemon`, or creating an ext4 volume for the atuin storage.

--

  0: https://docs.atuin.sh/known-issues/
  1: https://github.com/atuinsh/atuin/issues/952
kenanfyi•2h ago
I’ve been using it for more than a year and it’s already a must for me to install whenever I spin up a new server. Great piece of software!
MrSaints•2h ago
I can't remember what my terminal was like before this. It's so fast, seamless and part of my day to day workflow. Solid open source project.
moonshot5•2h ago
For zsh users who like this idea and don't want to have to worry about anything leaving the device (not to insinuate that Atuin is doing anything below board, I don't think they are) I built my own version of this for myself called raven:

https://github.com/tylersaunders/raven

Raven has no sync component, stores your history in a sqlite, and never tries to move data off the device. It has a similar / large overlap in features with Atuin.

Sharing here in case anyone else could benefit from it, it only supports zsh for the moment since that's what I use.

Atuin is great though!

shawabawa3•2h ago
you could just disable sync in atuin
phaer•1h ago
You could also just not enable it. It's off by default
tledakis•2h ago
For people OK with syncing to their own server, Atuin can be self-hosted as well

https://docs.atuin.sh/self-hosting/server-setup/

ellieh•2h ago
our sync is opt-in + optional, e2e encrypted, and self-hostable.

if that's not enough, you can disable all network features via a feature flag at compile time

if you don't care for sync, there are a bunch of other projects doing this (and supporting several shells), eg:

- mcfly: https://github.com/cantino/mcfly

- resh: https://github.com/curusarn/resh

nidnogg•1h ago
this is my only quip with atuin, despite my endorsement in a sibling comment. this should absolutely be opted-out BY DEFAULT. not defaulted to opt-in.

if you have someone outright cloning your entire project just to skip this opted-in privacy gap feature, it's a good indicator it's an issue to be mindful of!

phaer•1h ago
I think you might be mixing them up?

Opt-in means that the user needs to actively decide to use the feature, it's OFF by default. That's currently the case for atuin (happy user without sync here).

Opt-out would mean the feature would be ON by default and users would need to actively decide NOT to use it.

ellieh•1h ago
You actually have to go and register an account or log in for sync to happen at all

Otherwise it’s offline, by default, right after install

fluidcruft•1h ago
Isn't it off by default? That's what opt-in means as far as I know.
electromech•27m ago
I am happy Atuin user now, but I was initially worried that it would sync my data unless I explicitly disabled that feature. The fact that it's opt-in becomes clear once you read the docs and understand how it works, but it might be worth emphasizing that on the landing page. Currently it says:

    Shell history sync
    Sync your shell history to all of your machines, wherever they are
In any case, thanks for building a great tool!
pshirshov•2h ago
The sync feature is great, though there are many oddities with search sort order, unnecessary terminal cleanups, odd timeouts, etc. In some aspects it's a big upgrade from fzf, in some aspects it's a downgrade.
jbellis•1h ago
The search defaults are pretty bad, but I'm happy with "fuzzy" mode.
electromech•42m ago
The sort order is strange, I agree. I forked Atuin awhile back with the goal of adding more strategies, but it was tougher than I expected. IIRC, changing search order involves updating both the DB queries and how the application code interacts with them.
Tmpod•1h ago
I see it also supports fish. That's been my shell for many years, it just works really well and, as far as I can tell (couldn't find a demo on their website), it doesn't add much to fish beyond syncing?

Has anyone used fish + autuin? What are your thoughts? I'm curious to know if it is worth the extra tool, maybe I should just try it :)

aquova•1h ago
I've been using fish + atuin for well over a year now. I personally love it. I'm not sure if zsh or bash with atuin offers some additional features that fish doesn't, but the shell syncing and fuzzy search is enough of a value that it made it completely worth setting up for me.
ellieh•1h ago
The main thing would be opt-in syncing, and I think we might store a little more context than fish does in their SQLite!

Otherwise consistency is nice if you use a few setups

robertknight•36m ago
I use fish + atuin. I leave the "Up" arrow set to use fish's default history search (see https://docs.atuin.sh/faq/#how-do-i-remove-the-default-up-ar...), which keeps the UI minimal when just going back one or two commands, then use atuin via Ctrl+R when I need to find a command from earlier in my history. At that point Atuin provides a nicer UI for searching the history.
lblume•1h ago
Wow, this is incredibly useful. I was just thinking "why can't C-r just work like fzf", but this is a much better approach of course.
yesbut•1h ago
I'd never sync my shell history with a third party. The self-hosting option looks interesting, but anyone comfortable with syncing their shell history with a third party is severely lacking basic privacy literacy and underestimates the sensitivity of command history.
ellieh•1h ago
All user data is e2e encrypted, but yes self-hosting might make you feel better about where your data lives

We wrote some more about it here: https://blog.atuin.sh/new-encryption/

lotharcable•35m ago
I self host a atuin server.

It is a very easy thing to do.

You can use atuin without syncing it between multiple machines.

I have my shell environments divided up into different distrobox containers. Some of them sync between multiple machines. Some of them don't. Depends what the shell is for.

picardo•1h ago
Is there a way to change the key binding of the search screen? I'm too attached to using the up key to recover the last command I used, and it's a little jarring to now have to click tab from the Atuin search interface. It adds a little friction each time I have to do this.

As an aside, most of my usage of history is to use the last few commands I used, and so seeing the entire history each time seems like an overkill.

NoNotTheDuo•1h ago
There’s a whole doc page about it: https://docs.atuin.sh/configuration/key-binding/#disable-up-...
picardo•1h ago
Thanks. I bound it to double up key in zsh.

> bindkey '^[[A^[[A' atuin-up-search

Works much better now!

Fervicus•1h ago
How does it compare to mcfly? https://github.com/cantino/mcfly
beeb•56m ago
Opt-in sync with (self-hosted) server, no machine learning. Otherwise probably similar
oliviergg•1h ago
And don't forget to do :

`workspaces = true`

in your config, to limit your history to the current git repo.

Thank you very much atuin team. Can't work without atuin installed.

dmd•1h ago
If I explicitly DON’T want sync between machines (my workflows are very machine specific), does atuin give me anything significant over my current fzf based C-r?
beeb•1h ago
Ability to change the search mode (prefix, full text, fuzzy), and filter by path/host, time range, exit code, current session only, and more
ellieh•1h ago
Atuin stores much more context than ctrl-r does - exit codes, command duration and directory, etc

Also has functions for filtering command search by directory

Being backed by SQLite tends to mean your history is more durable + is properly saved across shells too

Lapel2742•58m ago
> does atuin give me anything significant over my current fzf based C-r

I'm interested in this as well. I currently use fzf and I'm happy with what I've got (except for me syncing would probably be a nice feature to have).

Also: I gave atuin a quick try and found the TUI to be worse than fzf. Why do I need a fullscreen ctrl-r interface? I found that distracting. But maybe that is configurable. I didn't look much further.

ellieh•57m ago
It is configurable!

And also the default is now to use 40 lines, not the alt screen (has its own drawbacks)

You can set “inline_height”

https://docs.atuin.sh/guide/basic-usage/#inline-window

Lapel2742•54m ago
Thank you. In might try it again some day.
electromech•52m ago
I have been a reluctant adopter of Atuin.

I don't use the sync feature, but I will say that "my workflows are very machine specific" is one of the reasons I use Atuin. When working in containers, I sometimes share an Atuin database volume between them, to save history relevant to those containers.

On MacOS the main reason I reach for Atuin is that I have never been able to get ZSH to store history properly. Atuin saves history to SQLite, which so far has been much more reliable. It also enables some nice features like being able to search commands run from the same directory.

outcoldman•1h ago
I have been storing shell history in SQLite since 2017 [1]. I have always been a heavy shell user, with the worst memory. So having all the history stored and backed up was very useful for me. At the time when I became a full-time macOS user, I built a ShellHistory app for macOS [2], with full-text search, notebooks, and sync over iCloud (with advanced data protection [3]).

I tried to contact Atuin authors to see if I could also integrate ShellHistory with their servers, but at that time it seemed like they did not support third-party clients, and the API was not documented.

I highly recommend using tools like Atuin and ShellHistory, at this point I have 136,000 records since 2017. My shell history is the best documentation for me. If I need to do a `kubectl --raw` API call, and don't remember exactly how to write it, I just search for `kubectl raw` and get some results from the history, don't remember some advanced `git rebase`, just search the history for it.

—-

- [1] https://www.outcoldman.com/en/archive/2017/07/19/dbhist/

- [2] https://loshadki.app/shellhistory/

- [3] https://support.apple.com/en-us/108756

Edit: fixed formatting

account-5•1h ago
You can use this with Nushell! Amazing, will give it a go, though Nushell is pretty good at history search itself
Despacito2019•54m ago
I love atuin but i am not quite as fond of the UI (only because i am not used to it), so i have my own little function to use atuin with fzf instead:

    insert_atuin_with_fzf () {
        local result
        result=$(atuin history list --reverse --format "{command}" | \
                awk '!seen[$0]++ && length($0) > 2 && !/^j /' | \
            fzf +s)
        [[ -n $result ]] && LBUFFER+="$result"
    }
    
    # Bind the widget to Ctrl-Q
    zle -N insert_atuin_with_fzf
    bindkey -M emacs '^q' insert_atuin_with_fzf
    bindkey -M emacs '^x^q' atuin-search

No More Shading Languages: Compiling C++ to Vulkan Shaders [pdf]

https://diglib.eg.org/server/api/core/bitstreams/e3553000-9d53-4d13-a5b0-29dc16a116de/content
1•ibobev•25s ago•0 comments

Microsoft's big lie: Your computer is fine, and you don't need to buy a new one

https://technical.ly/civic-news/windows-11-upgrade-myth-old-pcs-still-work/
1•FlipperPA•35s ago•1 comments

•38s ago

AI Podcasters Discuss My Writing

https://zach.codes/p/2-ai-podcast-hosts-review-my-mcp
1•zackify•51s ago•0 comments

Visionary

1•Abraxes•1m ago•0 comments

RDNA 4 – Architecture for the Modern Era

https://www.sapphirenation.net/rdna4
1•LorenDB•1m ago•0 comments

A podcast about how the software industry got this way [audio]

https://shows.acast.com/dead-code
1•mooreds•3m ago•0 comments

How I made SumatraPDF crash less

https://blog.kowalczyk.info/article/c4qb/how-to-make-software-crash-less.html
1•ericdanielski•4m ago•0 comments

European bathing water quality in 2024

https://www.eea.europa.eu/en/analysis/publications/european-bathing-water-quality-in-2024
1•taubek•5m ago•0 comments

NTU statement on the use of AI in education

https://www.ntu.edu.sg/news/detail/ntu-statement-on-the-use-of-ai-in-education
1•hunter-2•6m ago•0 comments

Paddle Alternative for Payments (From India)

1•Eminem6377•6m ago•0 comments

How ChatGPT Lost Its Lead to Claude: A Product Engineer's Take

https://www.10xdevelopers.ai/blog/how-chatgpt-lost-its-lead-to-claude
1•octember•7m ago•1 comments

Basic Facts about GPUs

https://damek.github.io/random/basic-facts-about-gpus/
1•ibobev•7m ago•0 comments

gwern helps cool Earth

https://twitter.com/MakeSunsets/status/1937473320901050646
2•andyjsong•11m ago•1 comments

The Code Review Paradox That's Killing Innovation

https://www.techolution.com/blog/ai-code-review-automation-uncovers-hidden-technical-debt-risks/
1•careful_ai•12m ago•0 comments

Learn to Code Retro Games with RetroGameCoders

https://retrogamecoders.com/
1•ibobev•13m ago•0 comments

Datacenter market offers us captive customer base, say investors

https://www.theregister.com/2025/06/24/datacenter_market_captive_audience/
1•rntn•14m ago•0 comments

SourceHut moves business operations from US to Europe

https://lists.sr.ht/~sircmpwn/sr.ht-dev/patches/60282
6•DyslexicAtheist•15m ago•0 comments

The Reasons Your Appliances Die Young

https://www.nytimes.com/wirecutter/reviews/modern-appliances-short-lifespan/
2•Ozarkian•16m ago•0 comments

Try O3-Pro for $1 (is AI a bubble?)

https://hauke.substack.com/p/try-o3-pro-in-chatgpt-for-1
1•HaukeHi•21m ago•0 comments

Rediscovered and Reprocessed: Hemp in South Tyrol

https://www.oberalp.com/en/magazine-press/Rediscovered_and_reprocessed_hemp_in_South_Tyrol
2•mooreds•29m ago•0 comments

Should you join the Antler startup incubator program? It depends

https://developerwithacat.com/blog/062025/join-antler-startup/
1•mmarian•30m ago•0 comments

No one saw Deepseek coming and why

https://twitter.com/ColinGardiner/status/1937477178683171167
1•predogger•31m ago•0 comments

A Phone (That's Not a Phone) to Help You Stop Using Your Phone

https://www.wired.com/story/methaphone-smartphone-addiction/
1•burnt-resistor•32m ago•1 comments

We built inov-AI to help SaaS teams stop drowning in user feedback chaos

https://www.inov-ai.tech/
1•brightUiso•33m ago•1 comments

Show HN: vibe-git - a frictionless git workflow for vibe coding (with MCP)

https://github.com/software-is-art/vibe-git
1•software-is-art•35m ago•0 comments

Woz Presents the Apple Historical Museum (1984)

https://www.youtube.com/watch?v=ul7NkLGtD84
1•noworld•40m ago•0 comments

Why Do You Need to Use Proper Commit Messages?

https://metana.io/blog/why-do-you-need-to-use-proper-commit-messages/
1•zatest•41m ago•0 comments

What Influences the Size of QA Budget (and How to Manage QA Budgets Effectively)

https://apnews.com/press-release/kisspr/how-to-manage-qa-budgets-effectively-5eb0e60cf970862ee53de27776539a84
2•Aninay•41m ago•0 comments

Pub400.com – Your public IBM i 7.5 server

https://pub400.com/
2•BSDobelix•41m ago•0 comments