skills$openclaw/project-orchestrator
reversteam1.3k

by reversteam

project-orchestrator – OpenClaw Skill

project-orchestrator is an OpenClaw Skills integration for coding workflows. 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.

1.3k stars3.2k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nameproject-orchestrator
descriptionAI 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. OpenClaw Skills integration.
ownerreversteam
repositoryreversteam/project-orchestrator
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @reversteam/project-orchestrator
last updatedFeb 7, 2026

Maintainer

reversteam

reversteam

Maintains project-orchestrator in the OpenClaw Skills directory.

View GitHub profile
File Explorer
94 files
.
docs
api
mcp-tools.md
44.6 KB
reference.md
32.4 KB
guides
getting-started.md
9.4 KB
knowledge-notes.md
13.1 KB
multi-agent-workflow.md
17.5 KB
workspaces.md
8.4 KB
integrations
claude-code.md
11.8 KB
cursor.md
8.8 KB
openai.md
11.4 KB
setup
installation.md
6.2 KB
scripts
context.sh
850 B
plan.sh
4.0 KB
query.sh
1.9 KB
test.sh
5.5 KB
src
api
code_handlers.rs
29.7 KB
handlers.rs
37.5 KB
mod.rs
234 B
note_handlers.rs
13.6 KB
project_handlers.rs
9.2 KB
query.rs
12.3 KB
routes.rs
14.3 KB
workspace_handlers.rs
30.7 KB
bin
mcp_server.rs
3.6 KB
mcp
handlers.rs
121.1 KB
mod.rs
301 B
protocol.rs
8.5 KB
server.rs
9.1 KB
tools.rs
81.2 KB
meilisearch
client.rs
18.4 KB
indexes.rs
7.7 KB
mod.rs
108 B
neo4j
client.rs
178.4 KB
mod.rs
134 B
models.rs
25.3 KB
notes
hashing.rs
14.2 KB
lifecycle.rs
30.6 KB
manager.rs
15.7 KB
mod.rs
479 B
models.rs
30.5 KB
orchestrator
context.rs
28.8 KB
mod.rs
193 B
runner.rs
26.8 KB
watcher.rs
8.5 KB
parser
languages
bash.rs
5.6 KB
c.rs
13.3 KB
cpp.rs
18.5 KB
go.rs
12.4 KB
java.rs
11.8 KB
kotlin.rs
11.6 KB
mod.rs
4.8 KB
php.rs
11.0 KB
python.rs
11.7 KB
ruby.rs
8.8 KB
rust.rs
17.0 KB
swift.rs
13.2 KB
typescript.rs
16.1 KB
helpers.rs
10.7 KB
mod.rs
23.4 KB
plan
manager.rs
21.8 KB
mod.rs
111 B
models.rs
23.3 KB
cli.rs
10.3 KB
lib.rs
2.7 KB
main.rs
3.3 KB
tests
api_tests.rs
75.0 KB
integration_tests.rs
12.5 KB
parser_tests.rs
24.1 KB
workspace_tests.rs
40.4 KB
_meta.json
296 B
AGENTS.md
2.4 KB
Cargo.toml
1.8 KB
CLAUDE.md
25.6 KB
CONTRIBUTING.md
4.0 KB
docker-compose.yml
2.0 KB
README.md
6.6 KB
SKILL.md
10.4 KB
SKILL.md

name: project-orchestrator description: 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. metadata: { "openclaw": { "emoji": "🎯", "requires": { "bins": ["docker", "cargo"] } } }

Project Orchestrator

Coordinate multiple AI coding agents with a shared knowledge base.

Features

  • Multi-Project Support: Manage multiple codebases with isolated data
  • Neo4j Knowledge Graph: Code structure, relationships, plans, decisions
  • Meilisearch: Fast semantic search across code and decisions
  • Tree-sitter: Precise code parsing for 12 languages
  • Plan Management: Structured tasks with dependencies and constraints
  • MCP Integration: 62 tools for Claude Code, OpenAI Agents, and Cursor

Documentation

Quick Start

1. Start the backends

cd {baseDir}
docker compose up -d neo4j meilisearch

2. Build and run the orchestrator

cargo build --release
./target/release/orchestrator serve

Or with Docker:

docker compose up -d

3. Sync your codebase

# Via CLI
./target/release/orch sync --path /path/to/project

# Via API
curl -X POST http://localhost:8080/api/sync \
  -H "Content-Type: application/json" \
  -d '{"path": "/path/to/project"}'

