vimana
v0.1.0
Published
Model-agnostic coding agent harness
Maintainers
Readme
Vimana
Model-agnostic coding agent harness. Run any LLM as a coding agent with tools, skills, MCP servers, and ensemble mode.
Features
- 23 models via OpenRouter — DeepSeek, Qwen, Kimi, Gemini, Llama, MiniMax, and more
- 6 core tools — Read, Write, Edit, Bash, Glob, Grep (same interface as Claude Code)
- Skill system — Agent Skills open standard compatible, progressive disclosure, slash commands
- MCP support — Connect stdio MCP servers via
.mcp.json - Ensemble mode — Multiple expert models tackle the same task in parallel, consolidator synthesizes the best fix
- Subagent delegation — Spawn background/foreground sub-agents for parallel work
- Benchmarks — Synthetic tasks, GitHub repos, skill evaluation, subagent coordination
Quick Start
# Install
npm install
# or
bun install
# Interactive REPL
bun run src/cli.ts -m kimi-k2.5
# Non-interactive
bun run src/cli.ts -m qwen3.5-397b -p "fix the bug in server.ts"
# Ensemble mode (3 experts → 1 consolidator)
bun run src/cli.ts -e "kimi-k2.5,deepseek-v3.2,qwen3-coder" -m kimi-k2.5 "fix the race condition"API Key
Vimana reads the OpenRouter API key from macOS Keychain:
security add-generic-password -s "openrouter-api-key" -a "$USER" -w "sk-or-..."CLI
vimana [options] [prompt]
Options:
-m, --model <name> Model alias (default: kimi-k2.5)
-p, --print Non-interactive: run prompt and exit
-e, --ensemble <models> Ensemble mode: comma-separated expert models
-c, --continue Continue most recent session
-r, --resume <id> Resume session by ID
-V, --verbose Show full tool results
--max-turns <n> Max agent turns (default: 50)
--list-models List available models
--list-sessions List saved sessions
REPL Commands:
/cost Token usage and cost
/model List models
/skills List available skills
/clear Clear screen
/help Help
/quit ExitArchitecture
src/
├── core/
│ ├── agent.ts — Agent loop (prompt → LLM → tools → execute → feed back)
│ ├── client.ts — OpenRouter client via openai SDK
│ ├── models.ts — 23 models with verified OpenRouter IDs
│ ├── ensemble.ts — N experts + consolidator architecture
│ ├── skills.ts — Skill loader, tool, slash commands
│ ├── mcp.ts — MCP client (stdio servers from .mcp.json)
│ ├── prompt.ts — System prompt builder (project context + repo map)
│ ├── context.ts — Context compaction via LLM summarization
│ ├── permissions.ts — Tool permission system (auto/ask/deny)
│ ├── hooks.ts — PreToolUse/PostToolUse hooks
│ ├── session.ts — Session persistence (~/.vimana/sessions/)
│ └── types.ts — Core types (ToolDefinition, ToolContext, etc.)
├── tools/ — Read, Write, Edit, Bash, Glob, Grep + Subagent + Tasks
├── skills/ — 10 built-in skills
└── bench/ — Benchmark suites (synthetic, github, skill, subagent)Benchmark Results
Synthetic Tasks (5 tasks — real bugs from production systems)
| Model | Score | Tokens | Cost | Avg Time | |-------|-------|--------|------|----------| | Qwen3.5-397B | 5/5 (100%) | 102K | $0.053 | 34s | | Kimi K2.5 | 5/5 (100%) | 88K | $0.051 | 49s | | DeepSeek V3.2 | 5/5 (100%) | 363K | $0.093 | 191s |
GitHub Tasks (13 real-world repo fixes)
| Model | Score | Cost | |-------|-------|------| | Kimi K2.5 | 11/13 (85%) | $0.64 | | Qwen3.5-397B | 9/13 (69%) | $1.31 | | MiniMax M2.5 | 9/13 (69%) | $0.60 |
Ensemble Mode
Multiple experts run in parallel on isolated workspace copies. A consolidator reviews all attempts and implements the best fix with full tool access.
Expert 1 (kimi-k2.5) ─┐
Expert 2 (deepseek-v3.2) ─┼──→ Consolidator (kimi-k2.5) ──→ Final fix
Expert 3 (qwen3-coder) ─┘License
MIT
