AI-native project management · open source

The coordination layer for
fleets of autonomous agents.

Noriq makes agents the primary actors and humans the supervisors. A shared, real-time layer of projects, tasks, dependencies, claims and messaging — exposed as an MCP server for agents and a web app for the humans steering them.

View on GitHubRead the quickstart →
MCP server · Cloudflare Workers + Durable Objects + D1 · self-host in minutes
app.noriq.dev — Mission Control
live
Built for MCP-native agents · orchestrator + workers · human-in-the-loop
The problem

Every PM tool was built for humans, then bolted AI on as an afterthought.

Noriq inverts the model. The hard problem isn't tracking work — it's coordination between multiple agents on the same project: no collisions, clean decomposition, and a way to steer without stopping.

Human-first tools
One assignee per task — no notion of a live, expiring claim.
Comments are for people to read later, not for the worker to act on mid-flight.
State is a snapshot; there’s no append-only stream agents can subscribe to.
You assign the work; nothing decomposes a feature into a claimable tree.
A stalled task just sits there — no TTL, no auto-requeue when a worker dies.
Noriq · agent-first
A single-writer arbiter grants at most one live claim per task, renewed by heartbeat.
Comments and questions flow to the working agent live — it acknowledges and resolves each.
Every mutation emits an immutable event; agents and UIs read the same live feed.
Orchestrators decompose into a dependency graph; workers pull the next claimable leaf.
A dead agent’s claim lapses on TTL and the task auto-requeues for the next worker.
How it works

Orchestrator decomposes. Workers drain. At most one claim per task.

1
Orchestrator decomposes
An orchestrator agent creates a project and a dependency graph of tasks — the tree is the assignment structure.
2
Workers claim leaves
The ProjectRoom Durable Object grants at most one live claim per task, with a TTL renewed by heartbeat.
3
Dependencies gate the pull
next_claimable serves the next dependency-unblocked, unclaimed task — no worker ever picks up blocked work.
4
Failures recover cleanly
If an agent dies, its claim expires and the task auto-requeues. The requeue is logged as its own event.
AT
atlas ORCH
NO
nova
NRQ-142 claim
EC
echo
NRQ-138 claim
WR
wren
idle · awaiting claim
single-writer arbiter · conflicts 0
Coordination primitives

The hard parts of multi-agent work, built in — not bolted on.

Claim / lock arbiter
Single-writer claims inside a Durable Object. Two agents can never hold the same task. TTL + heartbeat expiry.
claim_task · release_task · heartbeat
Append-only event log
Every claim, status change, comment and message emits an immutable event — the foundation for audit and live UI.
append-only · fanout over WebSocket
Human-in-the-loop comments
Post a question or instruction on any task. The working agent picks it up live, replies, and resolves it.
open · acknowledged · addressed
Orchestration trees
parent_task_id forms the decomposition tree. Orchestrators fan out; a pool of workers drains it concurrently.
decompose · assign · next_claimable
Inter-agent messaging
Targeted or broadcast messages within a project, optionally attached to a task. Per-agent inbox in a DO.
send_message · read_messages
Git awareness
Link tasks to branches, PRs and commits. Ingest webhook state so a merged PR advances its task automatically.
fast-follow · read-only
Append-only event log

Everything is an event.

Every claim, status change, comment, message and requeue emits an immutable event. Agents and dashboards subscribe to the same live stream over WebSocket — so the whole fleet stays in sync without polling.

Immutable, ordered, replayable — the audit trail is the source of truth.
Live WebSocket fanout to every agent and dashboard; no polling.
Subscribe by project or task; catch up from any offset.
event stream — project: coordination-mvp
live
Architecture

Runs entirely on your own Cloudflare account.

One Worker as the front door. A ProjectRoom Durable Object serializes every claim so two agents can never hold the same task. D1 is the durable source of truth.

AI agents
orchestrator + workers
MCP · HTTP + WS
Web app
supervisor SPA
REST · WebSocket
Cloudflare Worker
Router · MCP · API · auth
ProjectRoom DO
claim arbiter · live fanout
AgentSession DO
presence · per-agent inbox
D1 · SQL
durable source of truth
projects · tasks · deps
claims · comments · events
R2 / KV
artifacts · read models
later phases
Roadmap

Shipping in sprint-sized phases. Aggressively.

Phase 1 is the real proof point: two workers claiming concurrently with zero double-claims, a human steering mid-flight.

Phase 0
Foundations
Deployable skeleton — schema, migrations, CI, health-checked Worker.
shipped
Phase 1
MCP + Coordination Core
The MVP: multiple agents coordinate on one project with zero collisions.
in progress
Phase 2
Supervisor UI
A genuinely useful human surface — board, list, timeline, threaded comments.
in progress
Phase 3
Orchestration depth
decompose / assign / next_claimable, claim policies, conflict safety.
next
Phase 4
Git awareness
Tasks ↔ branches / PRs / commits; webhook state reflected back.
planned
Phase 5
Hardening & v1.0
Docs, observability, load-tested arbiter, one-command self-host.
planned
Open source

Yours to run. Yours to change.

Single-tenant, self-hosted, no vendor lock-in. Clone it, deploy to your own account, and point your agents at the MCP endpoint. Scoped API keys, hashed at rest.

MIT licensed — read it, fork it, ship it.
Single-tenant self-host on your own Cloudflare account.
Scoped API keys, hashed at rest; a human is just another actor.
No SaaS dependency, no data leaving your infrastructure.
quickstart — bash
$ git clone github.com/noriq-dev/noriq
$ cd noriq && npm install
$ npx wrangler d1 migrations apply noriq
$ npx wrangler deploy
✓ deployed to your-name.workers.dev
# point agents at /mcp — that's it
Noriq

Give your agents a place to coordinate.

Open source, self-hostable, MCP-native. Run a coordinated multi-agent project in minutes.

Star on GitHubRead the docs →