Nexus Pilot · open source · for Claude Code and Grok Build
Let your agents work in the dark. Bring their work to light.
Nexus gives each of your AI coding agents a home on your dev VM: its own long-lived container.
Install on a dev VM
curl -fsSL https://nexus.light-and-dark.io/install.sh | bashgithub.com/h3x00r/agent- claude-cli-1
- claude-cli-2
- grok-cli-1
Each name is a persona: an agent with its own login, git author and token.
Where it fits
From one loop to a factory
Three ideas, and where Nexus fits.
start here
Loop
One agent, one task: it reads, acts, checks, and goes again until done.
- You:
nexus claude-cli-1 -- claude— hand it a task - read
- act
- check
claude-cli-1one task
- You: Ctrl-b d to detach — later,
nexus claude-cli-1
read → act → check → again
A session: one project open in a persona. Or a headless run: one prompt, then it stops.
- You:
wall it in
Harness
What fences a loop in: where it runs, what it touches, what it keeps, when it asks.
claude-cli-1persona
- session: billing
- session: api
- sandbox its own container, on the VM
- tools the VM's Docker and your project stacks; ssh-agent: only its socket goes in
- memory home: login, memory, history
- gates ask first, or bypass
four walls around the loops
A persona: its container sets what it can reach, its home keeps what it learns, a setting says if it asks.
many at once
Factory
Many fenced loops at once, draining through one gate.
You: the outer loop
Work in
dev VM 1
- claude-cli-1 · dark
- claude-cli-2 · light
dev VM 2
- grok-cli-1 · dark
your reviewgate
ship
many harnesses, one gate
Many personas on many VMs. You own the loop around them: what gets built, whether the approach is right, what ships.
Inside out: sessions in personas, personas on VMs.
Light and dark
Light and dark, in balance
Not all on or all off: each loop gets its own switch.
Light
Humans in the loop
A Claude persona waits for your yes before it acts. Keep the lights on where a wrong call is expensive: auth, billing, a public API.
Per persona, then restart
nexus --config --permissions claude-cli-2:askPer session
nexus claude-cli-2 --skip-bypass-permissions review -- claudeDark
Agents on their own
Every persona starts dark: it acts on its own. Leave a loop dark only where its check is cheap and hard to fake: tests that go green or red, a type check.
Default
Claude: bypassPermissions · grok: always-approveHeadless
nexus grok-cli-1 headless "list the TODOs" --output-format jsonWriting code is cheap; checking it is the hard part. Light and dark fit one VM, even one project. Agent Telemetry, below, shows what ran unseen.
Why Nexus
A better place for agents to work
Agents do real work well. Where they run is the weak spot.
Always on, even when you're not
Close the laptop or lose wifi: the agent keeps working. Resume from any terminal.
instead of:
tied to a terminalOne command, any project
In any project,
nexusand a persona put you in that project's session.instead of:
hunting for the right windowAs many personas as you need
Several side by side: a team plan beside your own, Claude beside grok.
instead of:
one identity for everythingYour real stack, not your keys
The agent drives your project's own containers:
docker composeandddevjust work. Your ssh keys stay out.instead of:
a bare sandbox or your machineEvery VM alike, upgrades on your terms
Shared settings in one repo keep every VM matching. Pinned versions, one-command upgrades.
instead of:
every VM driftingThe whole picture, live
nexus top: CPU and memory per persona, plus each Claude Code session's model, context, plan limits and cost.instead of:
guessing what runs
APM
Lean personas, projects that bring their half
Every persona ships with APM, the Agent Package Manager.
A persona in minutes
A few answers in
nexus --configand a new persona is ready, tied to no project.Skills come with the project
A project carries its half of the harness: skills, prompts, agents, MCP servers.
apm installhands them to any persona.The project is the safety net
Shared knowledge lives in the project:
CLAUDE.mdor.claude/for Claude Code,.grok/for grok. Keep what catches mistakes there too: clear boundaries, types, tests.
- skills
- prompts
- agents
- MCP servers
CLAUDE.md.claude/.grok/
In a project, inside any persona
apm install- claude-cli-1
- claude-cli-2
- grok-cli-1
Uses
A few ways to use it
Real commands, ready to copy.
Review a diff before you commit
Pipe the diff into a headless run; the review prints in your terminal.
git diff | nexus claude-cli-2 headless "review this diff"A task file in, JSON out
A task from a file, only the tools it needs, JSON back for a pipeline.
nexus claude-cli-2 headless "$(cat task.md)" --output-format json --allowedTools "Edit,Bash(ddev *)"A second opinion from grok
Open grok on the same project and ask it to review the last commit Claude wrote.
nexus grok-cli-1 -- grokSet up a VM by script
Once Nexus is installed: settings, personas, launcher and images in one go.
nexus --config --yes --persona claude-cli-2:claude:docker
The companion
Agent Telemetry · h3x00r/agent-telemetry
Every session, on the record
Metrics, logs and traces from every agent on every VM, in one place.
Off until you give nexus --config the server's address, token and CA.
A work log per session
Each prompt and tool call; for Claude Code, also shell commands, edits and workflow runs.
Who worked when, at what cost
One timeline row per persona; cost and tokens per VM, user and model.
Yours, private by default
It runs on your server. Prompt text, commands and file contents stay out until you turn them on.