Free forever · self-host every feature

Run your team's coding agents from anywhere — on machines you own.

Cordane runs your team's AI coding agents on the machines you already own — laptops, a VPS, boxes behind the firewall — and gives everyone one browser tab to launch, watch, and steer them all. From anywhere.

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

One board. Every agent, on your machines.

acme.cordane.app

Backlog 2

PROJ-71
Add CSV export to reports
PROJ-73
Rate-limit the webhook endpoint

In progress 2

PROJ-68
Refactor auth middleware
agent running · worktree ready · :5183
$ npm run build  →  ✓ preview live
PROJ-70
Fix flaky checkout test
agent running · :5193

In review 1

PROJ-65
Dark-mode toggle
+142 −18 · 6 files · preview ✓
The problem

Your agents belong on your machines. Reaching them shouldn’t be the hard part.

Run agents on your own hardware and your code and secrets stay yours — but getting to those machines from anywhere usually means SSH keys, a VPN, or opening ports you’d rather keep shut. Cordane gives your whole team one browser tab to their agents, wherever they run, without exposing a thing.

The usual trade-off

Convenient, or yours. Not both.

  • Someone else’s cloud is easy to reach — but your repo and secrets live on their computer.
  • Your own machine is safe — until you need it from the road: SSH keys, a VPN, ports left open.
  • Share access with a teammate and you’re handing out keys and poking holes in a firewall.
Cordane

Yours — and a tab away.

  • Agents run on machines you own — your code and secrets never leave them.
  • Reach them from any browser, anywhere — your whole team, one shared board.
  • Workers dial out, so nothing is exposed: no VPN, no open ports, no keys to pass around.
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

Not a desktop app. Not a vendor's cloud.

Most agent tools are desktop apps chained to one machine, or a vendor cloud your code has to live in. Cordane is a hub you open in any browser, driving workers on hardware you own — self-hosted, or hosted by us with your data still on your side.

  Desktop agent apps Cloud‑VM agents Cordane
You drive it from One desktop app Their web app Any browser, anywhere
Where agents & code run Your laptop only Vendor VMs Any machine you own
Self-host and managed cloud Local only Cloud only Same product, either way
Your data in cloud mode n/a On their servers Stays on your workers
Parallel tickets → worktree + previews Worktrees, no previews Varies Worktree, ports & live preview each
Team board, private machines Single-user Their seats 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. Public link or team-only, your call.

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.

How it runs

One hub, your workers. You choose where the hub lives.

Cordane is two pieces. The hub is the control plane you open in a browser tab — the board, the terminals, the app previews. The workers are the machines where agents, dev servers, and your code actually run. Workers dial out to the hub, so they can live anywhere. The only real choice is where the hub lives.

Self-host the hub

Run the hub yourself — on your laptop for solo work, or on a cheap VPS so your team shares one board that’s always up. It’s one Go binary (or a Docker container), and it gets its own HTTPS automatically.

  • Any Linux box with Docker — or the single static binary
  • ~1 vCPU, 512 MB–1 GB RAM, a few GB disk — a $4–5/mo VPS is plenty
  • A domain for automatic TLS — or just run it on localhost
  • Nothing to open: workers dial out, no inbound ports or VPN

Or let us host it — cordane.app

Skip the ops. We run the hub for you at your‑team.cordane.app — TLS, backups, and upgrades handled. You connect your own workers and start shipping. Your code, secrets, and compute never leave your workers — we host only the control plane.

  • Nothing to run for the hub — it’s up in seconds
  • Automatic HTTPS, backups, and zero‑downtime upgrades
  • Your workers stay on your machines — the data plane never touches us
  • 14‑day free trial, then $39/mo including 3 seats
connect a worker — identical for self-host or cloud
# install the worker from your hub, then join it
curl -fsSL https://your-hub/install.sh | sh
cordane worker join https://your-hub --token crdjt_…
# it dials out and appears on your board — no ports to open
Security & ownership

Your code never becomes our code.

The whole design keeps the sensitive parts on your side. Even when we host the hub for you, agents, source, and secrets run only on the workers you own — the data plane never touches our servers.

Data plane stays yours

