Announcing a new release of Atuin! v13 is out now. Atuin allows you to easily search and sync your shell history across many machines.
You can update your installation via your system package manager, or by downloading the latest release from the release page.
We had a lot of changes in this release - I'll call out a few, but this is not exhaustive.
Crossterm
Deserving of a special callout, we now use Crossterm as our TUI backend - this has been a huge effort, and has taken almost a year. Thank you to Conrad for pushing through it, and @pdecat for your contributions!
In the future this will allow for things like (possible) Windows support, and only using a small part of the screen for the search UI. It also handles async input better.
Please let us know if you experience any issues!
New features
Pretty Stats
While procrastinating writing his talk, Conrad added a new and improved stats display! Just run atuin stats
to see your statistics. It'd be awesome to see what yours looks like, so please share it with us on Twitter or Discord!
Custom history list format
List history however you want! You can now specify the output format of atuin history list
Example
atuin history list --format "{time} - [{duration}] - {directory}$\t{command}"
See more on the docs page!
History filter
The history filter allows you to exclude commands from history tracking - maybe you want to keep ALL of your curl
commands totally out of your shell history, or maybe just some matching a pattern.
This supports regular expressions, so you can hide pretty much whatever you want! Thanks for the PR @jbaiter
Configure it in your client-side Atuin config, for example
## Note that these regular expressions are unanchored, i.e. if they don't start
## with ^ or end with $, they'll match anywhere in the command.
history_filter = [
"^secret-cmd",
"^innocuous-cmd .*--secret=.+"
]
Mnemonic key (BIP39)
Previously, it was awkward to copy your Atuin key from machine to machine. Even more awkward to back it up!
We now use BIP39 to display your key in a nice + easily readable haiku-style format. Still - please don't share it!
Improvements
- Better error messages
- Nix install files + instructions
- Exit when pushing the down arrow from the most recent entry
- Refactor to support generic server-side databases
- Make it easier to disable the ctrl-r and/or up arrow bindings
- Update to axum6
Fixes
- Fish now handles multi-line commands properly
- Listing history for the current session now works
- Fix
atuin init
for Fish
Contributor Shoutout!
@patricksjackson
- Fix minor typo in config.md in #615
- Re-enable arm docker builds in #616
- Handle multiline commands in fish shell in #623
- install.sh: Fallback to using cargo in #639
- Fix session history listing in #620
@pdecat
- Add support for some additional keys in interactive mode in #634
- Allow overriding filter and search modes from CLI in #635
@Sciencentistguy
- Rework
atuin init
in #652 - Improve error message when $AUTIN_SESSION is not set. in #654
- Add nix files and install instructions in #477
@BapRx
- chore(#621): Exit atuin when pressing down arrow on most recent entry in #659
- docs: Remove human short flag from docs, duplicate of help -h in #663
- feat(history): Add new flag to allow custom output format in #662
@yolo2h
- docs: Fix typo in zh-CN/README.md in #666
@s1ck
- Fix CI build badge in #683
@conradludgate
- display mnemonic key in #694
- axum6 with typesafe state in #674
- crossterm support in #331
- stats in #707
@evanpurkhiser
@eripa
@trygveaa
@frukto
@jbaiter
@hunger
@ekroon
New Contributors
I very much appreciate the work from all contributors, but a special mention to everyone who made their first contribution in this release, no matter how large or small
- @pdecat made their first contribution in #634
- @BapRx made their first contribution in #659
- @yolo2h made their first contribution in #666
- @s1ck made their first contribution in #683
- @evanpurkhiser made their first contribution in #697
- @eripa made their first contribution in #680
- @trygveaa made their first contribution in #688
- @frukto made their first contribution in #692
- @jbaiter made their first contribution in #716
- @hunger made their first contribution in #699
- @ekroon made their first contribution in #711
Future plans
I've been talking about it for ages and ages, but now that my life has finally settled down I'm going to be focusing on getting deletions out for the next release. We will be switching to an event-based sync, which should allow for many more features and cool things in the future!
Other changes
Talk
I spoke about Atuin at FOSDEM! If you want to know more about the project + video is your thing, you can watch it here
Website
I've setup a website for docs + release notes! It's available here: https://atuin.sh
I also opened a Twitter account for Atuin - @atuinsh
If you fancy chatting to us about anything here, or otherwise, please feel free to drop by the Discord!
Full Changelog: v12.0.0...v13.0.0