Beta 1 · cohort one is open · macOS on Apple silicon Request an invite →
root
control plane · live
Local control plane for coding agents

Put your coding agents to work, without giving up control.

Nodal supervises Claude Code and Codex across isolated worktrees and human-gated integration. Their work comes back as a branch you review before anything merges.

Request a beta invite → See how it works ↓
Signed and notarized · macOS, Apple silicon · Drives the CLI sessions you already pay for · Free, invite-only beta
split-lab — the Map 3 agents live · 2 waiting on you
The Nodal Map, mid-run
The Map · a real beta build, mid-run
isolation
01 · worktrees

Give every agent its own territory.

Agents never edit your working tree. Session agents work in Nodal-owned git worktrees, pipeline agents in a staged clone outside the repo, and their work reaches you as a branch and a pull request.

Move your cursor over the lanes
WorktreeClonePR
durability
02 · survives crash

Watch, intervene, and recover.

Transcripts, approvals, run records, staged transfers, and committed work are durable across reconnects, worker restarts, crashes, and project reopens. A crash ends the live agent process, and Nodal tells you exactly what stopped rather than pretending otherwise.

ONE RUN, THROUGH A CRASH CRASH LIVE AGENT PROCESS TRANSCRIPTS APPROVALS RUN RECORDS STAGED TRANSFERS COMMITTED WORK RESUME
roundtable
03 · 2 models · you rule

Stop copy-pasting one model's answer into another.

Put Claude Code and Codex in the same room. Nodal runs structured positions, critiques, revisions, and comparison, then shows accepted points, unresolved disagreements, and evidence linked to the exact frozen context each model received.

Multiple models review the work. You make the call.

Roundtable · auth/session-refresh
Claudeposition

Refresh the token on every request where expiry < 60s. Simple, and it never serves a stale session.

Codexcritique

That fires a refresh per in-flight request. Under concurrency you get a token stampede and the last write wins. Refresh once behind a lock.

Clauderevision

Conceded. Single-flight refresh behind a mutex, everyone else awaits the same promise.

Your ruling Take the lock. Ship it.
beta build
4 screens · live

From the beta build.

Four surfaces, live · drag to rearrange
sessions Resume · 2h ago
Friday · 8:11 pm
Good evening.
Where to next?
Resume2h ago · opus-5
Verify passed in its own checkout
Ended · 30 paths in territory
Resume
Start fresh
add a retry to the wal writer
runs Recovered · 1
Live Past Worktrees stay on disk
Recovered after a crash · 1 Quarantined
RunLeadElapsed
Completed opus-5 1:55:16
Write the sstable test suite sonnet-4-6 29:57
Query + downsampling layer sonnet-4-6 15:39
Retry on wal fsync opus-5 live
session_ccb887 Lead · ended
Claude codelead18:34:21
The crash matrix discriminates, and I proved it before claiming green. Ten kill points via real SIGKILL.
Two bugs I found in my own code during review, both fixed with regression tests.
One correction to my earlier flag: the segfault didn't affect verification. It was local sandbox breakage, not a problem with the suite.
Agent exited Session ended
cost Aug · $69.40
Billing period · Aug 1–31 · resets in 3 days
Spent · August
$69.40
+ 19 subscription-billed calls — tokens only
No budget set
Tracking only — nothing is enforced.
Set budget…
ModelShare%Spend
Opus 5 89% $61.67
Sonnet 4.6 11% $7.73
the gate
04 · human only

Nothing permanent happens by implication.

Merging is a human action that no autonomy setting can grant. Context sharing, spend and destructive calls pass through explicit gates, and approval is bound to the exact action and material you reviewed.

Requests · one audit surface
merge · auth/session-refresh Yours alone
share frozen context → codex Approved
raise operator spend ceiling Waiting
destructive call · drop table Denied
surfaces
12 nodes

Twelve places you actually work.

01

Sessions

Resume managed work or start from a goal.

02

Requests

Rule on every gated action from one audit surface.

03

Runs

Every run, live and past.

04

Roundtable

Structured cross-model critique with frozen context.

05

Operator

Delegate an autonomous run with visible limits and controls.

06

Plan

Plans as objects, on an editable canvas.

07

Map

Agents, branches, dependencies, locks, and contention.

08

Schedule

Recurring runs and the windows they run in.

09

Cost

Spend per project and per run against a monthly budget.

10

Learning

What Nodal keeps from finished runs.

11

Design

A separate mode for design projects.

12

Customize

Roles, integrations, settings, and policy.

trust
hash-chained

Safety claims should survive contact with the implementation.

Every agent session runs inside a default-deny macOS seatbelt fence. Writes reach two directories: the session’s own checkout, and a staging dir outside the repository. Reads start closed, so your home directory, your credential files, and git’s own administration are none of them openable by the process. Nodal keeps its state on your machine and records activity in a hash-chained event log whose head is stamped into the git commits it writes, so the history can be checked by something other than Nodal.

01

Default-deny agent fence

02

Tamper-evident audit chain

03

Enforced operator ceilings

04

Unarmable merge gate

not claimed
4 limits
Stated plainly

The fence covers the filesystem, not the network. The model CLIs reach it under your provider accounts, exactly as they do when you run them yourself.

The monthly budget tracks spend and warns. It does not block it; the enforced ceilings are the operator's.

Old audit entries age out under a retention window.

API-key mode stores your Anthropic key on your machine, encrypted by the macOS keychain, and it goes nowhere except Anthropic.

category
not an agent

Nodal is not another coding agent.

Claude Code and Codex produce work. Nodal coordinates, isolates, supervises, reviews, recovers, and integrates that work.

Performs a task → Coordinates agents and tasks
Operates in a session → Preserves durable run state
Produces changes → Isolates and gates integration
Reports its own output → Enables cross-model critique
Uses provider access → Supervises access you already own
agents
2 supported

Bring the agent you already pay for.

Nodal drives the CLI sessions installed on your machine, under your provider accounts. No keys to hand over, no inference resold.

Claude Code
Supported
Codex
Supported
Supported means driven end to end in beta 1
faq
tap to open

Fair questions.

Which agents does Nodal drive? +

Claude Code and Codex, through the CLI sessions you already have. Runs bill the subscription you already pay for; Nodal does not resell inference.

Can an agent merge on its own? +

No. An agent can open a pull request; merging is a human action that no autonomy setting can grant.

Does my code leave my machine? +

Nodal keeps its state on your machine. The model CLIs reach the network under your provider accounts, exactly as they do when you run them yourself.

What does the beta cost? +

Beta 1 is free and invite-only, built for macOS on Apple silicon. The first cohort is limited to 20 to 50 developers.

beta
cohort 1 · open

Small, on purpose.

Beta 1 is free, invite-only, and built for macOS on Apple silicon. It supports Claude Code and Codex through their existing CLI sessions. The first cohort is limited to 20 to 50 developers.

Request a beta invite→
Platform
macOS, Apple silicon
Price
Free, invite-only
Your code
State stays local
Cohort 120 — 50 seats
Solid squares are the floor of the cohort · 20 of 50

Get the beta notes.

Cohort openings, release notes, and what changed in the build. Nothing else.

Or reach us directly nodal@whenlabs.org @trynodal

A local control plane for coding agents. Built by WhenLabs.

Product
Beta 1
Contact
A WhenLabs project · © 2026 Signed and notarized · macOS, Apple silicon