Private beta · accepting testers now

Run AI coding agents on machines you own.

Cordane runs AI dev agents on machines you own. Point it at any computer you have — a laptop, a VPS, a lab box behind a corporate firewall — and it runs agents, dev servers, and terminals right there. Then it hands you one browser tab to conduct them all.

One Go binary No inbound ports No VPN, no SSH config Your hardware, your data
control plane · live · workers dial out, nothing dials in
The problem

Your agents shouldn’t run on someone else’s computer.

Cloud agents want your repository, your secrets, and your trust — uploaded to infrastructure you don’t control. Cordane inverts that. The agent runs next to your code, on the box you already use, with the environment you already trust.

Cloud coding agents

Your code takes a trip.

  • Your repo and secrets are copied onto a vendor’s runners.
  • Their logs, their outages, their idea of a “sandbox.”
  • Whatever local toolchain, service, or GPU you have is gone.
Cordane

The agent comes to the code.

  • Agents run on machines you own, in the checkout you already have.
  • Your filesystem, your env vars, your network, your services.
  • The control plane only relays — nothing leaves unless you push it.
The connection

The worker dials out. Nothing dials in.

Each worker opens a single outbound WebSocket to the hub and keeps it open — that’s the entire network setup. Machines behind NAT, a corporate proxy, or a home router just work, because nothing ever connects to them. One connection carries the control channel, every terminal stream, and every proxied app.

No inbound ports No VPN No SSH config
The lifecycle

A ticket becomes a worktree, an agent, and a review — automatically.

Drop a card on the board and Cordane provisions the whole thing: a fresh git worktree branched from main, its own ports, a workspace of terminals, and an agent that plans, then implements. You get a diff and a check badge at the end — not a mystery commit.

PROJ-42 Add rate limiting to the login endpoint backlog

It starts as a card.

A ticket is just a title and a description on a shared kanban board. Nothing is provisioned yet — no branch, no machine, no cost. Move it right, or drop it into a queue, when you’re ready.

board · shared with your team workers · private to each member
board
backlog ┌───────────────────────────┐ │ PROJ-42 Add rate limiting │ │ to the login endpoint │ └───────────────────────────┘ waiting to start…

Start work → it provisions everything.

Cordane cuts a git worktree from the latest main, reserves a unique block of ports, opens a workspace of terminals, and pastes a plan prompt into the agent pane. The agent writes an implementation plan back to the ticket.

branch · proj-42-rate-limit worktree · fresh from main ports · 5173, 5174 reserved
agent · plan
worktree ready · branch proj-42-rate-limit setup hooks passed claude planning… 1. add a per-IP token bucket 2. 429 + Retry-After on limit 3. cover with a table test

Then it writes the code.

Approve the plan and the agent implements it in the worktree — running your project’s real toolchain — and commits on the ticket branch. Give it commands only when you opt in, per project. Sandbox the run in Docker if you want it walled off from the host.

commits · on the ticket branch sandbox · optional Docker image
agent · implement
edit middleware/ratelimit.go +64 edit middleware/ratelimit_test.go +38 run go test ./... ok all tests passed commit proj-42: rate-limit login

You review a diff, not a mystery.

The card lands in review with a Changes tab: the commit log, a unified diff, and a check-hook badge. A behind-main indicator shows drift and which files overlap your other open tickets, so nothing surprises you at merge time.

check hooks · passed behind main · 0 commits
changes · PROJ-42
diff middleware/ratelimit.go + if !bucket.Allow(ip) { + w.Header().Set("Retry-After", "60") + http.Error(w, "slow down", 429) + } ● checks passed · 2 commits

Merge, push, or move on.

When it’s done, Cordane can push the branch and open a PR in the background. Stop keeps the worktree so you can resume; Cleanup tears it all down and returns the ports. The next ticket reuses a warm cache and starts in seconds.

push + PR · background, non-blocking cleanup · ports returned, cache kept
done
pushed proj-42-rate-limit opened PR #128 ports released · cache kept ● done
Parallelism

Run multiple tickets at once. They never collide.

Each ticket gets its own git worktree and its own block of ports, reserved on the worker and held until you tear it down. Two agents can rebuild the same repo on the same machine at the same time — different branches, different databases, different dev servers — and nothing steps on anything.

PROJ-42:5173
PROJ-51:5183
PROJ-63:5193
Why Cordane

The orchestration layer the other options skip.

Plenty of tools run one agent. Cordane runs a fleet of them, on your machines, through a real ticket lifecycle — and gives a team one place to watch it happen.

  Cloud agents DIY (SSH + tmux) Cordane
Where your code runs Vendor cloud Your box Any machine you own
Network setup n/a Ports, keys, VPN Outbound dial, zero config
Parallel, isolated tickets Limited By hand, collisions Worktree + ports per ticket
Plan → implement → review Varies You wire it Built-in lifecycle + diff
Live dev-server previews Sometimes Tunnels yourself Reverse proxy, isolated subdomains
Team board, private machines Their seats No Shared board, private workers
Everything else

Built for the messy reality of real projects.

A worktree per ticket

Starting a ticket cuts a fresh git worktree on its own branch from the latest main and reserves its own block of ports — so parallel tickets build, run, and serve side by side without ever colliding.

Your setup, your layout

Give each project its own setup and start scripts — install deps, run migrations, boot the dev server — plus a saved terminal layout, so every ticket (and every teammate) opens the same ready-to-work workspace.

Teams & private workers

Projects are shared across a team; every member runs them on their own machines. One board, many hands — nobody borrows anyone’s laptop.

Live app previews

Reach the dev server an agent just started through the built-in reverse proxy — each app on its own isolated subdomain, WebSockets and all, auth on by default.

Encrypted env at rest

App and profile secrets are AES-256-GCM encrypted in the database, keyed by a secret you hold — not stored in plaintext next to your data.

Live board over SSE

Card moves, agent status, and terminal events stream to every teammate’s board in real time — team-scoped, so you only see what’s yours to see.

Private beta

Bring your own machines.

Cordane isn’t for sale yet — it’s in private beta. If you run AI agents and want them on your own hardware, leave your email and we’ll send you an invite. We store your address only to send that invite, and you can ask us to delete it any time.

No spam. No newsletter. One invite when your slot opens.