@helmlabs/docbot
v0.0.1
Published
AI-powered CLI for analyzing, planning, and executing documentation improvements
Maintainers
Readme

Docbot
Docbot is a CLI agent that helps you keep documentation up to date.
It reads your docs + codebase, proposes a concrete plan (file-level operations), and only writes changes after you approve.
Notes on speed (and why it's still worth it)
- Indexing can feel a bit slow right now; running a full cycle across a bunch of pages may take 5–10 minutes, but that's still way faster than the hours you'd spend doing it by hand
- Overall flow is under-optimized today; expect it to improve soon (again, the time and token costs are still much lower than manual work, at least for us)
Install
bunx @helmlabs/docbot --help(Optional) global:
bun add -g @helmlabs/docbot
docbot --helpQuick Start
# qdrant (required)
docker run --rm -p 6333:6333 -v "$(pwd)/qdrant_storage:/qdrant/storage" qdrant/qdrant
# config + local state (.docbot/, docbot.config.jsonc)
bunx @helmlabs/docbot init
# index docs/code (uses config; CLI flags override)
bunx @helmlabs/docbot index
# run the agent
bunx @helmlabs/docbot run "document the settings page"What It Does
- Codebase-aware doc work: finds gaps/stale pages by reading your code, not vibes
- Search that's actually useful: semantic + exact match, reranked
- Interactive planning: you approve the plan before anything touches your files
- MDX-first output: structured edits instead of “giant blob rewrite”
- TUI + API: run with a terminal UI, or start the HTTP server only
Requirements
Required:
- Bun
- Qdrant (local via Docker or remote -
docbot initwill set you up with a local instance via Docker) rg(ripgrep) for fast exact-match searchAI_GATEWAY_API_KEY(Vercel AI Gateway)
How It Works
- Analysis: scan docs + codebase, find gaps/duplicates/stale content
- Planning: propose a structured set of operations (create/update/move/delete/consolidate)
- Execution: apply changes (MDX edits, component-aware when relevant)
- Review: verify and re-scan for obvious misses
Dependencies & Design Choices
Docbot is opinionated so we were able to build it fast, but it's not meant to stay tied to a single docs framework or provider forever.
- Docs frameworks: Today Docbot targets MDX-based doc sites and detects Mintlify project structure automatically (as long as you use
docs.json). Mintlify was the first target because that's what we use at Helm; support will expand (custom MDX, Fumadocs, Nextra, Docusaurus, etc.). It's just a matter of tweaking the tools and prompts. - Vector store: Currently Qdrant (required). It's easy to run locally and does the job well. This may evolve as CI/multi-user needs grow.
- Models/provider: Currently Vercel AI Gateway via
AI_GATEWAY_API_KEY. Adding other providers is planned - you can use configure the models in the config file though. - Bun: Required. Will not change.
Commands
docbot init
Scaffolds project config in the repo root:
.docbot/docbot.config.jsonc
docbot initOptions:
--force: overwrite existing config--skip-docker: skip docker setup (you'll need to set up Qdrant manually)
docbot index
Indexes docs/code for search. If you don't pass flags, it uses your config.
docbot index
# or
docbot index --docs ./docs --codebase ./srcOptions:
--docs: docs path (optional if configured)--codebase: one or more codebase paths--config: config file path (default:docbot.config.jsonc)--qdrant-url: qdrant url (default: http://127.0.0.1:6333)--force: force full re-index, ignoring manifest
docbot run "<task>"
Runs the interactive workflow (plan → approval → execution → review).
docbot run "document the new api endpoints"Options:
--docs: docs path (optional if configured)--codebase: one or more codebase paths--config: config file path (default:docbot.config.jsonc)--interactive: plan approval (default: true)--port: server port (default: 3070)--qdrant-url: qdrant url (default: http://127.0.0.1:6333)--index-only: only index, don't run--verbose/--no-verbose: detailed logging + log panel--no-server: reuse an already running server--force: rebuild embeddings from scratch
docbot search "<query>"
docbot search "authentication" --type hybrid --limit 10Options:
--type:semantic,exact,hybrid(default:hybrid)--limit: max results (default: 5)
docbot serve
Starts the HTTP server (Elysia) without the TUI.
docbot serve --port 3070Configuration
docbot init creates docbot.config.jsonc. CLI flags override config.
Example:
{
"projectSlug": "my-project",
"paths": {
"docs": "./docs",
"codebase": ["./apps/web", "./packages/shared"]
},
"qdrant": {
"url": "http://127.0.0.1:6333",
"manifestPath": ".docbot/manifest.json",
"collections": {
"docs": "docbot_my-project_docs",
"code": "docbot_my-project_code"
}
},
"server": { "port": 3070 },
"models": {
"planning": "openai/gpt-5.2",
"prose": "anthropic/claude-sonnet-4.5",
"fast": "anthropic/claude-haiku-4.5",
"embedding": "openai/text-embedding-3-small",
"reranker": "cohere/rerank-v3.5"
}
}CLI flags take precedence over the config file.
Logs & UI
- Run (default): TUI + server in one process (verbose by default; log panel available)
- Serve: server only; logs to stdout
- Index-only:
--index-only - No-server:
--no-server
Log panel (TUI, verbose only):
- Toggle:
Ctrl+L - Tabs:
←/→ - Scroll:
Shift+↑/↓orShift+PgUp/PgDn - Clear:
C
Contributing
PRs welcome. Issues welcome.
Support
- This is a very new project—if you hit issues, please open an issue here
- You can also reach celia on X: @pariscestchiant
- Our own docs live at docs.helmkit.com
License
MIT
Todo
Tasks and progress are tracked in todo.md. Next big focus is changebot's integration inside of docbot (it's a changelog generator between two commits; we use it at helmkit.com/changelog)
