Remix.run Logo
overflowy 7 hours ago

Atuin is a venture‑backed product, while zhist is like 1k lines of Go code you could probably read in one sitting.

I tried Atuin before and liked it, but the idea of a background service sending my command history to servers I don't control never sat well with me. A small boring tool that runs locally doesn't care about revenue nor will have to sunset any feature hehe

Atuin works with several shells, zhist only supports zsh because that's what I use. Both Atuin and zhist record each command together with its working directory and exit status. They both offer global and per‑directory modes. If I remember correctly, Atuin did not provide a quick way to delete an entry, whereas zhist assigns Ctrl‑D for that purpose (or Ctrl+X if you want to remove all occurrences of that command). Atuin also records how long each command ran, zhist does not but it will in the next release. Under the hood, Atuin uses SQLite, runs a daemon, and uses a sync protocol. zhist is a single binary that writes to a flat JSON file, with no service and no sync feature. With zhist, if you want to sync your history to another machine, you'd have to rsync the JSON file.