Current Version: 0.4.1 — May 2026 Author: Jeremy JEANNE
- Ratatui TUI with streaming chat, plan mode, tool approval dialogs
- Anthropic provider with streaming, tool use, and cost tracking
- SQLite persistence (sessions, messages, plans)
- Phase 1 tools:
read_file,write_file,edit_file,bash,ls,glob,grep
- OpenAI provider (GPT-4, GPT-3.5, OpenAI-compatible endpoints)
- Local LLM support via LM Studio and Ollama
- AWS Bedrock provider (
--features aws-bedrock) - Phase 2 tools:
web_search,execute_code,notebook_edit,parse_document - OS keyring integration for secure API key storage
- Phase 3 tools:
plan,task,context,http_request - Smart model routing (keyword-based tier selection, no API call)
- Parallel tool dispatch via
join_all(≥40% faster on concurrent reads) - Tool result caching with TTL for read-only tools
- Provider failover (auto-retry on secondary provider on rate-limit / timeout)
- Sandbox & permission policy (path boundary enforcement, bash allowlist,
AndPolicy) - Episodic memory (past session summaries injected into new context)
- Context compaction at 80% window capacity
- Reasoning / thinking display (Anthropic extended thinking, DeepSeek-R1, QwQ-32B via
<think>tags) - Codebase index with file watcher (
notifycrate, symbol index, FTS search) - MCP tool server integration (
[[mcp.servers]]config, auto-registered at startup) - Phase 4 tools:
web_fetch,todo_write,ask_user,skill,agent,powershell SubAgentLaunchertrait — decoupled sub-agent spawning with recursion guard
- Native Ollama provider (
--features ollama, built onollama-rs) talking directly to/api/chat, alongside the existing OpenAI-compatible route - Runtime performance metrics — tokens/sec, model load time, warm/cold-start — surfaced in the TUI header and under each reply; provider identity badge in the header for every configured provider
Ctrl+DModel Download dialog — pick or type a model, pull with a live progress bar, cancel withEsc, without leaving the TUI- Model management CLI:
crustly ollama list|pull|rm|show|embed keep_alive/num_ctxcontrol;OLLAMA_HOST/OLLAMA_MODELenv vars- See
ollama-rs-integration-plan.mdfor the full design and implementation status
Target: Q3 2026
- Integration test suite — full chat/tool/approval flows with a mock provider (no live API calls required)
- CI/CD pipeline — GitHub Actions:
cargo test,cargo clippy,cargo fmt --check,cargo auditon every PR - Interactive settings TUI — configure provider, API keys (masked), model, tool toggles, approval timeout from inside the TUI
- Session search & export — fuzzy search sessions by content; export to Markdown or JSON
- Git status bar — current branch, dirty/clean state, uncommitted changes count shown in footer
- Approval memory — "always allow this tool for this session" option; configurable per-tool whitelist
Target: Q4 2026
- Benchmark suite —
cargo benchtargets for DB operations, syntax highlighting, and TUI rendering - Message pagination — virtual list rendering so large sessions (1000+ messages) don't degrade TUI performance
- Lazy syntax highlighting — cache rendered blocks; skip re-highlighting unchanged content
- Crash recovery — write a recovery manifest on panic; offer to restore the interrupted session on next launch
- Structured error dialog — TUI overlay showing full error with copy-to-clipboard; all errors written to
.crustly/logs/ - Rate-limit countdown — show remaining backoff time in the status bar when a provider returns 429
Target: Q1 2027
- LSP client — wire up
tower-lspfor symbol definitions, references, and diagnostics - Diagnostics injection — include active compiler errors in the agent context automatically
- Jump-to-definition — open file at symbol location from TUI (launches
$EDITOR) - Hover information — surface type signatures and docs in a side panel
- Multi-language support — Rust, TypeScript, Python, Go language servers
Target: Q2 2027
- Plugin API design — stable ABI for custom tools and providers
- WASM runtime — sandboxed plugin execution via
wasmtime - Plugin discovery — scan
.crustly/plugins/and~/.config/crustly/plugins/ - Plugin SDK — separate
crustly-plugin-sdkcrate with examples - Example plugins —
git-tool,docker-tool,jira-tool
Target: Q3 2027
- All v0.5–v0.8 milestones complete and stable
- External security audit (API key handling, tool sandbox, path traversal)
- Cross-platform validation (Linux Ubuntu/Arch, macOS Intel/Apple Silicon, Windows 11)
- Package manager distribution (Homebrew, AUR, Scoop, Chocolatey)
- Full user documentation (mdBook with tutorials and API reference)
- Semantic versioning with automated releases via
cargo-release
| Item | Notes |
|---|---|
| RAG / vector store | Semantic search over the codebase; integrate with the existing codebase index. Raw embedding generation is already available via the native Ollama provider (crustly ollama embed) — no retrieval layer wired up yet |
| Multi-pane TUI | Chat + file preview split; tabs for multiple conversations |
| Web interface | Optional crustly serve command exposing a browser UI |
| Multi-user / team | Shared sessions, role-based approval, audit log export |
| Telemetry (opt-in) | Anonymous usage stats; cost analytics charts in TUI |
| Google Gemini provider | HTTP client implementation |
| Azure OpenAI provider | Azure-specific auth and endpoint routing |
crustly run pipelines |
Chain multiple prompts with conditional logic in a YAML file |
- Terminal-first — never require a browser or GUI; every feature must work over SSH.
- Privacy by default — local LLM support is a first-class citizen, not an afterthought.
- Explicit approval — dangerous operations always pause for user confirmation; no silent side effects.
- Measurable before optimised — add benchmarks before claiming performance improvements.
- Security before features — path traversal, injection, and API key hygiene are non-negotiable pre-conditions for 1.0.