Leadcode — One laptop. Many clients. Nothing mixed.
For developers who work for more than one company
Each client gets a workspace signed in to their own GitHub, Claude, and API accounts — and your personal projects stay yours. Open a project: the right accounts are already there.
Lead>code — Dashboard
Personas Personal Northwind Acme Co✓ secrets in Keychain · never in repos
Storefront Redesign running
personal~/dev/storefront
❯claude · refactoring checkout
claude → Personal
Billing API needs input
northwind~/work/nw-billing
❯claude · awaiting migration approval
claude → Northwind
Infra Review running
acme co~/work/acme-infra
❯claude · reviewing PR #214
claude + gh → Acme Co
Activity Northwind · Billing API — Rebuild 3 tables in staging?3 live
Three clients, three separate sets of accounts — all signed in, all running, none mixed.
Fails closed·Keychain-backed secrets·No ambient credentials·Real CLIs on a PTY·Config home per account·Sessions survive focus·104 tests·No cloud service·
Account soup
The ritual
The mistake
//01 The problem
Three employers. One laptop. Nine credentials.
this laptop
claude · you@gmail claude · you@northwind claude · acme-dev gh · you-personal gh · acme-bot sk-ant-…a41 sk-ant-…nw7 sk-ant-…x93 sk-ant-…p08 sk-ant-…k22 gemini · …g3
❯claude
signed in as… which of the three? no label anywhere.
Every project change is a login ritual.
switching to the bank project…
❯claude /logout
❯claude /login— pick the right account, again
❯export ANTHROPIC_API_KEY=sk-ant-…nw7
❯gh auth switch --user you-northwind
❯cd ~/work/nw-billing && claude
five minutes gone — focus went with it
Until the wrong account does the work.
one month later
✗ side project billed to Northwind — sk-ant-…nw41
✗ personal repo — commits authored as acme-bot
nobody noticed for a month
scroll ↓
//02 The fix persona → router → session
One workspace per client, wired to their accounts.
01 One persona per client
Personal accounts/acc_personal/
Northwind accounts/acc_northwind/
Acme Co accounts/acc_acme/
Sign in once per account. Each gets its own config home — CLAUDE_CONFIG_DIR, GH_CONFIG_DIR — so client work never touches your personal ~/.claude.
02 The router fails closed
Ambient credentials scrubbed
ANTHROPIC_API_KEY CLAUDE_CODE_OAUTH_TOKEN GH_TOKEN GITHUB_TOKEN
Declared binding injected
CLAUDE_CONFIG_DIR →
accounts/acc_northwind/claude-code
no binding → no launch. Never a fallback to your shell.
03 Sessions outlive attention
Personal · storefront pid 4101
Northwind · nw-billing pid 4102
Acme Co · acme-infra pid 4108
Navigate anywhere — nothing tears down. Questions from every workspace land in one inbox; answer inline, only that session advances.
//03 The terminal
The CLI you're already familiar with.
A real PTY running the provider's own claude or codex — identity-injected, ambient-scrubbed, fail-closed. Every feature they ship works on day zero.
slash commands plan mode image paste rewind MCP
claude · Northwind · ~/work/nw-billing pid 4102
CLAUDE_CONFIG_DIR=accounts/acc_northwind/claude-code
ANTHROPIC_API_KEY scrubbed · GH_TOKEN scrubbed
❯claude
Claude Code · signed in as Northwind
⚙ Read src/billing/migrate.ts
⚙ Grep "rebuildTables"
The migration drops and rebuilds 3 tables.
Run it against staging first?
❯yes, staging only
identity injected by the Provider Router · keystrokes go straight to the PTY
//04 Cloud identities
The agent cannot deploy to the wrong client.
Bind a cloud account to a workspace and every session, every embedded terminal and every shell you open by hand is already that identity. No gcloud config configurations activate, no firebase login:use, no exported AWS_PROFILE to forget. Switching clients is opening a different window.
This is the part that stops being about convenience. An agent running terraform apply against the wrong project is not an inconvenience, it is an incident. Leadcode makes the identity structural rather than something you remembered to set.
gcloud Its own CLOUDSDK_CONFIG. Separate projects, separate ADC, no global activate.
firebase Its own config home. The binding is what firebase login:list reports — never your global default.
aws Its own AWS_CONFIG_FILE and credentials file. IAM Identity Center or a static key pair.
gh Its own GH_CONFIG_DIR. Two GitHub accounts signed in at once, no auth switch.
Verified against gcloud 554.0.0 · firebase-tools 15.22.4 · aws-cli 2.27.48
//05 Runtime specification v0.6 · beta
Small, local, auditable.
Footprint
8 MB binary · 80 MB idle — native WebView, not Electron's ~150 MB
Secrets
macOS Keychain only — never on disk, never in repos, byte-level leak audit built in
Router
Fail-closed — scrubs ambient credentials, injects the declared binding, refuses over guessing
Isolation
Config home per account + scrubbed env — process isolation, not containers; sandbox boundary is next · the full architecture →
Sessions
Real CLIs on a PTY — survive focus changes, stay interactive between turns
Providers
Agents: Claude Code · OpenAI Codex
Identities: GitHub · Google Cloud · Firebase · AWS — Antigravity in simulated demo
Storage
SQLite on disk, in Application Support — no cloud service, nothing to keep online
Verification
104 tests on the promises — 49 against the runtime, 55 against the real UI
Platform
macOS 13+ · Apple Silicon and Intel — Linux and Windows planned
//06 Pricing we never see a token
Priced per human, not per token.
Every new account gets 14 days of full Pro — no card, it starts at your first sign-in. When it ends nothing is deleted; you go back to one live account per provider.
Solo
Free
Starts as full Pro for 14 days. After that, one live account per provider — everything else stays the full app.
✓14 days of full Pro to start
✓Unlimited workspaces
✓Terminal sessions + Activity Center
✓Secret-leak audit
The product
Pro
$12/ month
Unlimited accounts per provider — the reason Leadcode exists.
✓Unlimited accounts per provider
✓Every client signed in at once
✓Parallel sessions across accounts
14 days · starts at first sign-in · no card
Team
$20/ seat / month
For agencies and contractors who answer to more than one company.
✓Everything in Pro
✓Shared persona + binding templates
Sign in once per client. Then it just works.
macOS 13+ · setup in about a minute · sign-in starts your 14-day Pro trial
On Linux or Windows? We will write once, when it runs on yours.