Code, secrets, and compute live on your workers — in cloud mode too. We run only the control plane, so nothing of yours executes on our machines.

Workers dial out

Every worker opens one outbound connection to the hub — no inbound ports, no VPN, nothing exposed. Run agents behind a corporate firewall or on a home box.

Encrypted at rest

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

No lock-in, ever

Your data is a plain SQLite database you can export any time. Move between self-host and managed cloud in either direction — same product, same data.

Licensed offline

Your hub verifies its license offline with a signed token — no phone-home to keep running. Your instance works even when our servers don’t.

Auth on by default

App previews are authenticated out of the box and the board is team-scoped — teammates only ever see what’s theirs to see.

Pricing

Start free. Pay when you outgrow it.

Every tier is the same product with every feature — the paid ones just lift the limits. Self-host on machines you already own, or let us run the hub. Either way, your workers — your code, secrets, and compute — stay on your hardware.

Community

The whole product, self-hosted, for solo work and trying it properly — no license key, no expiry.

$0 free forever
  • Every feature — nothing is locked behind the paywall
  • 1 worker, 1 project, 2 users
  • Up to 3 concurrent agent runs
  • No license key to install — and no phone‑home
Start self-hosting

Self-host only · add a key later to lift the caps — same install, same data

Self-host

Run the hub and workers on your own machines — a laptop, a server, a $5 VPS. Unlimited everything.

$19 per user / month
  • Unlimited workers, projects & concurrency
  • You run the hub + workers — your hardware, your data
  • Shared team board, private per-member workers
  • Billed per user — add or remove seats anytime
Buy Self-host

Billed per user · add or remove seats anytime

Every tier runs the same build. Start on Community for free with no account at all, and add a key whenever you outgrow it — same install, same data. Prices are per month, VAT handled at checkout.

FAQ

Questions, answered.

What machines can run a worker?
Any Linux or macOS box you can run a binary on — a laptop, a spare desktop, a lab machine, or a cheap VPS. It’s a single Go binary (Docker optional). A worker is light: a $4–5/month VPS comfortably runs agents and dev servers. Point Cordane at as many machines as you like.
Which coding agents does it support?
Any CLI agent. Cordane runs your agent in a real terminal — Claude Code, Codex, Aider, or your own script — so you’re never locked to one model or vendor. Bring your own API keys; they stay on your workers.
Is there a free version?
Yes — the Community tier. Self-host it with no license key and it stays free forever, with every feature included: the board, agent runs, terminals, preview links, the lot. It’s capped at 1 worker, 1 project, 2 users, and 3 concurrent agent runs — enough for solo work or a proper trial. Adding a license key later lifts the caps on the same install, with the same data.
Self-host or managed cloud — how do I choose?
The only difference is who runs the hub (the browser control plane). Self-host it if you want everything on your own infrastructure, or pick managed cloud to skip the ops and let us run the hub at your-team.cordane.app. Either way your workers stay on your machines, and you can switch directions later.
Do you ever see my code?
No. Agents, source, and secrets run only on the workers you own — even in managed cloud, where we host just the control plane. The data plane never touches our servers.
What do I need to self-host the hub?
A Linux box with Docker (or the single static binary), roughly 1 vCPU and 512 MB–1 GB RAM, and a few GB of disk. Add a domain and Cordane gets its own HTTPS automatically — or just run it on localhost for solo work. Workers then join with one command.
Is there any lock-in?
None. Your data is a plain SQLite database you can export any time, the hub is licensed with an offline signed token (no phone-home to keep running), and you can move between self-host and managed cloud whenever you want.
Can I use it now?
Yes. Self-host it free right now — two containers, no license key, no signup: see the quickstart. If you’d rather not run the hub, the managed cloud starts with a 14-day trial and your workers still stay on your own machines.
Managed cloud waitlist

Bring your own machines.

Self-hosting is available right now and always free — start with the quickstart, no email required. This list is only for managed cloud: we run a finite fleet and would rather queue you than sell you a hub we can’t build well. We store your address only to tell you when a slot opens, and you can ask us to delete it any time.

No spam. No newsletter. One email when a slot opens.