Project Orchestrator
AI agent orchestrator with Neo4j knowledge graph, Meilisearch search, and Tree-sitter parsing. Use for coordinating multiple coding agents on complex projects with shared context and plans.
AI agent orchestrator with Neo4j knowledge graph, Meilisearch search, and Tree-sitter parsing. Use for coordinating multiple coding agents on complex projects with shared context and plans.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Coordinate multiple AI coding agents with a shared knowledge base.
cd {baseDir} docker compose up -d neo4j meilisearch
cargo build --release ./target/release/orchestrator serve
Or with Docker:
docker compose up -d
# Via CLI ./target/release/orch sync --path /path/to/projectVia API
curl -X POST http://localhost:8080/api/sync
-H "Content-Type: application/json"
-d '{"path": "/path/to/project"}'
# Create a new project curl -X POST http://localhost:8080/api/projects \ -H "Content-Type: application/json" \ -d '{ "name": "Embryon", "root_path": "/Users/triviere/projects/embryon", "description": "Neural network composition framework" }'List all projects
curl http://localhost:8080/api/projects
Sync a project
curl -X POST http://localhost:8080/api/projects/embryon/sync
Search code within a project
curl "http://localhost:8080/api/projects/embryon/code/search?q=tensor&limit=10"
orch plan create \ --title "Implement GPU Backend" \ --desc "Add Metal GPU support for neural network operations" \ --priority 10
orch task add \ --plan <plan-id> \ --desc "Implement MatMul Metal shader"orch task add
--plan <plan-id>
--desc "Add attention layer GPU support"
--depends <task-1-id>
# JSON context orch context --plan <plan-id> --task <task-id>Ready-to-use prompt
orch context --plan <plan-id> --task <task-id> --prompt
orch decision add \ --task <task-id> \ --desc "Use shared memory for tile-based MatMul" \ --rationale "Better cache locality, 2x performance improvement"
orch decision search "memory management GPU"
| Method | Path | Description |
|---|---|---|
| GET | | List all projects |
| POST | | Create a new project |
| GET | | Get project by slug |
| DELETE | | Delete a project |
| POST | | Sync project's codebase |
| GET | | List project's plans |
| GET | | Search code in project |
| Method | Path | Description |
|---|---|---|
| GET | | Health check |
| GET | | List active plans |
| POST | | Create plan |
| GET | | Get plan details |
| PATCH | | Update plan status |
| GET | | Get next available task |
| POST | | Add task to plan |
| GET | | Get task details |
| PATCH | | Update task |
| GET | | Get task context |
| GET | | Get generated prompt |
| POST | | Add decision |
| GET | | Search decisions |
| Method | Path | Description |
|---|---|---|
| POST | | Sync directory to knowledge base |
| GET | | Get file watcher status |
| POST | | Start watching a directory |
| DELETE | | Stop file watcher |
| POST | | Agent completion webhook |
| Method | Path | Description |
|---|---|---|
| GET | | Semantic code search |
| GET | | Get symbols in a file |
| GET | | Find all references to a symbol |
| GET | | Get file import/dependent graph |
| GET | | Get function call graph |
| GET | | Analyze change impact |
| GET | | Get codebase overview |
| POST | | Find similar code snippets |
| GET | | Find types implementing a trait |
| GET | | Find traits implemented by a type |
| GET | | Get all impl blocks for a type |
Keep the knowledge base updated automatically while coding:
# Start watching a project directory curl -X POST http://localhost:8080/api/watch \ -H "Content-Type: application/json" \ -d '{"path": "/path/to/project"}'Check watcher status
curl http://localhost:8080/api/watch
Stop watching
curl -X DELETE http://localhost:8080/api/watch
The watcher automatically syncs
.rs, .ts, .tsx, .js, .jsx, .py, .go files when modified.
It ignores node_modules/, target/, .git/, __pycache__/, dist/, build/.
Query the code graph instead of reading files directly:
# Semantic search across code curl "http://localhost:8080/api/code/search?q=error+handling&language=rust&limit=10"Get symbols in a file (functions, structs, etc.)
curl "http://localhost:8080/api/code/symbols/src%2Flib.rs"
Find all references to a symbol
curl "http://localhost:8080/api/code/references?symbol=AppState&limit=20"
Get file dependencies (imports and dependents)
curl "http://localhost:8080/api/code/dependencies/src%2Fneo4j%2Fclient.rs"
Get call graph for a function
curl "http://localhost:8080/api/code/callgraph?function=handle_request&depth=2&direction=both"
Analyze impact before changing a file
curl "http://localhost:8080/api/code/impact?target=src/lib.rs&target_type=file"
Get architecture overview
curl "http://localhost:8080/api/code/architecture"
Find similar code patterns
curl -X POST http://localhost:8080/api/code/similar
-H "Content-Type: application/json"
-d '{"snippet": "async fn handle_error", "limit": 5}'Find all types implementing a trait
curl "http://localhost:8080/api/code/trait-impls?trait_name=Module"
Find all traits implemented by a type
curl "http://localhost:8080/api/code/type-traits?type_name=Orchestrator"
Get all impl blocks for a type
curl "http://localhost:8080/api/code/impl-blocks?type_name=Neo4jClient"
# Fetch your task context curl http://localhost:8080/api/plans/$PLAN_ID/tasks/$TASK_ID/prompt
curl -X POST http://localhost:8080/api/tasks/$TASK_ID/decisions \ -H "Content-Type: application/json" \ -d '{ "description": "Chose X over Y", "rationale": "Because..." }'
curl -X POST http://localhost:8080/api/wake \ -H "Content-Type: application/json" \ -d '{ "task_id": "'$TASK_ID'", "success": true, "summary": "Implemented feature X", "files_modified": ["src/foo.rs", "src/bar.rs"] }'
Environment variables:
| Variable | Default | Description |
|---|---|---|
| | Neo4j connection URI |
| | Neo4j username |
| | Neo4j password |
| | Meilisearch URL |
| | Meilisearch API key |
| | Default workspace path |
| | Server port |
| | Log level |
┌─────────────────────────────────────────────────────────────┐ │ ORCHESTRATOR API │ │ (localhost:8080) │ └─────────────────────────────┬───────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ ▼ ▼ ▼ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ NEO4J │ │ MEILISEARCH │ │ TREE-SITTER │ │ (7687) │ │ (7700) │ │ (in-proc) │ │ │ │ │ │ │ │ • Code graph │ │ • Code search │ │ • AST parsing │ │ • Plans │ │ • Decisions │ │ • Symbols │ │ • Decisions │ │ • Logs │ │ • Complexity │ │ • Relations │ │ │ │ │ └───────────────┘ └───────────────┘ └───────────────┘
# Run tests cargo testRun with debug logging
RUST_LOG=debug cargo run -- serve
Format code
cargo fmt
Lint
cargo clippy
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.