daedalus-cli
v1.30.0
Published
Local-first AI coding CLI with embedded model router, multi-agent orchestration, and codebase indexing
Maintainers
Readme
Daedalus
Local-first terminal-based AI coding assistant.
Daedalus connects to local LLM servers (LM Studio, Ollama, llama.cpp, vLLM) or remote providers (OpenAI, Groq, OpenRouter, Anthropic), routes requests across models, and gives your AI agent access to your file system, terminal, git, web search, and codebase indexing.
╔═══════════════════════════════════════════════════════════════════╗
║ ██████╗ █████╗ ███████╗██████╗ █████╗ ██╗ ██╗ ██╗███████╗║
║ ██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██║ ██║ ██║██╔════╝║
║ ██║ ██║███████║█████╗ ██║ ██║███████║██║ ██║ ██║███████╗║
║ ██║ ██║██╔══██║██╔══╝ ██║ ██║██╔══██║██║ ██║ ██║╚════██║║
║ ██████╔╝██║ ██║███████╗██████╔╝██║ ██║███████╗╚██████╔╝███████║║
║ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚══════╝║
║ ║
║ o local-first · embedded router · multi-agent · not sentient o ║
╚═══════════════════════════════════════════════════════════════════╝
DAEDALUS v1.23.0 · bgill55_dev
┌─ router ──────────────────────────────────────────────────────────┐
│ strategy priority models 2 config ~/.daedalus/config.json│
└───────────────────────────────────────────────────────────────────┘
Type ? for commands · Tab completes · Be nice to your AI
[OK] Router started. Health checks running every 30s.
o › Quick Start
npm install -g daedalus-cli
daedalusOn first run, Daedalus scans for local LLM servers and guides you through setup. If none are found, it prompts for a remote provider.
From source: git clone https://github.com/bgill55/daedalus.git && cd daedalus && npm install && npm run build
Why Daedalus?
AI assistance without:
- Sending your code to third-party servers
- Per-token pricing for every interaction
- Being locked into a single provider
- Losing conversation history between sessions
Features
Core
- Local-first — works entirely on your machine with local LLMs
- Embedded model router — priority, round-robin, or fastest-response routing across multiple models
- Multi-agent orchestration — spawns planner, coder, reviewer, debugger, and researcher sub-agents
- Codebase indexing — FTS5-powered symbol search, definitions, and call-graph references (TS/JS, Python, Go, Rust)
- Session management — SQLite-backed history with save, load, JSONL export
- Persistent memory — facts and coding conventions auto-inject every turn;
/profileand/stylepersist across sessions - MCP support — Model Context Protocol servers via stdio and HTTP/SSE
- Windows + Unix — full cross-platform support
Tools
- File tools — read, write, patch with interactive diff UI; fuzzy whitespace matching, syntax validation with auto-revert
- Trust layer — write-without-read guardrail, circuit breaker, import/export validation, auto-test loop, large-rewrite annotation
- Terminal — cross-platform shell execution (bash/cmd/powershell) with custom preference support, timeout, and abort
- Git — status, diff, stage-all-and-commit, undo
- Web — DuckDuckGo search and URL fetching (no API key needed)
- Codebase — index, find, definitions, references
Commands
| Command | Description |
|---------|-------------|
| /add | Add file to context |
| /remove | Remove file from context |
| /context | Show active file context |
| /paste | Paste clipboard text/image as message |
| /clear | Clear conversation history |
| /spawn [--bg] <role> <task> / /delegate | Spawn sub-agent: /spawn [--bg] |
| /tasks | List background agent tasks |
| /task <id> | Manage background task: /task | /task kill |
| /orchestrate <goal> / /orc / /run / /o | Orchestrate agents for a goal |
| /memory | View project memory (facts & conventions) |
| /fact [text] | Add a project fact to memory |
| /convention [text] | Add a project convention to memory |
| /extract | Manually extract facts from session |
| /profile | View or set user profile info |
| /style | Set your coding style preferences |
| /undo | Undo last file patch |
| /branch [name] | Git branch operations |
| /pr [base] | Generate PR description Compared to base branch |
| /debug <command> | Run command and autonomously debug failures |
| /ensemble <goal> | Ensemble model drafting pipeline |
| /commit [msg] | Stage and commit changes |
| /project [set <key> = <val>] | View or set project config settings (.daedalusrc) |
| /session [name] | Manage chat sessions — /session new to start, /session new to start in another project, /session load to restore |
| /test [n] | Run test loop and fix failures |
| /index | Index codebase for symbol search |
| /find <query> | Search indexed symbols |
| /refs <symbol> | Find symbol references (callers) |
| /def <symbol> | Get symbol definition |
| /changelog | View the latest CLI changes |
| /models | List available and healthy models |
| /config [set <key> = <val>] | Show current configuration |
| /doctor | Diagnose connection and discovery |
| /help / ? / help | Show available commands |
| /mcp | Manage MCP servers: explore, search, install, list, remove, info |
| /onboard | First-time setup — discover local models, configure, and test |
| exit / /exit / /quit / quit | Save session and exit |
Tab completion works on all commands.
Configuration
Daedalus stores config at ~/.daedalus/config.json. Key sections:
{
"router": {
"strategy": "priority",
"chain": [
{
"name": "local",
"endpoint": "http://localhost:1234/v1",
"model": "auto",
"enabled": true,
"priority": 1,
"supportsTools": true,
"tier": "intelligence"
}
]
},
"indexing": { "enabled": true, "watch": true, "exclude": ["node_modules", "dist", ".git"] },
"tools": { "sandbox": "none", "sandboxImage": "node:20" }
}Router strategies: priority (default), round-robin, fastest.
Per-project config is stored at ~/.daedalus/config/<project-hash>.json and can be set via /project set <key> <value>.
Detailed Documentation Guides
For in-depth explanations, configuration options, and hardware optimization tips, see the modular guides below:
- Model Routing & Tuning Guide — Endpoints, failover chains, routing strategy configs, and GPU/LM Studio tuning recommendations.
- Multi-Agent Orchestration — Overview of the planning, coding, and review loops, recovery checkpoints, and background task runners.
- Execution Sandboxing — Running commands inside isolated Docker containers or WSL distributions.
- Model Context Protocol (MCP) Integration — Configuring stdio and HTTP/SSE servers to expand your agent's capabilities.
- Configuration Reference Guide — Reference list of all global configuration keys (
router.*,agents.*,tools.*,ui.*, etc.).
Development
npm run dev # hot-reload
npm run build # compile TypeScript
npm test # vitest (270+ tests)
npm run lint # eslint (flat config)
npx tsc --noEmit # type checkArchitecture
src/
├── index.ts CLI entry, REPL, command dispatch
├── config/ Zod-schema validated config
├── router/ Model routing, health checks, rate limiter
├── session/ SQLite sessions, project memory, JSONL export
├── agents/ Multi-agent orchestration (planner, coder, et al.)
├── tools/ 16 built-in tools + MCP transport
├── indexing/ FTS5 codebase indexing
└── onboarding/ Setup wizardContributing
See CONTRIBUTING.md for guidelines, coding standards, and the PR process. Governed by the Code of Conduct.
CHANGELOG.md | SECURITY.md | MIT License
