<feed xmlns='http://www.w3.org/2005/Atom'>
<title>atuin/crates/atuin-ai/src, branch main</title>
<subtitle>Turtle. A hard-fork of atuin, focusing on a more minimal feature set</subtitle>
<id>http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-ai/src?h=main</id>
<link rel='self' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/atom/crates/atuin-ai/src?h=main'/>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/'/>
<updated>2026-06-10T20:01:45Z</updated>
<entry>
<title>chore: Remove some unused rust code</title>
<updated>2026-06-10T20:01:45Z</updated>
<author>
<name>Benedikt Peetz</name>
<email>benedikt.peetz@b-peetz.de</email>
</author>
<published>2026-06-10T20:01:45Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=5e31a81cd2207f053b8cd8ad84ebe2a2f691b29d'/>
<id>urn:sha1:5e31a81cd2207f053b8cd8ad84ebe2a2f691b29d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Capture command output + expose to new `atuin_output` tool (#3510)</title>
<updated>2026-06-08T16:12:45Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-06-08T16:12:45Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=bcdf8c8cde31e826000f1b2d6eeaebdd865a07c1'/>
<id>urn:sha1:bcdf8c8cde31e826000f1b2d6eeaebdd865a07c1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow overriding model with env var (#3493)</title>
<updated>2026-05-19T17:32:46Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-05-19T17:32:46Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=6ecbc8a5d88536a718de6370e1171d6f900dd39a'/>
<id>urn:sha1:6ecbc8a5d88536a718de6370e1171d6f900dd39a</id>
<content type='text'>
This PR allows overriding the Atuin AI model for feature-flagged users
with the `ATUIN_AI__MODEL` environment variable. Any OpenRouter model is
accepted; it's recommended to include an explicit `openrouter:` provider
prefix, so models with colons in their names are interpreted correctly,
e.g. `ATUIN_AI__MODEL=openrouter:deepseek/deepseek-v4-flash:free`.</content>
</entry>
<entry>
<title>perf: Reduce AI TUI rendering overhead for long conversations (#3447)</title>
<updated>2026-04-24T03:31:53Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-04-24T03:31:53Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=f72fdf7565d18b044f035fa6aca9ae8dbba34fc6'/>
<id>urn:sha1:f72fdf7565d18b044f035fa6aca9ae8dbba34fc6</id>
<content type='text'>
Fixes keystroke lag in Atuin AI that scales with conversation length.
After extended use (many turns, lots of tool calls with output
viewports), pressing a key had noticeable delay before the letter
appeared.

Three layers of optimization:

- **Skip `sync_view_state` for `InputUpdated`** — every keystroke was
cloning all events, tools, and archived data even though no FSM state
changed. Uses `handle.update_tracked()` (eye_declare 0.5) to skip
rebuilds when values haven't actually changed.

- **Pre-compute turns and `has_command` on the driver thread** — the
view function was rebuilding the full turn structure from raw events and
scanning for `suggest_command` tool calls 3× per render frame. Now
computed once per FSM state change and cached in ViewState.

- **Commit-based element tree pruning** — turns that scroll into
terminal scrollback are tracked via `on_commit` and filtered from the
element tree, keeping rendering work proportional to visible content.
Turn views are now direct children of the root VStack (not nested inside
AtuinAi) so `detect_committed` can see them.</content>
</entry>
<entry>
<title>feat: Add skill discovery, loading, and invocation (#3444)</title>
<updated>2026-04-23T20:43:01Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-04-23T20:43:01Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=461ef4c43589c6ca68176c180fd04f2755c9f036'/>
<id>urn:sha1:461ef4c43589c6ca68176c180fd04f2755c9f036</id>
<content type='text'>
Adds a skills system that lets users define reusable LLM instructions as `SKILL.md` files with YAML frontmatter.</content>
</entry>
<entry>
<title>feat: Send user-defined context with `TERMINAL.md` (#3443)</title>
<updated>2026-04-23T20:29:58Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-04-23T20:29:58Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=b121b73d07df389d324b3a8f27066661a6609618'/>
<id>urn:sha1:b121b73d07df389d324b3a8f27066661a6609618</id>
<content type='text'>
This PR adds the ability to inject user-defined content into Atuin AI
requests, a la `AGENTS.md` or `CLAUDE.md`.

* `.atuin/TERMINAL.md` (or alternatively just `TERMINAL.md`) is checked in every directory from the cwd up to the root
* `~/.config/atuin/TERMINAL.md` (or equivalent config dir) is also
checked
* Supports Claude-style ``` !`` ``` and ```` ```!...``` ```` style shell
interpolation</content>
</entry>
<entry>
<title>fix: minor issues with fish's vim mode(s) (#3362)</title>
<updated>2026-04-23T18:10:50Z</updated>
<author>
<name>Aditya Bhargava</name>
<email>rightaditya@users.noreply.github.com</email>
</author>
<published>2026-04-23T18:10:50Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=1b6f9d10220178f8f69986d57d9441d9f669f7df'/>
<id>urn:sha1:1b6f9d10220178f8f69986d57d9441d9f669f7df</id>
<content type='text'>
This PR fixes two minor issues when using Atuin with fish's vim mode(s):
1. Add support for `fish_hybrid_key_bindings`: in addition to
`fish_vi_key_bindings`, fish also provides `fish_hybrid_key_bindings`,
which is a vi-based mode with some extra keybinds; but the key bind
check for `atuin search` only checks for the former.
2. The AI keybind inserts a `?` on the command line in vim mode even
though it can only be called from normal mode, when pressing `?`
normally does nothing.</content>
</entry>
<entry>
<title>fix: require all subcommands covered for shell allow rules (#3440)</title>
<updated>2026-04-22T06:00:25Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-04-22T06:00:25Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=9355e281a08fd7d173e317a2a39778df7e7fc23d'/>
<id>urn:sha1:9355e281a08fd7d173e317a2a39778df7e7fc23d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: shell tool execution timeouts (#3437)</title>
<updated>2026-04-21T22:30:46Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-04-21T22:30:46Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=8dec33f5f9a972a38978b5600fde5bc292fb6401'/>
<id>urn:sha1:8dec33f5f9a972a38978b5600fde5bc292fb6401</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: shell tool preview stuck as Running after completion (#3436)</title>
<updated>2026-04-21T20:51:59Z</updated>
<author>
<name>Michelle Tilley</name>
<email>michelle@michelletilley.net</email>
</author>
<published>2026-04-21T20:51:59Z</published>
<link rel='alternate' type='text/html' href='http://git.foss-syndicate.org/bpeetz/forks/atuin/commit/?id=8fe7927548997234eb5cee2ea82f0caf967d8122'/>
<id>urn:sha1:8fe7927548997234eb5cee2ea82f0caf967d8122</id>
<content type='text'>
</content>
</entry>
</feed>
