p.enthalabs

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

Download

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

Start free trial

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

Talk to us

Sign in once per client. Then it just works.

Download for macOS

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.