aboutsummaryrefslogtreecommitdiffstats
path: root/Cargo.toml (follow)
Commit message (Collapse)AuthorAge
* feat: Generate commands or ask questions with `atuin ai` (#3199)Michelle Tilley2026-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR refines the system created in #3178 to be suitable for a v1 release. --- ## Overview `atuin-ai` is a separate binary that allows for generating commands and asking questions from the command line. It is fully opt-in. ## Usage `atuin ai init` will output bindings for your shell. Currently, bash, zsh, and fish are supported. ```bash eval "$(atuin ai init)" ``` Once the hooks are installed, just press `?` on an empty prompt line to call up the TUI. `atuin ai` requires an account on [Atuin Hub](https://hub.atuin.sh/); you will be prompted to log in on first use. ## Features ### Command generation 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┘ ``` ### Follow-up You can follow-up with `f` to specify 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┘ ``` 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┘ ``` 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. ### 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┘ ``` ### Dangerous or low-confidence command detection The LLM scores its confidence in the command, as well as how dangerous the command is. This information is shown if a threshold is exceeded, and requires an extra confirmation step before running automatically with `enter`. 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┘ ``` --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* chore(release): prepare for release 18.13.0-beta.1 (#3187)Ellie Huxtable2026-02-13
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* feat: add Atuin AI inline CLI MVP (#3178)Michelle Tilley2026-02-13
|
* chore(deps): update to rust 1.93.1 (#3181)Ellie Huxtable2026-02-12
| | | | | | | | | Resolves breaking checks on `main` ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(deps): bump time + bytes (#3175)Cristian Le2026-02-12
| | | | | | | | | | | | | | | | | | | | - time >= 0.3.47: RUSTSEC-2026-0009 - bytes >= 1.11.1: RUSTSEC-2026-0007 Did not dive deeply in if this is actually impacting atuin, just picked up the CVE patches that were reported in Fedora downstream. <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [x] I have checked that there are no existing pull requests for the same thing Supersedes #3124
* chore(release): prepare for release 18.12.1 (#3172)Ellie Huxtable2026-02-11
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.12.0 (#3152)Ellie Huxtable2026-02-09
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.12.0-beta.4 (#3139)Michelle Tilley2026-02-05
|
* chore(release): prepare for release 18.12.0-beta.3 (#3136)Ellie Huxtable2026-02-05
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.12.0-beta.2 (#3133)Ellie Huxtable2026-02-05
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(deps): update whoami dependency to v2 (#3118)Ben Beasley2026-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> In the [2.0.0](https://github.com/ardaku/whoami/releases/tag/v2.0.0) series, `whoami` removed all infallible function variants, and removed the `fallible` module, moving those functions to the root module. Therefore, I replaced `whoami::fallible::hostname` with `whoami::hostname` (the same function with the same signature, just moved to the root module). For `whoami::username`, the infallible function that `atuin` was using before is gone, and we must add error handling. I chose to fall back to the string `"unknown-user"` if getting the username fails, just as `"unknown-host"` is already the fallback when getting the hostname fails. This seemed reasonable to me, but it’s worth double-checking if there could be any unintended consequences, especially if `unknown-user` happens to be a real, valid username on the system. The alternatives I can see would be to panic on failure or to amend the signature of `get_username()` and all of its call sites with some kind of more graceful error handling (what?). ## Checks - [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [x] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.12.0-beta.1 (#3113)Ellie Huxtable2026-01-28
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(deps): audit ssl deps (#3110)Ellie Huxtable2026-01-27
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(deps): cleanup of dep versions (#3106)Ellie Huxtable2026-01-27
| | | | | | | | | | | | | | Ensure we aren't using multiple versions, etc <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore: update to rust 1.93Ellie Huxtable2026-01-26
|
* chore(deps)!: update tls deps, remove built-in tls server support (#3091)Ellie Huxtable2026-01-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Update reqwest from 0.12 to 0.13 and remove the built-in TLS termination from atuin-server. Users should use a reverse proxy (nginx, caddy, traefik) for TLS/HTTPS support instead. This removes: - axum-server and rustls dependencies - The [tls] configuration section - The launch_with_tls function Also updates metrics-exporter-prometheus from 0.17 to 0.18. The reverse proxy approach is standard and provides better flexibility for certificate management. I'd rather keep our server stack as minimal as possible. <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.11.0 (#3051)Ellie Huxtable2026-01-12
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(deps): Update some packages realated to ring and aws-lc (#2991)Cristian Le2025-11-17
| | | | | | | | | | | | | | After `aws-lc-rs 0.15` it seems the illumos issue is resolved, so reviving the `metrics` et.al. update PR, specifically: - Update `metrics` to 0.24 and `metrics-exporter-prometheus` to 0.17 - Drop the `ring` feature from `rustls` - Update `reqwest` to 0.12 (dropping `rustls 0.21` from the lock file) There still seem to be `ring` dependencies, but not sure if these can be dropped --------- Co-authored-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
* chore(deps): Update the directories dependency to 6.0.0 (#2982)Ben Beasley2025-11-10
| | | | | | | | | | | | | | | | | | | | | Update the `directories` dependency to the latest and final version, 6.0.0. The SemVer-breaking change in `directories` 6 is just that `dirs-sys` is updated to 0.5, which, in turn, is just due to [updating some platform-specific dependencies](https://github.com/dirs-dev/dirs-sys-rs/compare/f369f0904bec9833572f24c988c7e48454173983...8bcd4aa2c35990d57a2cff2953793525fc42709c). There are therefore no API changes we need to worry about here. Note that (as for [`dirs`](https://github.com/dirs-dev/dirs-rs)) the [repository for `directories` is archived](https://github.com/dirs-dev/directories-rs), so it might be time to start thinking about a maintained alternative. ## Checks - [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [x] I have checked that there are no existing pull requests for the same thing
* chore: update to rust 1.91 (#2981)Ellie Huxtable2025-11-06
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.10.0 (#2962)Ellie Huxtable2025-10-21
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore(release): prepare for release 18.9.0 (#2952)Ellie Huxtable2025-10-20
| | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
* chore: update to Rust 1.90 (#2916)Ray Kohler2025-09-26
| | | | | | | | | | | | | | | | <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [X] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [X] I have checked that there are no existing pull requests for the same thing Hopefully this one is mergeable as is, unlike the 1.89 upgrade. Fixes: #2915
* fix: update version in Cargo.toml + github workflowsEllie Huxtable2025-09-10
|
* chore(release): prepare for release 18.8.0 (#2858)Ellie Huxtable2025-08-04
|
* chore: update to rust 1.88 (#2815)Ellie Huxtable2025-07-22
| | | | | | | | | * chore: update to rust 1.88 * clippy + fmt * update ci version * update flake
* chore(release): prepare for release 18.7.1 (#2826)Ellie Huxtable2025-07-16
|
* chore(release): prepare for release 18.7.0 (#2823)Ellie Huxtable2025-07-16
| | | | | * chore(release): prepare for release 18.7.0 * lockfile
* chore(deps): bump tower from 0.4.13 to 0.5.2 (#2734)dependabot[bot]2025-05-08
| | | | | | | | | | | | | | | | Bumps [tower](https://github.com/tower-rs/tower) from 0.4.13 to 0.5.2. - [Release notes](https://github.com/tower-rs/tower/releases) - [Commits](https://github.com/tower-rs/tower/compare/tower-0.4.13...tower-0.5.2) --- updated-dependencies: - dependency-name: tower dependency-version: 0.5.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(release): prepare for release 18.6.1 (#2749)Ellie Huxtable2025-05-08
|
* chore(release): prepare for release 18.6.0 (#2740)Ellie Huxtable2025-05-06
| | | Co-authored-by: Ellie Huxtable <ellie@mac.lan>
* chore(release): prepare for release 18.6.0-beta.1 (#2723)Ellie Huxtable2025-04-28
|
* chore(deps): bump fs-err from 2.11.0 to 3.1.0 (#2709)dependabot[bot]2025-04-21
| | | | | | | | | | | | | | | | Bumps [fs-err](https://github.com/andrewhickman/fs-err) from 2.11.0 to 3.1.0. - [Changelog](https://github.com/andrewhickman/fs-err/blob/main/CHANGELOG.md) - [Commits](https://github.com/andrewhickman/fs-err/compare/2.11.0...3.1.0) --- updated-dependencies: - dependency-name: fs-err dependency-version: 3.1.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update dependencies (#2695)Cristian Le2025-04-16
| | | | - Bump protox to 0.8 - Bump interim to 0.2
* chore(release): prepare for release 18.5.0 (#2685)Ellie Huxtable2025-04-08
| | | | | | | * chore(release): prepare for release 18.5.0 * update workflow ubuntu version * revert because dist checks lol
* chore(release): prepare for release 18.5.0-beta.3 (#2678)Ellie Huxtable2025-04-07
|
* feat: support storing, syncing and executing scripts (#2644)Ellie Huxtable2025-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add atuin-scripts crate * initial * define record types * wip * wip * mvp * add show command, make stdin work * rewrite execution to use shebang and script file ALWAYS * rename show -> get, allow fetching script only * fmt * clippy * a bunch of fixes to the edits * update lock * variables * fmt * clippy * pr feedback * fmt
* Revert "Revert "chore: update to rust 1.86 (#2666)" (#2667)" (#2676)Ellie Huxtable2025-04-07
| | | This reverts commit 9d816d16db233dd1aa477bfe1cc5a960e3c7b6c7.
* Revert "chore: update to rust 1.86 (#2666)" (#2667)Ellie Huxtable2025-04-03
| | | This reverts commit f0e8cc753e8448d415ae90ad7774058c6c5d47f7.
* chore: update to rust 1.86 (#2666)Ellie Huxtable2025-04-03
| | | | | | | * chore: update to rust 1.86 * fix: clippy errors from 1.86 * fix: update nix sha256
* chore(release): prepare for release 18.5.0-beta.2Ellie Huxtable2025-04-02
|
* chore: update to rust 1.85.1 (#2642)Ellie Huxtable2025-03-24
|
* chore(release): prepare for release 18.5.0-beta.1 (#2622)Ellie Huxtable2025-03-11
| | | | | * chore(release): prepare for release 18.5.0-beta.1 * no codespell on contributors
* chore: update rust toolchain to 1.85 (#2618)Ellie Huxtable2025-03-09
| | | | | | | | | | | | | | * chore: update rust toolchain to 1.85 * nix things * make clippy happy I've replaced a bunch of &Option<String> with Option<String>. They were not in hot loops, so a single clone is really no big deal + keeps things simpler. * fmt
* chore(deps): Update config to 0.15.8 (#2580)Yonatan Goldschmidt2025-02-18
| | | | This fixes a panic when non-Unicode environment variables are processed by atuin.
* chore(release): prepare for release v18.4.0 (#2495)Ellie Huxtable2024-12-27
|
* chore(release): prepare for release 18.4.0-beta.5 (#2472)Ellie Huxtable2024-12-05
|
* chore: update cargo-dist (#2471)Ellie Huxtable2024-12-05
|
* chore(release): prepare for release 18.4.0-beta.4 (#2469)Ellie Huxtable2024-12-05
|
* chore: update to rust 1.82 (#2432)Ellie Huxtable2024-10-22
|