Atuin v18.1 - Syncing aliases and searching with regex
Announcing a new release of Atuin! v18.1 is out now
Atuin supercharges your productivity by enabling you to rapidly retrieve any command you’ve ran, at any time, from anywhere. It stores your shell history in a database, recording additional command context and syncing it (e2e encrypted) across devices. Get started here
Announcing a new release of Atuin! v18.1 is out now
I've included the full changelog below, but here are some highlights
Community
Syncing aliases
With v18, we released sync v2! This meant that syncing a bunch of things from shell-to-shell is now possible.
If you'd like to sync shell aliases, first ensure the following is added to the bottom of your config file - for every machine you use Atuin with:
In a future release, these options will become the default.
Then, set aliases like so!
# Alias 'k' to be 'kubectl'
atuin dotfiles alias set k kubectl
# List all aliases
atuin dotfiles alias list
# Delete an alias
atuin dotfiles alias delete k
After setting an alias, you will either need to restart your shell or source the init file for it to take affect.
In the future, these aliases will be further integrated with your shell history + stats.
If you'd like to share some thoughts about synced dotfiles, please don't hesitate to get in touch!
Regex search
(thank you @lilydjwg for contributing this!)
Atuin can now search regular expressions with the r/regex/
syntax in the TUI.
For example
This works regardless of search mode
Atuin doctor
In order to better support users, we've added atuin doctor
This will suggest fixes for common problems. It also provides some diagnostic information that makes it much easier for us to provide support on issues
Example output
Please include the output below with any bug reports or issues
atuin:
version: 18.0.2
sync:
cloud: true
records: true
auto_sync: true
last_sync: 2024-03-05 14:54:48.447677 +00:00:00
shell:
name: zsh
plugins:
- atuin
system:
os: Darwin
arch: arm64
version: 14.4
disks:
- name: Macintosh HD
filesystem: apfs
- name: Macintosh HD
filesystem: apfs
Prune history
(thanks to @xvello for contributing this!)
Atuin supports a number of ways to keep history private. One of these is the history filter
It can be configured like so
## 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=.+"
]
In earlier releases, this only applied to future history. Ie, it would stop recording anything you run afterwards that matches, but anything already in your database would remain
With this change, after adding to history_filter
, run. atuin history prune
to delete any already stored matches.
Read more in the docs: https://docs.atuin.sh/reference/prune/
There were many more contributions and changes - please read below for a full changelog!
Bug Fixes
- Don't preserve for empty space (#1712)
- Fish init (#1725)
- Add xonsh to auto import, respect $HISTFILE in xonsh import, and fix issue with up-arrow keybinding in xonsh (#1711)
- Rework #1509 to recover from the preexec failure (#1729)
- Typo (#1741)
- Missing or wrong fields (#1740)
- Check session file exists for status command (#1756)
- Ensure sync time is saved for sync v2 (#1758)
- No panic on empty inspector (#1768)
- Enable multiple command stats to be shown using unicode_segmentation (#1739)
- Readd up-arrow keybinding, now with menu handling (#1770)
- Missing characters in preview (#1803)
- Check store length after sync, not before (#1805)
- Disable regex error logs (#1806)
- Attempt to fix timezone reading (#1810)
- Use a different method to detect env vars (#1819)
- Record size limiter (#1827)
- Make atuin compile on non-win/mac/linux platforms (#1825)
- Set meta.mainProgram in the package (#1823)
- Re-sync after running auto store init (#1834)
Documentation
- Minor formatting updates to the default config.toml (#1689)
- Update docker compose (#1818)
- Use db name env variable also in uri (#1840)
Features
- Use ATUIN_TEST_SQLITE_STORE_TIMEOUT to specify test timeout of SQLite store (#1703)
- Add 'a', 'A', 'h', and 'l' bindings to vim-normal mode (#1697)
- Add xonsh history import (#1678)
- Process Ctrl+m for kitty keyboard protocol (#1720)
- Add 'ignored_commands' option to stats (#1722)
- Support syncing aliases (#1721)
- Change fulltext to do multi substring match (#1660)
- Add config option keys.scroll_exits (#1744)
- Add history prune subcommand (#1743)
- Add alias feedback and list command (#1747)
- Add PHP package manager "composer" to list of default common subcommands (#1757)
- Add '/', '?', and 'I' bindings to vim-normal mode (#1760)
- Add update action (#1779)
- Normalize formatting of default config, suggest nix (#1764)
- Add linux sysadmin commands to common_subcommands (#1784)
- Add
CTRL+[
binding as<Esc>
alias (#1787) - Add nushell completion generation (#1791)
- Add atuin doctor (#1796)
- Add checks for common setup issues (#1799)
- Support regex with r/.../ syntax (#1745)
- Guard against ancient versions of bash where this does not work. (#1794)
- Add config setting for showing tabs (#1755)
- Return early if history is disabled (#1807)
- Add enable setting to dotfiles, disable by default (#1829)
- Add automatic history store init (#1831)
- Adds info command to show env vars and config files (#1841)
Miscellaneous Tasks
- Add cross-compile job for illumos (#1830)
- Do not show history table stats when using records (#1835)
- Setup nextest (#1848)
Performance
- Optimize history init-store (#1691)
Refactor
- Update
commandline
syntax, closes #1733 (#1735) - Clarify operation result for working with aliases (#1748)
- Rename atuin-config to atuin-dotfiles (#1817)
Thank you to everyone who contributed in this release, but a special thank you to the new contributors. 18 new commiters for v18.1 🫶
New Contributors
- @hack3ric made their first contribution in https://github.com/atuinsh/atuin/pull/1703
- @drmorr0 made their first contribution in https://github.com/atuinsh/atuin/pull/1689
- @alerque made their first contribution in https://github.com/atuinsh/atuin/pull/1697
- @jfmontanaro made their first contribution in https://github.com/atuinsh/atuin/pull/1678
- @c-git made their first contribution in https://github.com/atuinsh/atuin/pull/1741
- @tessus made their first contribution in https://github.com/atuinsh/atuin/pull/1744
- @xvello made their first contribution in https://github.com/atuinsh/atuin/pull/1743
- @Aloxaf made their first contribution in https://github.com/atuinsh/atuin/pull/1740
- @Adda0 made their first contribution in https://github.com/atuinsh/atuin/pull/1748
- @KorvinSzanto made their first contribution in https://github.com/atuinsh/atuin/pull/1757
- @mwpastore made their first contribution in https://github.com/atuinsh/atuin/pull/1760
- @liljaylj made their first contribution in https://github.com/atuinsh/atuin/pull/1787
- @remmycat made their first contribution in https://github.com/atuinsh/atuin/pull/1770
- @fragmede made their first contribution in https://github.com/atuinsh/atuin/pull/1794
- @digital-cuttlefish made their first contribution in https://github.com/atuinsh/atuin/pull/1755
- @IanManske made their first contribution in https://github.com/atuinsh/atuin/pull/1807
- @sunshowers made their first contribution in https://github.com/atuinsh/atuin/pull/1825
- @macno made their first contribution in https://github.com/atuinsh/atuin/pull/1840
Full Changelog: https://github.com/atuinsh/atuin/compare/v18.0.1...v18.1.0