Shared Project Intelligence for multi-agent work
Coordinate execution. Preserve understanding.
AI agents are becoming specialized. One plans. One writes code. One reviews. One tests. But every handoff can lose the decisions, active work, impact, and proof that made the previous step safe.
Hosted MCP or API gives every client the same Project Intelligence before it acts. The Project Brain belongs to the project, not to a model, chat session, or orchestration framework.
Companion is the default workflow layer for briefs, handoffs, and continuity. Sandbox and Orchestrator are optional layers for repeatable execution, proof gates, production validation, or advanced multi-agent coordination.
Required path
AI client → Hosted MCP / API → Project Brain
The client still owns reasoning and execution. Snipara supplies the project-owned intelligence.
Optional layers
Companion
default workflow continuity
Sandbox
repeatable execution evidence
Orchestrator
advanced proof and coordination
The handoff problem
Specialization is useful. Context loss is expensive.
01 / planner
Creates a plan
The next agent sees a prompt, not the reasoning behind it.
02 / builder
Changes the repo
Important decisions remain buried in a previous context window.
03 / reviewer
Re-discovers impact
The same repository search starts again from zero.
snipara / project brain
Keeps the state
Decisions, ownership, impact, proof, and outcomes stay project-owned.
One execution, end to end
Orchestration is easiest to understand as a complete project loop. Snipara prepares the shared state and records what happened; your chosen agents still do the reasoning and execution.
01
Issue arrives
Goal, constraints, and project scope
02
Planner
Builds the execution graph from Project Intelligence
03 / parallel
Backend · frontend · docs · tests
Agents work in bounded branches of one graph
04
Verify · receipt · update
Proof becomes context for the next run
The boundary
The orchestrator is replaceable.
Use Snipara htasks, a host-native run, Codex, Claude, CI, or your own coordinator. The execution layer can change without resetting the project's intelligence.
The Project Brain is not.
PROJECT BRAIN / SHARED STATE
Decisions
why this path was chosen
Active work
who owns the next safe step
Impact graph
what the change can affect
Proof receipts
what was actually verified
Between executions
Run 2 should not start at zero.
Each run can leave behind decisions, proof, receipts, ownership, and impact. The next planner starts from that project state instead of reconstructing it from chat history.
Multi-agent coordination is not the product
Traditional multi-agent systems pass prompts between workers. Snipara keeps the durable project layer between those workers, so the handoff carries decisions and evidence rather than only text.
| Traditional multi-agent | Snipara Project Intelligence |
|---|---|
| Agents pass prompts | Agents reuse Project Brain state |
| Handoffs lose decisions | Handoffs carry decisions and proof |
| Each agent searches the repo again | Impact and source context are already available |
| Memory lives in a chat or tool | Memory, ownership, and outcomes live in the project |
| Planning restarts between runs | Planning continues from the last verified state |
Proof receipt
A decision that the next agent can trust
✓ receipt created
why · impact · verification · files · outcome
The orchestrator manages execution.
Project Brain manages understanding.
Advanced package
Most users do not need snipara-orchestrator. Start with Hosted MCP for agents or API / SDK for product integrations unless you specifically need production validation, proof-based checks, drift detection, or explicit htask orchestration.
For normal coding work, prefer Hosted MCP plus optional snipara-companion and Snipara Sandbox first. Use orchestrator only when you need a stronger control plane around validation and release workflows.
snipara-companion may suggest this package for FULL + ORCHESTRATED work, but it does not install orchestrator or spawn workers automatically. Install it explicitly through pip install snipara-orchestrator or npx create-snipara repair --with-orchestrator.
Orchestrator also contains the Adaptive Work Routing resolver. The resolver takes a provider-neutral WorkProfile, ModelRequirements, and a sanitized runtime worker catalog, then selects a candidate or fails closed to the main agent. It does not maintain hardcoded model-name lists and does not launch hidden workers.
Philosophy
Traditional CI/CD pipelines stop at "tests pass, deploy". But production is the real test. Snipara Orchestrator implements prod-first validation:
Proof-Based Verification
Every check produces a proof with endpoint, user_tested, and result. No guessing.
Single Gatekeeper
One authority decides pass/fail. No conflicting validation layers.
Live Production Checks
HTTP health checks, UI tests with Playwright, schema validation against live endpoints.
Fail-Fast on Drift
Detect route changes, schema drift, or unhealthy services before wasting time.
Installation
pip install snipara-orchestratornpx create-snipara repair --with-orchestratorOr with all optional dependencies (Playwright for UI tests):
pip install snipara-orchestrator[all]Quick Start
Adaptive Work Routing Resolver
Use the resolver when Snipara or companion has already produced a runtime catalog. This is the path for BYOM providers and local LLM runtimes such as Ollama, LM Studio, AnythingLLM, or OpenAI-compatible gateways reachable from the worker runtime.
snipara-orchestrator route --dry-run --catalog-file runtime-catalog.jsonRouting decisions stay advisory until a worker returns an explicit receipt and Project Health has enough quality-adjusted accepted outcomes to clear the sample gate.
Host-Native Supervision
The separate host command family can explicitly supervise Codex App Server, Claude Code CLI, or a loopback OpenAI-compatible runtime such as LM Studio. The native host keeps model invocation, tools, and permissions; Snipara normalizes discovery, bounded dispatch, status, steering, cancellation, resume metadata, redacted evidence, and actual Git write-scope checks.
snipara-orchestrator host discover --adapter allsnipara-orchestrator host run \
--adapter codex_app_server \
--task "Update one bounded docs file" \
--workspace . \
--write-scope docs/README.md \
--acceptance "docs match shipped behavior" \
--proof "git diff --check" \
--output-fragment "expected output line"snipara-orchestrator host run \
--adapter openai_compatible --base-url http://127.0.0.1:1234 --model local/coder \
--task "Update one bounded docs file" --workspace . --write-scope docs/README.md \
--proof "git diff --check" --strong-repair --repair-adapter codex_app_server --executeRuns are plans until --execute is supplied, and real dispatch also requires proof. Remote or credential-bearing local-model URLs, embedding/reranker models, missing proof, and out-of-scope writes fail closed. Managed Agents discovery remains feature-flagged until its beta contract is validated end to end.
Declared proof commands run automatically after dispatch through a bounded argv-only runner. Use --no-run-proof to leave a receipt in verification_required for review, or add --require-approval and an approval receipt before unattended execution. Provider keys are declared as environment-variable names with--api-key-env; the secret value never enters the chat, worker registry, or receipt.
Local delegation is available with explicit supervision
LM Studio completed 30/30 bounded tasks directly in this sample. A planner → local handoff completed 28/30 before verification; a strong repair pass recovered both failures. The control plane can now run proof commands and enforce approval, scope, and redaction gates. Automatic local delegation remains policy-gated, but the explicit supervised path now supports one bounded strong-repair attempt after a proof or output failure. This is a routing-quality gate, not a verdict on local model capability.
Marketing takeaway
One control plane. The right model for each step.
Use local inference for fast, bounded work and keep strong-host planning or recovery for ambiguity and risk. In this study, LM Studio runs on an existing Mac and the cloud agent is covered by an existing subscription, so neither path adds a per-call charge in this setup. The value we measure is verified delivery: quality, speed, and safe recovery.
30/30
direct local tasks verified
2.42 s
local median time to result
≈ $0.005
Fable API-equivalent value per task*
2/30
handoffs needing strong repair
*Based on the measured 161 input + 67 output local tokens and published API list rates ($10/$50 per million tokens for Claude Fable 5 ; $5/$30 for GPT-5.6 Sol). This is a reference value, not a local bill. Actual frontier savings require usage telemetry from the strong host.
Comparative benchmark evidence
The live benchmark uses three bounded task families and ten repetitions per family. It compares strong-only, local-only, strong-plan plus local execution, and the same handoff with a strong repair pass only after semantic validation fails. Token and cost fields staynull when the host does not expose them; completion and latency remain directly usable. The current machine-readable run is maintained in the repository benchmark evidence and is not a Worker Trust promotion signal.
| Condition | Semantic completion | Median | p95 | Supervisor recovery |
|---|---|---|---|---|
| Codex strong-only | 30/30 (100%) | 7.78 s | 12.42 s | — |
| LM Studio local-only | 30/30 (100%) | 2.42 s | 4.21 s | — |
| Codex plan + LM Studio | 28/30 (93.3%) | 11.72 s | 21.42 s | — |
| Plan + LM Studio + strong repair | 30/30 (100%) | 11.72 s | 25.24 s | 2/30 (6.7%) |
This separates model quality from orchestration quality: local-only matched Codex on these tasks and was 5.36 s faster at the median, while the planner handoff lost 6.7 points and added 3.94 s. A strong repair pass recovered both failures. Automatic local delegation remains policy-gated until this behavior is reproduced on broader real-work samples; explicit supervised runs can now request one bounded repair with the same scope and proof gates. We do not turn the existing Mac, subscription, electricity, or hardware into a fabricated per-call dollar saving; those resource costs are outside this benchmark.
Basic Usage
import asynciofrom snipara_orchestrator import Orchestrator, Task, ValidationCriteriafrom snipara_orchestrator.models import LiveCheck, OrchestratorConfigconfig = OrchestratorConfig( snipara_api_key="snp-your-key", snipara_project="my-project", prod_url="https://api.example.com",)orchestrator = Orchestrator(config)await orchestrator.initialize()task = Task( id="deploy-auth", title="Deploy Authentication", criteria=ValidationCriteria( local_tests=["pnpm test", "pnpm lint"], live_checks=[ LiveCheck(url="/health", expected_status=200), LiveCheck(url="/auth/login", method="POST", expected_status=200), ], required_proofs=2, ),)result = await orchestrator.execute_task(task)print(f"Status: {result.status.value}")CLI Usage
snipara-orchestrator initCreated orchestrator.yaml with default configurationsnipara-orchestrator run "deploy-auth"Task completed: DONE (3/3 proofs passing)Task Lifecycle
Tasks flow through a strict state machine:
PENDING → IN_PROGRESS → LOCAL_OK → VALIDATING → PROD_OK → DONE ↘ ENV_DRIFT (fail-fast)| State | Description |
|---|---|
PENDING | Task created, waiting to start |
IN_PROGRESS | Local tests running |
LOCAL_OK | Local tests passed, ready for validation |
VALIDATING | Running live checks against production |
PROD_OK | All live checks passed |
DONE | Task completed successfully |
ENV_DRIFT | Environment changed unexpectedly (routes, schema, health) |
FAILED | Task failed validation |
Snipara Integration
The orchestrator uses Snipara for context-aware validation. It queries your documentation to understand expected behavior, stores decisions in memory, and coordinates htask-based multi-agent workflows when you explicitly choose that pattern.
# Query context for task understandingcontext = await snipara.query("authentication API endpoints")# Remember decisions across sessionsawait snipara.remember( content="Used JWT for auth, not session cookies", type="decision",)# Coordinate with other agents via htasksfeature = await snipara.create_htask_feature(swarm_id, "Billing rollout", "Coordinate API, frontend, QA, and deploy validation")Drift Detection
The orchestrator automatically detects environment drift:
Route Drift
Expected endpoints missing or returning different status codes.
Schema Drift
OpenAPI/JSON Schema mismatches between expected and actual responses.
Health Drift
Services unhealthy or returning degraded status.
Multi-Agent Workflows
Use Snipara htasks to coordinate multiple agents. The orchestrator provides wrappers for feature creation, task creation, queue recommendations, completion evidence, and tree inspection. It still leaves actual Codex, Claude, or CI worker spawning explicit.
# Coordinator creates a feature and workstreamsawait snipara.create_swarm(name="deployment")feature = await snipara.create_htask_feature(swarm_id, "Auth rollout", "Ship auth safely")await snipara.create_htask(swarm_id, "Run unit tests", parent_id=feature["task_id"], priority=10)# Workers request the next safe batch and report evidencebatch = await snipara.recommend_htask_batch(swarm_id, limit=3)result = await execute_task(batch["tasks"][0])await snipara.complete_htask(swarm_id, batch["tasks"][0]["task_id"], result=result)snipara-orchestrator htask-next --swarm-id <swarm> --limit 3snipara-orchestrator htask-tree --swarm-id <swarm> --task-id <feature>API Reference
Orchestrator
| Method | Description |
|---|---|
initialize() | Initialize orchestrator and connect to Snipara |
execute_task(task) | Run full task lifecycle with validation |
check_drift() | Check for environment drift |
get_status(task_id) | Get current task status |
Gatekeeper
| Method | Description |
|---|---|
gate_local_to_validation(task) | Decide if local tests passed |
gate_validation_to_prod(task) | Decide if live checks passed |
generate_cutover_checklist(task) | Generate deployment checklist |
Examples
Basic Usage
Simple task with local tests and live checks.
Multi-Agent Workflow
Coordinator and workers using Snipara swarms.