Usage

Create a 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"

Create a plan

orch plan create \
  --title "Implement GPU Backend" \
  --desc "Add Metal GPU support for neural network operations" \
  --priority 10

Add tasks to the plan

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>

Get context for an agent

# JSON context
orch context --plan <plan-id> --task <task-id>

# Ready-to-use prompt
orch context --plan <plan-id> --task <task-id> --prompt

Record decisions

orch decision add \
  --task <task-id> \
  --desc "Use shared memory for tile-based MatMul" \
  --rationale "Better cache locality, 2x performance improvement"

Search past decisions

orch decision search "memory management GPU"

API Endpoints

Projects (Multi-Project Support)

MethodPathDescription
GET/api/projectsList all projects
POST/api/projectsCreate a new project
GET/api/projects/{slug}Get project by slug
DELETE/api/projects/{slug}Delete a project
POST/api/projects/{slug}/syncSync project's codebase
GET/api/projects/{slug}/plansList project's plans
GET/api/projects/{slug}/code/searchSearch code in project

Plans & Tasks

MethodPathDescription
GET/healthHealth check
GET/api/plansList active plans
POST/api/plansCreate plan
GET/api/plans/{id}Get plan details
PATCH/api/plans/{id}Update plan status
GET/api/plans/{id}/next-taskGet next available task
POST/api/plans/{id}/tasksAdd task to plan
GET/api/tasks/{id}Get task details
PATCH/api/tasks/{id}Update task
GET/api/plans/{plan}/tasks/{task}/contextGet task context
GET/api/plans/{plan}/tasks/{task}/promptGet generated prompt
POST/api/tasks/{id}/decisionsAdd decision
GET/api/decisions/search?q=...Search decisions
MethodPathDescription
POST/api/syncSync directory to knowledge base
GET/api/watchGet file watcher status
POST/api/watchStart watching a directory
DELETE/api/watchStop file watcher
POST/api/wakeAgent completion webhook

Code Exploration (Graph + Search)

MethodPathDescription
GET/api/code/search?q=...Semantic code search
GET/api/code/symbols/{path}Get symbols in a file
GET/api/code/references?symbol=...Find all references to a symbol
GET/api/code/dependencies/{path}Get file import/dependent graph
GET/api/code/callgraph?function=...Get function call graph
GET/api/code/impact?target=...Analyze change impact
GET/api/code/architectureGet codebase overview
POST/api/code/similarFind similar code snippets
GET/api/code/trait-impls?trait_name=...Find types implementing a trait
GET/api/code/type-traits?type_name=...Find traits implemented by a type
GET/api/code/impl-blocks?type_name=...Get all impl blocks for a type

Auto-Sync with File Watcher

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/.

Code Exploration

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"

For Agents

Getting context before starting work

# Fetch your task context
curl http://localhost:8080/api/plans/$PLAN_ID/tasks/$TASK_ID/prompt

Recording decisions while working

curl -X POST http://localhost:8080/api/tasks/$TASK_ID/decisions \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Chose X over Y",
    "rationale": "Because..."
  }'

Notifying completion

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"]
  }'

Configuration

Environment variables:

VariableDefaultDescription
NEO4J_URIbolt://localhost:7687Neo4j connection URI
NEO4J_USERneo4jNeo4j username
NEO4J_PASSWORDorchestrator123Neo4j password
MEILISEARCH_URLhttp://localhost:7700Meilisearch URL
MEILISEARCH_KEYorchestrator-meili-key-change-meMeilisearch API key
WORKSPACE_PATH.Default workspace path
SERVER_PORT8080Server port
RUST_LOGinfoLog level

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    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   │     │               │     │               │
└───────────────┘     └───────────────┘     └───────────────┘

Development

# Run tests
cargo test

# Run with debug logging
RUST_LOG=debug cargo run -- serve

# Format code
cargo fmt

# Lint
cargo clippy
README.md

Project Orchestrator

Coordinate AI coding agents with a shared knowledge graph.

Project Orchestrator gives your AI agents a shared brain. Instead of each agent starting from scratch, they share code understanding, plans, decisions, and progress through a central knowledge base.

CI codecov License: MIT Rust


