diff options
| author | Michelle Tilley <michelle@michelletilley.net> | 2026-05-08 10:16:43 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-08 10:16:43 -0700 |
| commit | 11eea2d1796f38ad1925a44ae3695de67d918879 (patch) | |
| tree | 5a631caebb54ac6023bc2781698e354d038acdfb | |
| parent | docs: Add related projects section to README (diff) | |
| download | atuin-11eea2d1796f38ad1925a44ae3695de67d918879.zip | |
chore: Generate LLM-optimized docs (#3468)
| -rw-r--r-- | docs/docs/ai/introduction.md | 2 | ||||
| -rw-r--r-- | docs/mkdocs.yml | 58 | ||||
| -rw-r--r-- | docs/pyproject.toml | 1 | ||||
| -rw-r--r-- | docs/uv.lock | 107 |
4 files changed, 168 insertions, 0 deletions
diff --git a/docs/docs/ai/introduction.md b/docs/docs/ai/introduction.md index c7f0af04..1fda185e 100644 --- a/docs/docs/ai/introduction.md +++ b/docs/docs/ai/introduction.md @@ -4,6 +4,8 @@ Atuin AI is a subcommand that enables shell command generation and other informa Atuin AI requires an account on [Atuin Hub](https://hub.atuin.sh/), and you'll be prompted to login upon first use of the binary. +Usage of Atuin AI is currently free. + ## Getting Started Atuin AI currently supports zsh, bash, and fish shells. Your shell's usual `atuin init` call will automatically bind the question mark key to the Atuin AI UI (only when the prompt is empty). diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 7027f212..2742fdb0 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -43,6 +43,64 @@ plugins: paths: ["mkdocs.yml", "docs/index.md", "docs/stylesheets/*"] yml_file: mkdocs.yml branch: mkt/docs-migration + - llmstxt: + base_url: https://docs.atuin.sh/cli + full_output: llms-full.txt + markdown_description: | + Atuin replaces your shell's built-in history with a SQLite database, adding context + (cwd, exit code, duration, hostname) and optionally syncing across machines with + end-to-end encryption. These docs cover the CLI tool - installation, configuration, + usage, self-hosting, and AI features. + sections: + Overview: + - index.md: Getting started with Atuin - quickstart, supported shells, and links. + Guide: + - guide/getting-started.md: First steps - install, import history, and start using Atuin. + - guide/installation.md: Install via script, Homebrew, WinGet, Cargo, Nix, or from source. + - guide/sync.md: Register an account and set up end-to-end encrypted history sync. + - guide/import.md: Import existing shell history from bash, zsh, fish, and others. + - guide/basic-usage.md: What Atuin records, how to use the TUI, and common config tweaks. + - guide/advanced-usage.md: Filter modes (global, host, session, directory, workspace) and search modes (fuzzy, full-text, skim). + - guide/shell-integration.md: How shell hooks work, environment variables, embedded terminals, and excluding commands. + - guide/agent-hooks.md: Capture commands from AI coding agents (Claude Code, Codex, pi) and filter by author. + - guide/delete-history.md: Delete single entries, bulk delete by query, remove duplicates, or wipe everything. + - guide/dotfiles.md: Sync shell aliases and environment variables across machines. + - guide/theming.md: Customize the TUI with color themes. + Configuration: + - configuration/config.md: Complete reference for ~/.config/atuin/config.toml - all settings with defaults and examples. + - configuration/key-binding.md: Custom up-arrow filter mode, disable up-arrow or ctrl-r, vim mode. + - configuration/advanced-key-binding.md: Full keymap customization with emacs, vim-normal, vim-insert, and inspector modes. + Reference: + - reference/config.md: The `atuin config` command - get, set, list, and resolve configuration values. + - reference/daemon.md: Background daemon for faster writes, auto-sync, and in-memory fuzzy search. + - reference/doctor.md: Diagnose common problems and dump system info for bug reports. + - reference/gen-completions.md: Generate shell completions for bash, fish, zsh, nushell, powershell, elvish. + - reference/hex.md: Experimental PTY proxy with popup rendering over existing terminal output. + - reference/import.md: Import history from bash, fish, zsh, replxx, mcfly, resh, and xonsh. + - reference/info.md: Show config file paths, env vars, and version info. + - reference/list.md: List history entries with formatting, filtering by cwd/session, and custom output templates. + - reference/prune.md: Delete entries matching history_filter config (useful after updating filters). + - reference/search.md: Search history with wildcards, filters (cwd, exit code, before/after), and delete mode. + - reference/stats.md: Compute stats for a time period - most used command, command count, unique commands. + - reference/sync.md: Sync commands - register, login, manual sync, and account management. + Self Hosting: + - self-hosting/server-setup.md: Run your own Atuin sync server with PostgreSQL or SQLite. + - self-hosting/usage.md: Configure the client to use a self-hosted server. + - self-hosting/docker.md: Deploy with Docker or Docker Compose. + - self-hosting/kubernetes.md: Full Kubernetes deployment with Postgres, secrets, and ingress. + - self-hosting/systemd.md: Systemd service unit with hardening options. + AI: + - ai/introduction.md: Atuin AI - command generation and lookup via LLM from your terminal. + - ai/settings.md: AI configuration in config.toml - enabled, endpoint, session timeout. + - ai/user-context.md: Send additional context to the LLM via TERMINAL.md files and dynamic shell substitution. + - ai/skills.md: Reusable instruction sets (skills) for Atuin AI - playbooks, conventions, workflows. + - ai/tools-permissions.md: Tools the AI can use (shell, filesystem) and permission files to control access. + Misc: + - known-issues.md: Known issues with ZFS and network filesystems. + - integrations.md: Integrations with zsh-autosuggestions, zsh-vi-mode, ble.sh, and mcfly. + - faq.md: Frequently asked questions - IDE terminals, history filtering, up-arrow, uninstalling. + - uninstall.md: How to uninstall Atuin and remove all data. + - sync-v2.md: Upgrading from sync v1 to v2 - faster, more reliable, less bandwidth. markdown_extensions: - pymdownx.highlight: diff --git a/docs/pyproject.toml b/docs/pyproject.toml index 2d58e8c7..bb6009d0 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -9,6 +9,7 @@ dependencies = [ "mkdocs-git-revision-date-localized-plugin>=1.2", "mkdocs-glightbox>=0.4", "mkdocs-redirects>=1.2.2", + "mkdocs-llmstxt>=0.5", ] [tool.uv] diff --git a/docs/uv.lock b/docs/uv.lock index e9f9b420..ec92abfc 100644 --- a/docs/uv.lock +++ b/docs/uv.lock @@ -12,6 +12,7 @@ source = { virtual = "." } dependencies = [ { name = "mkdocs-git-revision-date-localized-plugin" }, { name = "mkdocs-glightbox" }, + { name = "mkdocs-llmstxt" }, { name = "mkdocs-material" }, { name = "mkdocs-multirepo-plugin" }, { name = "mkdocs-redirects" }, @@ -21,6 +22,7 @@ dependencies = [ requires-dist = [ { name = "mkdocs-git-revision-date-localized-plugin", specifier = ">=1.2" }, { name = "mkdocs-glightbox", specifier = ">=0.4" }, + { name = "mkdocs-llmstxt", specifier = ">=0.5" }, { name = "mkdocs-material", specifier = ">=9.5" }, { name = "mkdocs-multirepo-plugin", git = "https://github.com/atuinsh/mkdocs-multirepo-plugin?rev=mkt%2Fimported_repo" }, { name = "mkdocs-redirects", specifier = ">=1.2.2" }, @@ -53,6 +55,19 @@ wheels = [ ] [[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] name = "certifi" version = "2025.11.12" source = { registry = "https://pypi.org/simple" } @@ -231,6 +246,31 @@ wheels = [ ] [[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, +] + +[[package]] +name = "markdownify" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3f/bc/c8c8eea5335341306b0fa7e1cb33c5e1c8d24ef70ddd684da65f41c49c92/markdownify-1.2.2.tar.gz", hash = "sha256:b274f1b5943180b031b699b199cbaeb1e2ac938b75851849a31fd0c3d6603d09", size = 18816, upload-time = "2025-11-16T19:21:18.565Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/ce/f1e3e9d959db134cedf06825fae8d5b294bd368aacdd0831a3975b7c4d55/markdownify-1.2.2-py3-none-any.whl", hash = "sha256:3f02d3cc52714084d6e589f70397b6fc9f2f3a8531481bf35e8cc39f975e186a", size = 15724, upload-time = "2025-11-16T19:21:17.622Z" }, +] + +[[package]] name = "markupsafe" version = "3.0.3" source = { registry = "https://pypi.org/simple" } @@ -305,6 +345,40 @@ wheels = [ ] [[package]] +name = "mdformat" +version = "0.7.22" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/eb/b5cbf2484411af039a3d4aeb53a5160fae25dd8c84af6a4243bc2f3fedb3/mdformat-0.7.22.tar.gz", hash = "sha256:eef84fa8f233d3162734683c2a8a6222227a229b9206872e6139658d99acb1ea", size = 34610, upload-time = "2025-01-30T18:00:51.418Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/6f/94a7344f6d634fe3563bea8b33bccedee37f2726f7807e9a58440dc91627/mdformat-0.7.22-py3-none-any.whl", hash = "sha256:61122637c9e1d9be1329054f3fa216559f0d1f722b7919b060a8c2a4ae1850e5", size = 34447, upload-time = "2025-01-30T18:00:48.708Z" }, +] + +[[package]] +name = "mdformat-tables" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdformat" }, + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/fc/995ba209096bdebdeb8893d507c7b32b7e07d9a9f2cdc2ec07529947794b/mdformat_tables-1.0.0.tar.gz", hash = "sha256:a57db1ac17c4a125da794ef45539904bb8a9592e80557d525e1f169c96daa2c8", size = 6106, upload-time = "2024-08-23T23:41:33.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/37/d78e37d14323da3f607cd1af7daf262cb87fe614a245c15ad03bb03a2706/mdformat_tables-1.0.0-py3-none-any.whl", hash = "sha256:94cd86126141b2adc3b04c08d1441eb1272b36c39146bab078249a41c7240a9a", size = 5104, upload-time = "2024-08-23T23:41:31.863Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] name = "mergedeep" version = "1.3.4" source = { registry = "https://pypi.org/simple" } @@ -379,6 +453,21 @@ wheels = [ ] [[package]] +name = "mkdocs-llmstxt" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "markdownify" }, + { name = "mdformat" }, + { name = "mdformat-tables" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/f5/4c31cdffa7c09bf48d8c7a50d8342dc100abac98ac4150826bc11afc0c9f/mkdocs_llmstxt-0.5.0.tar.gz", hash = "sha256:b2fa9e6d68df41d7467e948a4745725b6c99434a36b36204857dbd7bb3dfe041", size = 33909, upload-time = "2025-11-20T14:02:24.861Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/2b/82928cc9e8d9269cd79e7ebf015efdc4945e6c646e86ec1d4dba1707f215/mkdocs_llmstxt-0.5.0-py3-none-any.whl", hash = "sha256:753c699913d2d619a9072604b26b6dc9f5fb6d257d9b107857f80c8a0b787533", size = 12040, upload-time = "2025-11-20T14:02:23.483Z" }, +] + +[[package]] name = "mkdocs-material" version = "9.7.0" source = { registry = "https://pypi.org/simple" } @@ -677,6 +766,15 @@ wheels = [ ] [[package]] +name = "soupsieve" +version = "2.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, +] + +[[package]] name = "text-unidecode" version = "1.3" source = { registry = "https://pypi.org/simple" } @@ -751,3 +849,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, ] + +[[package]] +name = "wcwidth" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/ee/afaf0f85a9a18fe47a67f1e4422ed6cf1fe642f0ae0a2f81166231303c52/wcwidth-0.7.0.tar.gz", hash = "sha256:90e3a7ea092341c44b99562e75d09e4d5160fe7a3974c6fb842a101a95e7eed0", size = 182132, upload-time = "2026-05-02T16:04:12.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/52/e465037f5375f43533d1a80b6923955201596a99142ed524d77b571a1418/wcwidth-0.7.0-py3-none-any.whl", hash = "sha256:5d69154c429a82910e241c738cd0e2976fac8a2dd47a1a805f4afed1c0f136f2", size = 110825, upload-time = "2026-05-02T16:04:11.033Z" }, +] |
