aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorMichelle Tilley <michelle@michelletilley.net>2026-03-26 19:19:47 -0700
committerGitHub <noreply@github.com>2026-03-27 02:19:47 +0000
commitb649a7ab8de6488c1341e94c37d032c07d5b3f13 (patch)
treeca9aadc1175b8439dd85de135f3804681b755776 /docs
parentfix: set WorkingDirectory in PowerShell Invoke-AtuinSearch (#3351) (diff)
downloadatuin-b649a7ab8de6488c1341e94c37d032c07d5b3f13.zip
feat: Use eye-declare for more performant and flexible AI TUI (#3343)
This PR replaces the mess of custom rendering code in Atuin AI with [eye-declare](https://github.com/BinaryMuse/eye-declare), and updates the TUI to feel more terminal-native: output appears inline and persists in scrollback, so you can scroll up and look at previous conversations for reference. The "review" state — which used to exist between the LLM generating a response and the user either executing or following up — has been removed; just start typing to follow up with the LLM, or press `enter` at the empty input box to execute the suggested command. <img width="1203" height="633" alt="image" src="https://github.com/user-attachments/assets/159ee447-9a2a-4edd-b56e-a79bf1aaaa94" />
Diffstat (limited to 'docs')
-rw-r--r--docs/docs/ai/images/basic-followup-questions.pngbin0 -> 504535 bytes
-rw-r--r--docs/docs/ai/images/basic-refine.pngbin0 -> 410378 bytes
-rw-r--r--docs/docs/ai/images/basic.pngbin0 -> 371724 bytes
-rw-r--r--docs/docs/ai/images/danger.pngbin0 -> 409263 bytes
-rw-r--r--docs/docs/ai/images/question.pngbin0 -> 372884 bytes
-rw-r--r--docs/docs/ai/introduction.md118
6 files changed, 7 insertions, 111 deletions
diff --git a/docs/docs/ai/images/basic-followup-questions.png b/docs/docs/ai/images/basic-followup-questions.png
new file mode 100644
index 00000000..d0c1d12d
--- /dev/null
+++ b/docs/docs/ai/images/basic-followup-questions.png
Binary files differ
diff --git a/docs/docs/ai/images/basic-refine.png b/docs/docs/ai/images/basic-refine.png
new file mode 100644
index 00000000..e2404bc5
--- /dev/null
+++ b/docs/docs/ai/images/basic-refine.png
Binary files differ
diff --git a/docs/docs/ai/images/basic.png b/docs/docs/ai/images/basic.png
new file mode 100644
index 00000000..a58e510a
--- /dev/null
+++ b/docs/docs/ai/images/basic.png
Binary files differ
diff --git a/docs/docs/ai/images/danger.png b/docs/docs/ai/images/danger.png
new file mode 100644
index 00000000..9c762f19
--- /dev/null
+++ b/docs/docs/ai/images/danger.png
Binary files differ
diff --git a/docs/docs/ai/images/question.png b/docs/docs/ai/images/question.png
new file mode 100644
index 00000000..a1dc5690
--- /dev/null
+++ b/docs/docs/ai/images/question.png
Binary files differ
diff --git a/docs/docs/ai/introduction.md b/docs/docs/ai/introduction.md
index 1c154992..b14634b3 100644
--- a/docs/docs/ai/introduction.md
+++ b/docs/docs/ai/introduction.md
@@ -22,111 +22,25 @@ For a list of settings that control the behavior of Atuin AI, see [its dedicated
Prompt the LLM to create a command, and get one back, no fuss. Press `enter` to run, or `tab` to insert.
-```
-┌Ask questions or generate a command:──────────────────────────┐
-│ │
-│ > Get a list of running docker containers │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ $ docker ps │
-│ │
-└────[Enter]: Run [Tab]: Insert [f]: Follow-up [Esc]: Cancel┘
-```
+[![Basic Atuin AI usage](./images/basic.png)](./images/basic.png)
### Follow-up
-You can follow-up with `f` to specify a refinement prompt to update the command that will be inserted.
+You can follow-up with a refinement prompt to update the command that will be inserted.
-```
-┌Ask questions or generate a command:──────────────────────────┐
-│ │
-│ > Get a list of running docker containers │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ $ docker ps │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ > Actually I want to get all docker containers │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ $ docker ps -a │
-│ │
-└────[Enter]: Run [Tab]: Insert [f]: Follow-up [Esc]: Cancel┘
-```
+[![Basic Atuin AI refinement usage](./images/basic-refine.png)](./images/basic-refine.png)
You can also follow-up with questions to get responses in natural language.
-```
-┌Ask questions or generate a command:──────────────────────────┐
-│ │
-│ > Get a list of running docker containers │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ $ docker ps │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ > Actually I want to get all docker containers │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ $ docker ps -a │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ > What other useful flags to `docker ps` should I know? │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ Here are some handy `docker ps` flags: │
-│ │
-│ - `-q` — Only show container IDs (great for piping to │
-│ other commands) │
-│ - `-s` — Show container sizes │
-│ - `-n 5` — Show the last 5 created containers │
-│ - `-l` — Show only the latest created container │
-│ - `--no-trunc` — Don't truncate output (shows full IDs and │
-│ commands) │
-│ - `-f` or `--filter` — Filter by condition, e.g.: │
-│ - `-f status=exited` — only exited containers │
-│ - `-f name=myapp` — filter by name │
-│ - `-f ancestor=nginx` — filter by image │
-│ - `--format` — Custom output using Go templates, e.g.: │
-│ `--format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"` │
-│ │
-│ A common combo is `docker ps -aq` to get all container │
-│ IDs, useful for bulk operations like `docker rm $(docker │
-│ ps -aq)`. │
-│ │
-└────[Enter]: Run [Tab]: Insert [f]: Follow-up [Esc]: Cancel┘
-```
+[![Basic Atuin AI refinement informational usage](./images/basic-followup-questions.png)](./images/basic-followup-questions.png)
-You can use `enter` or `tab` at any time to run or insert the last suggested command, even if it was suggested in a previous turn.
+You can still use `enter` or `tab` to run or insert the last suggested command, even if it was suggested in a previous turn.
### Conversational and search usage
If you prompt the LLM with a question that doesn't imply you want to generate a command, it can respond in natural language, and use web search if necessary to fetch the data it needs.
-```
-┌Ask questions or generate a command:──────────────────────────┐
-│ │
-│ > What is the latest version of atuin? │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ ✓ Used 2 tools │
-│ │
-│ The latest version of Atuin is **v18.12.0**, available on │
-│ the [GitHub releases │
-│ page](https://github.com/atuinsh/atuin/releases). │
-│ │
-└─────────────────────────────────[f]: Follow-up [Esc]: Cancel┘
-```
+[![Ask it a question](./images/question.png)](./images/question.png)
### Dangerous or low-confidence command detection
@@ -134,22 +48,4 @@ The LLM scores its confidence in the command, as well as how dangerous the comma
The Atuin Hub server also monitors suggested commands for dangerous patterns the LLM didn't catch, and appends its own assessment at the end of the LLM's own assessment.
-```
-┌Ask questions or generate a command:──────────────────────────┐
-│ │
-│ > Delete all files from $HOME │
-│ │
-├──────────────────────────────────────────────────────────────┤
-│ │
-│ $ rm -rf $HOME/* │
-│ │
-│ ! This will PERMANENTLY delete ALL files and directories in │
-│ your home directory, including documents, downloads, │
-│ configurations, SSH keys, and everything else. This is │
-│ irreversible and will likely break your system. Also note │
-│ this won't delete hidden (dot) files — if you want those │
-│ too, that's even more destructive.; [Server] Recursive │
-│ delete of critical directory │
-│ │
-└────[Enter]: Run [Tab]: Insert [f]: Follow-up [Esc]: Cancel┘
-```
+[![Potentially dangerous commands are marked](./images/danger.png)](./images/danger.png)