Features

  • Shared Knowledge Base — Code structure stored in Neo4j graph database, accessible to all agents
  • Semantic Code Search — Find code by meaning, not just keywords, powered by Meilisearch
  • Plan & Task Management — Structured workflows with dependencies, steps, and progress tracking
  • Multi-Language Parsing — Tree-sitter support for Rust, TypeScript, Python, Go, and 8 more languages
  • Multi-Project Workspaces — Group related projects with shared context, contracts, and milestones
  • MCP Integration — 113 tools available for Claude Code, OpenAI Agents, and Cursor
  • Auto-Sync — File watcher keeps the knowledge base updated as you code

Quick Start

1. Start the backend services

git clone https://github.com/your-org/project-orchestrator.git
cd project-orchestrator
docker compose up -d

2. Configure your AI tool

Add to your MCP configuration (e.g., ~/.claude/mcp.json):

{
  "mcpServers": {
    "project-orchestrator": {
      "command": "/path/to/mcp_server",
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "orchestrator123",
        "MEILISEARCH_URL": "http://localhost:7700",
        "MEILISEARCH_KEY": "orchestrator-meili-key-change-me"
      }
    }
  }
}

3. Create and sync your first project

# Your AI agent can now use MCP tools to:
# - create_project: Register your codebase
# - sync_project: Parse and index your code
# - create_plan: Start a development plan
# - create_workspace: Group related projects
# - And 108 more tools...

That's it! Your AI agents now have shared context.


Integrations

PlatformStatusDocumentation
Claude CodeFull SupportSetup Guide
OpenAI AgentsFull SupportSetup Guide
CursorFull SupportSetup Guide

What Can Your Agents Do?

Explore Code

"Find all functions that handle authentication"
"Show me what imports this file"
"What's the impact of changing UserService?"

Manage Work

"Create a plan to add OAuth support"
"What's the next task I should work on?"
"Record that we chose JWT over sessions"

Stay in Sync

"What decisions were made about caching?"
"Show me the project roadmap"
"What tasks are blocking the release?"

Coordinate Multiple Projects

"Create a workspace for our microservices"
"Add the API contract shared by all services"
"What's the cross-project milestone progress?"

Documentation

GuideDescription
InstallationFull setup instructions and configuration
Getting StartedStep-by-step tutorial for new users
API ReferenceComplete REST API documentation
MCP ToolsAll 113 MCP tools with examples
WorkspacesMulti-project coordination
Multi-Agent WorkflowsCoordinating multiple agents

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     YOUR AI AGENTS                          │
│           (Claude Code / OpenAI / Cursor)                   │
└─────────────────────────────┬───────────────────────────────┘
                              │ MCP Protocol
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                  PROJECT ORCHESTRATOR                        │
│                   (113 MCP Tools)                           │
└─────────────────────────────┬───────────────────────────────┘
                              │
        ┌─────────────────────┼─────────────────────┐
        ▼                     ▼                     ▼
┌───────────────┐     ┌───────────────┐     ┌───────────────┐
│    NEO4J      │     │  MEILISEARCH  │     │  TREE-SITTER  │
│               │     │               │     │               │
│ • Code graph  │     │ • Code search │     │ • 12 languages│
│ • Plans       │     │ • Decisions   │     │ • AST parsing │
│ • Decisions   │     │               │     │ • Symbols     │
└───────────────┘     └───────────────┘     └───────────────┘

Supported Languages

LanguageExtensions
Rust.rs
TypeScript.ts, .tsx
JavaScript.js, .jsx
Python.py
Go.go
Java.java
C/C++.c, .h, .cpp, .cc, .hpp
Ruby.rb
PHP.php
Kotlin.kt, .kts
Swift.swift
Bash.sh, .bash

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.


<p align="center"> <i>Give your AI agents a shared brain.</i> </p>

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

Configuration

Environment variables: | Variable | Default | Description | |----------|---------|-------------| | `NEO4J_URI` | `bolt://localhost:7687` | Neo4j connection URI | | `NEO4J_USER` | `neo4j` | Neo4j username | | `NEO4J_PASSWORD` | `orchestrator123` | Neo4j password | | `MEILISEARCH_URL` | `http://localhost:7700` | Meilisearch URL | | `MEILISEARCH_KEY` | `orchestrator-meili-key-change-me` | Meilisearch API key | | `WORKSPACE_PATH` | `.` | Default workspace path | | `SERVER_PORT` | `8080` | Server port | | `RUST_LOG` | `info` | Log level |

FAQ

How do I install project-orchestrator?

Run openclaw add @reversteam/project-orchestrator in your terminal. This installs project-orchestrator into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/reversteam/project-orchestrator. Review commits and README documentation before installing.