Repository navigation
First tagged release of AIOrc.
What it is
AIOrc is the control plane for a company's AI agents: a multi-tenant registry that stores, shares, governs and measures agents, and exposes each project's workflow to any MCP-compatible client — Claude Code, Cursor, or anything that speaks MCP.
The distinguishing property is that the server enforces the workflow graph instead of suggesting it to the model. In stepped mode the engine hands the client one step at a time, validates every transition against the graph's edges, enforces per-agent invocation caps, and records each dispatch as ground truth. An illegal transition is refused while it is being attempted, rather than discovered afterwards in a self-reported log.
AIOrc runs no LLM of its own. The consuming model executes; AIOrc is the contract and the auditor.
What v0.1 includes
- Registry — agents, skills (reusable guardrails) and contexts (business knowledge), per project, shareable through invitations, stars and forks.
- Visual flow editor — Start / Agent / Parallel / End nodes, natural-language edge conditions, loops via back-edges, structural validation before compile.
- MCP server —
workflow.startandworkflow.nextfor server-verified stepped execution,workflowfor compiled mode, plusworkflow.reportandworkflow.eval, over JSON-RPC 2.0. External MCP servers registered in a project are proxied through the same single connection, namespaced asserver__tool. - Verified execution — illegal transitions rejected, invocation caps enforced, every dispatch recorded.
- Kill switch and cancel — pause a project to block new runs while in-flight runs finish, or cancel one run without touching the rest.
- Signed audit trails — export any run as HMAC-SHA256-signed JSON, with the verified execution path and the output recorded at each step.
- Evals — per-project test cases graded deterministically by the server against the verified path. The model never grades its own work.
- Usage analytics — live per-minute breakdowns by agent, project, skill and context, with graph-aware skip detection that separates a real skip from a branch legitimately not taken, and per-user attribution.
- Admin panel — platform KPIs, adoption funnel, per-user activity, community and system health.
Honest state
Early stage. Read this before deploying it anywhere that matters.
- SQLite, single node.
better-sqlite3in WAL mode, accessed synchronously from roughly 390 call sites. Postgres support is the main thing blocking larger deployments and is tracked in #5. - 42 tests, no framework. They cover the orchestrator's transition logic, skip analysis, eval grading, audit signing and the MCP gateway. There is no route-level test coverage yet — #3 and #6 are where that starts.
- Set
JWT_SECRETin production. Without it a random secret is generated and persisted to.jwt-secreton first run, which means sessions reset if that file is lost. - Set
AUDIT_SIGNING_KEY(or preserve.audit-secret) if you need audit exports to stay verifiable across redeploys. It is independent of auth. - The signed export covers the execution path, not the skill and agent text the run was given. That gap is real and being discussed openly in #11.
- The seeded example flows predate the mandatory Start node, so a fresh install needs
src/migrate-add-start.tsonce before the sample projects will run — #2.
Getting started
npm install
npm run build:flow
npm run dev # API and UI on http://localhost:3001
npm testThere is a live instance at https://204-216-144-224.sslip.io if you want to look before installing.
Contributions are welcome — see CONTRIBUTING.md. Eleven issues are open and scoped, four of them tagged good first issue.