Novus

07.2026 — present

multiplayer control plane for coding agents

TypeScriptElectronFastifyPostgreSQLpnpm workspacesClaude Code
Notes

Coding agents are built for one person at a time. The moment a team needs two people responsible for the same run, the tooling has nothing to say. Novus is the room that was missing.

A team connects a repository, sets a goal and success criteria, picks a harness, and then works around the run together. Everyone sees the same state. Anyone with the right role can add context or submit direction. Control can be requested, offered, and handed off mid-run.

What it refuses to do

Novus does not try to be smarter than the agent it runs. Claude Code owns the reasoning, the context, the models, and the tools. Novus owns everything around that: identity, missions, participants, control, evidence, review, and history. Keeping that boundary sharp is what stops the project from becoming a worse version of the thing it wraps.

Concurrency is the real problem

Everything hard follows from letting more than one agent write at once. Each workstream gets its own Git worktree, so parallel writers never see each other's half-finished state. Direction queues instead of interrupting, so two people steering the same agent produce a sequence rather than a race.

Control is a durable lease, not a boolean. That distinction matters more than it sounds. A crashed client holding a flag deadlocks the room forever. A crashed client holding a lease just stops renewing it.

Control passing between two participants mid-mission. The second person's direction queues until the next safe point rather than interrupting the run.
Control passing between two participants mid-mission. The second person's direction queues until the next safe point rather than interrupting the run.

Supervised autonomy

An agent with write access and a team watching needs a real permission model. Novus has five permission profiles, role-based capabilities, approval routing for anything outside them, force-interrupt recovery when a run goes wrong, secret isolation so credentials never enter agent context, and governed project skills and MCP servers.

Finishing the work

A run that produces a diff and stops is not done. The lifecycle carries a workstream from execution through Git checkpoints, verification evidence, branch comparison, pull request, review, and merge. It ends in a snapshotted receipt recording what was verified and by whom.

The verification ledger. Every check records which runner proved it, against which checkpoint, with its exit code.
The verification ledger. Every check records which runner proved it, against which checkpoint, with its exit code.

Where it actually is

Claude Code runs today. Codex and other harnesses follow the same runner protocol but are not built yet. The repository is a pnpm monorepo with a control plane, a desktop app, and a shared contracts package.

← index