v18.20.0
18.20.0
Added 4
- Add agent hooks for opencode
- Add devcontainers
- Add windows/powershell highlighting
- Add turn time and tips to Atuin AI
Fixed 17
- Execute commands from enter in the bash integration
- Answer unrecognized tool calls with an error result
- Localize READLINE_LINE and READLINE_POINT in Bash 3.2 and earlier
- Survive wide characters on a one-column screen
- Don't misclassify users named after an agent as agents
- Fix Atuin init for bash
- Add RPATH for OpenSSL so the built binary runs on nix
- Prepare daemon search index in shell init scripts
- Fall back when daemon-fuzzy fails
- Don't overflow on a session id with an out-of-range uuid timestamp
- Fix off-by-one bugs in sync
- Fix panic when every command is in stats.ignored_commands
- Don't clobber RPS1 when wrapping the prompt for OSC 133 in zsh
- Fix atuin login printing 401 failures until authorized
- Silence hub 401 log spam during installer login
- Fix panics from vt100::Parser::new
- Make pty-proxy socket path shorter
From Atuin
Release Notes
Bug Fixes
- (ai) Execute commands from enter in the bash integration (#3892)
- (ai) Answer unrecognized tool calls with an error result (#3893)
- (bash) Localize "READLINE_{LINE,POINT}" in Bash <= 3.2 (#3926)
- (common) Survive wide characters on a one-column screen (#3876)
- (docs) Don't say
enter_acceptdefaults to true in example config.toml (#3865) - (history) Don't misclassify users named after an agent as agents (#3951)
- (install) Atuin init for bash (#3919)
- (nix) Add an RPATH for OpenSSL so the built binary runs (#3852)
- (search) Prepare daemon search index in shell init scripts (#3864)
- (search) Fall back when daemon-fuzzy fails (#3895)
- (search) Don't overflow on a session id with an out-of-range uuid timestamp (#3965)
- (sync) Fix off-by-one bugs in sync (#3913)
- (wrapped) Panic when every command is in stats.ignored_commands (#3925)
- (zsh) Don't clobber RPS1 when wrapping the prompt for OSC 133 (#3861)
- 'atuin login' prints 401 failures until authorized (#3916)
- Silence hub 401 log spam during installer login (#3918)
- Fix panics from
vt100::Parser::new(#3933) - Make pty-proxy socket path shorter (#3991)
Documentation
- Document rstest/proptest testing conventions in AGENTS.md (#3942)
Features
- (common) Add rmp::serde iterator-to-MessagePack helper (#3897)
- (daemon) Change default daemon socket path (#3910)
- (domain) Add RecordTag string enum (#3899)
- (sync) Send the auth token on the capabilities fetch when logged in (#3974)
- Add agent hooks for opencode (#3844)
- Add devcontainers (#3871)
- Setup claude in devcontainers (#3878)
- Add windows/powershell highlighting (#3883)
- Add turn time and tips to Atuin AI (#3870)
- Enable syntax highlighting on illumos (#3879)
- Offer account login during install setup (#3849)
- Client-side history packfiles (#3737)
- Parallel packfile upload/download (#3944)
- Eager Key Query (#3968)
- Capabilities-driven sync page size (#3979)
- Improve powershell highlighting (#3917)
- Enable gzip and zstd for reqwest (#3980)
Miscellaneous Tasks
- (ai) Remove obsolete
atuin ai initcommand (#3936) - (docker) Install the toolchain pinned by rust-toolchain.toml (#3963)
- (lints) Use workspace lints instead of overriding lints in GHA workflow (#3949)
- (rustfmt) Update Rustfmt config (#3945)
- (tests) Fix flaky pty-proxy test (#3874)
- Add profiling to the app (#3853)
- Temporarily drop tailscale and atuin (#3873)
- Instruct agents to use
rstestin AGENTS.md (#3912) - More xdg compliance (#3932)
- Remove atuin-nucleo (#3950)
- Enable more Clippy lints (#3953)
- Update to rust 1.98 (#3964)
- Revert changes to
atuin-pty-proxyfromlab sharePR / feat: store pty-proxy sockets in/tmp/atuin-$UID(#3988)
Performance
- (sql) Chunked bulk inserts + shared sqlite wrapper (#3981)
- (sync) Batch post-sync history indexing into bulk transactions (#3947)
- (sync) Parallel record downloads (#3955)
- (tracing) OTel export + instrumentation coverage (#3952)
Refactor
- (ai/bash) Use existing facility for accept-line (#3928)
- (bash) Remove redundant check of existing preexec-backend (#3927)
- (caps) CapClient owns its client and warms on construction (#3898)
- (client) Own sync_addr via Arc, drop Client lifetime (#3896)
- (client) Remove the Database trait in favor of Sqlite (#3946)
- (deps) Bump pymdown-extensions from 11.0 to 11.0.1 in /docs in the uv group across 1 directory (#3875)
- (domain) Make Record::with_data consume self, add with_data_clone (#3900)
- (domain) Make Record.version a RecordVersion enum (#3903)
- (domain) Drop the vestigial Host.name field (#3941)
- (encryption) Introduce PasetoV4Key newtype for the encryption key (#3860)
- (encryption) Move encryption into atuin-common. (#3863)
- (record) Name the (host, tag) pair as RecordSeriesKey (#3961)
- (sqlx) Use FromRow instead of manual row mapping (#3958)
- (sync) Introduce SyncEngine to hold shared sync state (#3962)
- Add a
CmdOriginType (#3943)
Bug
- Avoid rare race condition in sync (#3972)
atuin-server 18.20.0
Install atuin-server 18.20.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/download/v18.20.0/atuin-server-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/atuinsh/atuin/releases/download/v18.20.0/atuin-server-installer.ps1 | iex"
Download atuin-server 18.20.0
| File | Platform | Checksum |
|---|---|---|
| atuin-server-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| atuin-server-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| atuin-server-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| atuin-server-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| atuin-server-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| atuin-server-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| atuin-server-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo atuinsh/atuin
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
atuin 18.20.0
Install atuin 18.20.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/download/v18.20.0/atuin-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/atuinsh/atuin/releases/download/v18.20.0/atuin-installer.ps1 | iex"
Download atuin 18.20.0
| File | Platform | Checksum |
|---|---|---|
| atuin-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| atuin-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| atuin-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| atuin-aarch64-unknown-linux-gnu.tar.gz | ARM64 Linux | checksum |
| atuin-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |
| atuin-aarch64-unknown-linux-musl.tar.gz | ARM64 MUSL Linux | checksum |
| atuin-x86_64-unknown-linux-musl.tar.gz | x64 MUSL Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo atuinsh/atuin
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>