Intelligent multi-agent coordination for OpenCode β because great software is a team sport.
BREAKING: LanceDB β Qdrant Migration β boomerang-v2 now uses Super-Memory-TS natively with Qdrant backend.
| Feature | Description |
|---|---|
| Qdrant Backend | Vector storage via Super-Memory-TS with Qdrant |
| Project Isolation | BOOMERANG_PROJECT_ID env var for multi-project support |
| Health Diagnostics | get_status tool for connection health checks |
| Migration Script | npm run migrate-memory for LanceDB β Qdrant data migration |
| Connection Resilience | Exponential backoff retry for Qdrant connections |
Boomerang uses a two-tier agent system. You can customize which LLM models power each tier during installation.
| Tier | Default Model | Agents |
|---|---|---|
| Primary | Kimi K2.6 (kimi-for-coding/k2p6) |
orchestrator, architect, writer, handoff, init |
| Secondary | MiniMax M2.7 (minimax/MiniMax-M2.7) |
coder, explorer, tester, linter, git, scraper, researcher, mcp-specialist |
Pass model arguments during installation:
# Use a single model for all agents
npx @veedubin/boomerang-v2 --primary=k2k6
# Use different models for primary and secondary tiers
npx @veedubin/boomerang-v2 --primary=claude-sonnet --secondary=gpt-4o-mini
# Install with defaults
npx @veedubin/boomerang-v2| Alias | OpenCode Model ID | Provider |
|---|---|---|
k2k6 |
kimi-for-coding/k2p6 |
Kimi |
k2k5 |
kimi-for-coding/k2p5 |
Kimi |
m2k7 |
minimax/MiniMax-M2.7 |
MiniMax |
m2k5 |
minimax/MiniMax-M2.5 |
MiniMax |
claude-sonnet |
anthropic/claude-sonnet-4-20250514 |
Anthropic |
claude-opus |
anthropic/claude-opus-4-20250514 |
Anthropic |
gpt-4o |
openai/gpt-4o |
OpenAI |
gpt-4o-mini |
openai/gpt-4o-mini |
OpenAI |
gemini-pro |
google/gemini-2.5-pro |
|
gemini-flash |
google/gemini-2.5-flash |
|
deepseek |
deepseek/deepseek-chat-v3 |
DeepSeek |
llama3 |
meta/llama-3.3-70b |
Meta |
qwen |
alibaba/qwen-2.5-72b |
Alibaba |
You can also pass any valid OpenCode model ID directly:
npx @veedubin/boomerang-v2 --primary=anthropic/claude-sonnet-4-20250514Find available models: Visit models.dev to discover model names and IDs
npm install @veedubin/boomerang-v2Add to your .opencode/opencode.json:
{
"plugin": ["@veedubin/boomerang-v2"],
"mcp": {
"sequential-thinking": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-sequential-thinking"],
"enabled": true
}
}
}| Command | Description |
|---|---|
bun run build |
Build TypeScript to dist/ |
bun run typecheck |
Run TypeScript type checking |
bun run lint |
Run ESLint |
npx vitest run |
Run test suite |
Boomerang uses a Context Package system where the orchestrator passes comprehensive context to sub-agents:
- Original user request (verbatim)
- Task background and constraints
- Relevant files and code snippets
- Expected output format
- Scope boundaries and escalation targets
This ensures sub-agents have everything they need to work effectively.
Super-memory is the central knowledge base:
- Query before responding β Agents check memory for relevant context
- Save after completing β Agents save detailed work to memory
- Thin responses β Sub-agents return concise summaries + memory references
- Thick memory β Full details stored in Qdrant for future retrieval
| Tier | Description | Agents |
|---|---|---|
| Orchestrator | Top-level coordinator | boomerang |
| Primary Tier Agents | Design, research, orchestration | architect, writer, handoff, init |
| Secondary Tier Agents | Implementation, tools | coder, explorer, tester, linter, git, scraper, researcher, mcp-specialist, release |
NO SPAWNING β Sub-agents do not spawn child agents.
Planning is mandatory for all build/create/implement tasks unless explicitly waived by the user.
| Agent | Skill | Model | Role |
|---|---|---|---|
| boomerang | boomerang-orchestrator | Kimi K2.6 | π― Orchestrator β Plans, coordinates, enforces protocol |
| boomerang-coder | boomerang-coder | MiniMax M2.7 | π» Fast code generation β TypeScript/Python |
| boomerang-architect | boomerang-architect | Kimi K2.6 | ποΈ Design decisions β Trade-off analysis and architecture |
| boomerang-explorer | boomerang-explorer | MiniMax M2.7 | π Codebase exploration β Find files by name/glob |
| boomerang-tester | boomerang-tester | MiniMax M2.7 | π§ͺ Testing specialist β Unit/integration tests |
| boomerang-linter | boomerang-linter | MiniMax M2.7 | β Quality enforcement β ESLint, typecheck |
| boomerang-git | boomerang-git | MiniMax M2.7 | π¦ Version control β Multi-package commits |
| boomerang-writer | boomerang-writer | Kimi K2.6 | π Documentation β Markdown writing |
| boomerang-scraper | boomerang-scraper | MiniMax M2.7 | π Web scraping β Research and data gathering |
| boomerang-release | boomerang-release | MiniMax M2.7 | π Release automation β Version bump, changelog, publish |
| boomerang-handoff | boomerang-handoff | Kimi K2.6 | π Session wrap-up β Context saving |
| boomerang-init | boomerang-init | Kimi K2.6 | π¬ Initialization β Project setup and agent personalization |
| researcher | researcher | MiniMax M2.7 | π Web research β Search & synthesis |
| mcp-specialist | mcp-specialist | MiniMax M2.7 | π MCP Protocol β Tool design, server debug |
β οΈ CODE-LEVEL ENFORCED β These rules are not optional guidelines.
- boomerang-architect owns ALL research tasks (web searches, code analysis, documentation review)
- boomerang-explorer is file-finding only β no pattern analysis or code research
- super-memory_search_project is the primary research tool
- Research tasks β
boomerang-architect(NOT explorer) - File finding β
boomerang-explorer(only for glob/find operations) - Code implementation β
boomerang-coder - Never delegate research to explorer β architect handles it
| Agent | Scope |
|---|---|
| boomerang-explorer | Find files by name/glob ONLY |
| boomerang-architect | Design + Research + Code analysis |
| boomerang-coder | Code implementation |
| boomerang-tester | Test writing |
| boomerang-linter | Quality enforcement |
| mcp-specialist | MCP tool design & server debug |
- Claude 200kβ180k window β 10% reserved for protocol overhead
- Smart eviction at 70% β Low-value outputs offloaded to temp files
- Compaction at 85% β Session wrap-up triggered, fresh context
70% context usage β Evict tool outputs >500 words
85% context usage β Trigger /handoff skill, save state
| Package | Status | Notes |
|---|---|---|
| uuid | β Fixed | Updated to patched version |
| @modelcontextprotocol/sdk | Monitoring, no alternative | |
| protobufjs | Monitoring, no alternative |
Boomerang uses Qdrant via Super-Memory-TS for vector storage.
The easiest way to run Qdrant with persistent storage and auto-restart:
# Start Qdrant (persistent, auto-restart)
docker-compose up -d qdrant
# Check status
docker-compose ps
# View logs
docker-compose logs -f qdrant
# Stop (keeps data)
docker-compose stop
# Stop and remove container (data persists in ./qdrant_storage)
docker-compose down
# Full reset (removes data)
docker-compose down -v && docker-compose up -d qdrantOr use the npm scripts:
npm run qdrant:start # Start Qdrant
npm run qdrant:stop # Stop Qdrant
npm run qdrant:logs # View logs
npm run qdrant:status # Check statusBenefits over docker run:
- Named container prevents duplicates
- Auto-restart on boot (
unless-stopped) - Health check for dependent services
- Persistent
./qdrant_storagevolume - gRPC port 6334 exposed for future use
Start Qdrant (required):
docker run -p 6333:6333 qdrant/qdrant| Variable | Default | Description |
|---|---|---|
QDRANT_URL |
http://localhost:6333 |
Qdrant server URL |
BOOMERANG_PROJECT_ID |
default |
Project isolation ID |
| Operation | Method | Description |
|---|---|---|
| Query | memoryService.queryMemories() |
Semantic search across sessions |
| Save | memoryService.addMemory() |
Store decisions and learnings |
| Project Search | memoryService.searchProject() |
Search indexed project files |
| Index | memoryService.indexProject() |
Trigger project re-indexing |
| Health | get_status |
Check Qdrant connection health |
If you have existing LanceDB data, migrate with:
npm run migrate-memory -- --lancedb-uri ./memory_data --qdrant-url http://localhost:6333Add --resume to continue an interrupted migration.
| Achievement | Version | Description |
|---|---|---|
| 18-Item Completion | v2.3.10 | All security, feature, CI, and test work items done |
| Connection Fix | v2.3.10 | Removed broken transport check causing "Not connected" |
| Agent Governance | v2.3.2 | Code-level enforced rules, architect owns research |
| CI Stabilization | v2.3.6 | 95 critical tests passing |
| Database Migration | v2.0.0 | LanceDB β Qdrant for improved performance |
| Dual-Mode Memory | v2.3.8 | Built-in direct import vs MCP external |
boomerang-v2/
βββ src/
β βββ index.ts # Main entry point
β βββ memory/ # Memory adapter (Super-Memory-TS wrapper)
β βββ memory-service.ts # Public API wrapper
β βββ protocol/ # Protocol tracking
β βββ agents/ # Agent definitions
βββ scripts/
β βββ migrate-lancedb-to-qdrant.ts # Migration script
βββ dist/ # Built output
βββ package.json # @veedubin/boomerang-v2
βββ README.md
Memory is automatically initialized on plugin load. Requires Qdrant:
docker run -p 6333:6333 qdrant/qdrantUse the standalone Super-Memory-TS MCP server:
npm install @veedubin/super-memory-ts
npx super-memory-ts| Tool | Description |
|---|---|
super-memory_query_memories |
Search memories |
super-memory_add_memory |
Store memory |
super-memory_search_project |
Search indexed files |
super-memory_index_project |
Trigger indexing |
| Package | Registry | Trigger |
|---|---|---|
@veedubin/boomerang-v2 |
NPM | plugin-v*.*.* tag |
@veedubin/super-memory-ts |
NPM | v*.*.* tag |
- v3.0.1 β Build fixes, TUI cleanup, version sync
- v3.0.0 β LanceDB β Qdrant migration complete
- v2.3.10 β Connection fix, version sync, all 18 items complete
- v2.3.8 β Dual-mode memory architecture
- v2.3.2 β Agent governance code-level enforced
- v2.0.0 β LanceDB β Qdrant migration
MIT License β see LICENSE for details.
Built with π by Veedubin
Your AI development team, on demand.