Atuin v18.13 – better search, a PTY proxy, and AI for your shell
TL;DR Highlight
Shell history tool Atuin released v18.13 with in-memory fuzzy search, a PTY proxy (Hex) that improves terminal rendering, and an AI feature that generates bash commands from natural language.
Who Should Read
Developers who use the terminal daily and frequently rely on shell history search, or those tired of repeatedly typing complex commands and looking for productivity tools.
Core Mechanics
- A daemon now maintains an in-memory search index for faster and more accurate search. It uses a modified version of nucleo (same algorithm as fzf internally), with configurable weights for frequency, recency, and frecency scores.
- This daemon-based fuzzy search, previously labeled 'experimental,' has been officially integrated. Setting `search_mode = "daemon-fuzzy"` and `autostart = true` in config lets Atuin manage the daemon lifecycle automatically.
- The daemon runs independently of the shell, so when you SSH into a remote machine, the latest history is already synced and ready.
- Atuin AI lets you press `?` from an empty prompt to describe what you want in natural language and get a bash command. Enter to run immediately, Tab to edit, or `f` for follow-up questions. It uses man pages and command output datasets to improve accuracy.
- If the AI-generated command looks dangerous (data deletion, deployment restarts), a combination of static checks and LLM-based guardrails flags it as 'dangerous' and requires double-Enter to execute.
- Atuin AI's default config only collects OS and shell info. Future features adding current directory, git status, and other context will require explicit user opt-in.
- The PTY proxy Hex (`atuin hex`) lets Atuin render popups over existing terminal output without clearing the screen or taking over fullscreen. It works like a very lightweight tmux but only maintains a VT100 shadow buffer without touching scrollback.
- Auth was upgraded to support Google and GitHub account login. However, the Hub server code isn't open-source yet — they plan to open it once the codebase stabilizes.
Evidence
- Community reaction to AI was sharply divided. 'Stop cramming AI into every tool' and 'good tools should be simple and orthogonal' criticisms were common, while others praised the release — 'Atuin is one of my favorite tools and this release is great.' One comment used 'enshittification begins the moment AI is added.'
- Questions arose about Atuin AI apparently using hosted LLMs — whether login is required and who pays for tokens. Others noted it's likely integrated with Atuin Hub (shell history sync service) accounts, sharing the hub.atuin.sh/register link.
- The PTY proxy (Hex) feature received positive reactions — 'Finally, no more disappearing scrollback.' Users who had long tolerated the rendering trade-offs between full-screen and inline modes were welcoming.
- Unix philosophy advocates (one tool, one job) said 'It was fine as a history search tool — adding AI makes it unnecessarily complex' and mentioned looking for alternatives. Removing fzf support in a previous decision was also cited as a reason for leaving.
- A request for auto-deleting sensitive commands (e.g., commands containing passwords) after a specified time appeared. Currently, fully blocking sensitive commands also blocks up/down arrow editing, so a 1-minute timeout option was specifically suggested.
How to Apply
- If shell history search is slow or inaccurate, add `search_mode = "daemon-fuzzy"` and `[daemon] enabled = true`, `autostart = true` to your config for improved speed and accuracy with in-memory fuzzy search.
- If you frequently search for or forget complex commands (find, awk, curl option combos), enable Atuin AI (`[ai] enabled = true`) and press `?` from an empty prompt to describe what you need in natural language. Tab to edit if full automation feels uncomfortable.
- If Atuin's search popup was annoying because it overwrote terminal output, add `eval "$(atuin hex init)"` to your shell config to display the popup as an overlay without clearing existing output. File bug reports if issues arise.
- If you SSH into multiple servers and history isn't synced, the daemon's `autostart = true` setting ensures the latest history is ready the moment you log in.
Code Example
snippet
# ~/.config/atuin/config.toml configuration example
search_mode = "daemon-fuzzy"
[daemon]
enabled = true
autostart = true
[ai]
enabled = true
# Enable PTY proxy Hex (add to shell config file)
eval "$(atuin hex init)"
# One-time Hex execution
atuin hexTerminology
PTY proxyA lightweight layer that relays bytes between the terminal (PTY, Pseudo Terminal) and the shell. Like tmux for terminal session management but much lighter, without touching scrollback or other existing features.
frecencyA combination of frequency and recency. Items used both frequently and recently score higher and appear at the top of search results.
nucleoA Rust library implementing the same fuzzy matching algorithm as fzf. Finds intended items even with typos.
daemonA process running persistently in the background. Here it runs independently of the shell, maintaining the search index in memory and handling history sync.
VT100 shadow bufferA virtual buffer that copies what the terminal displays to memory. This is how Hex can restore the previous screen after closing a popup.
LLM guardrailsA safety mechanism that reviews LLM-generated output with another LLM check to filter dangerous results. Used here for detecting risky commands.