A new release is here! Amongst many other things, we now have custom keybinding support ![]()
Thank you so much to everyone who contributed in this release ![]()
Highlights
Custom keybinding system
You can now configure custom keybindings for the search TUI. Remap keys to suit your workflow!
Full docs: Advanced Key Binding - Atuin Documentation
Examples
Simple binding
[keymap.emacs]
"ctrl-c" = "return-original"
Conditional binding (first matching rule wins)
[keymap.emacs]
"left" = [
{ when = "cursor-at-start", action = "exit" },
{ action = "cursor-left" },
]
Boolean condition expressions
[keymap.emacs]
"ctrl-d" = [
{ when = "cursor-at-start && input-empty", action = "return-original" },
{ action = "delete-char-after" },
]
SQLite-backed config storage
We’ve replaced several loose files with a SQLite database. This should improve reliability and make things easier to manage internally.
Sync page size parameter
You can now specify the download/upload page size for sync (#2408) — helpful for tuning sync performance, especially on slower connections or large histories.
Dotfiles: sort and filter for aliases/vars
atuin dotfiles alias and var listing now supports sort and filter options, making it easier to manage larger sets of aliases and variables.
Important note for self-hosters
We’ve changed how the server works! Going forwards, the server is now a separate binary, rather than being bundled with the client.
You can install it with
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/download/v18.12.0/atuin-server-installer.sh | sh
The docker command now looks like
docker run -d -v "$CONFIG:/config" ghcr.io/atuinsh/atuin:<LATEST TAGGED RELEASE> start
(start, instead of server start)
Changelog
Bug Fixes
- (powershell) Preserve
$LASTEXITCODE(#3120) - (powershell) Display search stderr (#3146)
- (search) Allow hyphen-prefixed query args like
---(#3129) - (tui) Space and F1-F24 keys not handled properly by new keybind system (#3138)
- (ui) Don’t draw a leading space for command
- (ui) Time column can take up to 9 cells
- (ui) Align cursor with the expand column (usually the command)
- (ui) Align cursor when expand column is in the middle (#3103)
- Zsh import multiline issue (#2799)
- Do not hit sync v1 endpoints for status
- Do not hit sync v1 endpoints for status (#3102)
- Do not set ATUIN_SESSION if it is already set (#3107)
- Custom data dir test on windows (#3109)
- New session on shlvl change (#3111)
- Larger exit column width on Windows (#3119)
- Halt sync loop if server returns an empty page (#3122)
- Use directories crate for home dir resolution (#3125)
- Tab behaving like enter, eprintln (#3135)
- Issue with shift and modifier keys (#3143)
- Remove invalid IF EXISTS from sqlite drop column migration (#3145)
Documentation
- (CONTRIBUTING) Update links (#3117)
- (README) Update links (#3116)
- (config) Clarify scope of directory filter_mode (#3082)
- (configuration) Describe new utility “atuin-bind” for Bash (#3064)
- (installation) Add mise alternative installation method (#3066)
- Various improvements to the
atuin importdocs (#3062) - Disambiguate ‘setup’ (noun) vs. ‘set up’ (verb) (#3061)
- Fix punctuation and grammar in basic usage guide (#3063)
- Expand and clarify usage of the history prune command (#3084)
- Small edit to themes website file (#3069)
- Config/ with initial uid:gid
- Add PowerShell install instructions
- Add PowerShell and Windows install instructions (#3096)
- Update the
[keys]docs (#3114) - Add history deletion guide (#3130)
- Update how to use Docker to self-host (#3148)
- Add IRC contact information to README
Features
- (dotfiles) Add sort and filter options to alias/var list (#3131)
- (theme) Note new default theme name and syntax (#3080)
- (tui) Add clear-to-start/end actions (#3141)
- (ui) Highlight fulltext search as fulltext search instead of fuzzy search
- (ui) Highlight fulltext search as fulltext search instead of fuzzy search (#3098)
- (ultracompact) Adds setting for ultracompact mode (#3079)
- Add custom column support (#3089)
- Left arrow/backspace on empty to start edit (#3090)
- Add more vim movement bindings for navigation (#3041)
- Support setting a custom data dir in config (#3105)
- Remove user verification functionality (#3108)
- Add option to use tmux display-popup (#3058)
- Move atuin-server to its own binary (#3112)
- Add a parameter to the sync to specify the download/upload page (#2408)
- Replace several files with a sqlite db (#3128)
- Add new custom keybinding system for search TUI (#3127)
Miscellaneous Tasks
- Remove total_history from api index response (#3094)
- BREAKING: remove total_history from api index response (#3094)
- Update to rust 1.93
- Update to rust 1.93 (#3101)
- Update changelog
- Update agents.md (#3126)
- Update changelog
- Update changelog
- Update changelog
Theming
- Explain how to set ANSI codes directly (#3065)
Faq
- Add alternative projects (#3076)