Phantom · use cases
Every agent seat you already pay for, in one workbench.
Phantom drives the coding-agent CLIs and accounts you already use: Claude Code, Codex, Grok, Devin and local models. You sign in through each vendor's own tooling; Phantom keeps the chats, changes, checkpoints and usage readings in one place. Nothing here replaces the vendor CLI: each turn still spawns the real binary under the account you chose.
Your accounts, kept separate
One console. No shared session, no fixed roster.
Each seat is one account driven by its own CLI, pinned to a private profile so a turn never borrows another account's session or settings. Every claim below names the source it comes from.
A seat is an account plus its CLI
Each turn spawns one vendor CLI process (claude -p, codex exec, grok -p) in the project directory, streams normalized events and exits. The conversation is resumed by id, so its memory stays the vendor's own.
Profiles stay pinned per account
Phantom prepares a private profile directory per account and signs in through the vendor's own login, so two accounts at the same provider never share cookies, config or quota.
Source: docs/VERSE.md
No fixed seat cap
There is no plan tier limiting how many accounts you connect. Provider quotas and your hardware govern how much runs at once.
Source: docs/RESOURCE-POOLS.md
The console stays on loopback
phm verse binds to 127.0.0.1, prints a read token for the browser and asks for a separate mutation token before your first chat or other change.
Source: docs/QUICKSTART.md
Sandboxing matches the platform
Agent work is confined with sandbox-exec on macOS and bwrap or firejail on Linux; Windows uses per-account profile isolation and env-only isolation.
Source: docs/ARCHITECTURE.md
Usage readings keep their qualifiers
Account windows, resets and balances come from each provider's own report. Missing or unqualified evidence stays unknown rather than being guessed.
Source: docs/RESET-AWARE-SCHEDULING.md
The context meter reads the real window
Context windows and compaction points come from the pinned CLI binaries, each seat's own model catalog and the CLIs' reports at runtime, not a marketing table.
Source: docs/VERSE-CONTEXT.md
Devin is a separate seat with its own budget
The CLI seat defaults to Cognition SWE-2 High; cloud sessions are a separate ACU-capped path. The API key is asked for at a hidden prompt and stored in the macOS Keychain.
Source: docs/DEVIN.md, src/core/devin/types.ts
Defaults you can read in source
Lane budgets are constants, not promises.
Cloud and Devin defaults ship in the repository. They are settings you can change, not measurements of your usage.
| Lane | Default budget | Concurrency | Daily cap | Reserve |
|---|---|---|---|---|
| Claude cloud sessions | $250 credits total, ≈$3 per session | 4 at once | 20 sessions a day | $40 self-improve reserve |
| Devin cloud sessions | 50 ACU total, 10 ACU per session | 2 at once | 30 ACU and 10 sessions a day | 10 ACU reserve |
Sources: DEFAULT_CLOUD_BUDGET in src/core/cloud/types.ts, DEFAULT_DEVIN_BUDGET in src/core/devin/types.ts
Honest boundary: this page adds no signup, forms or tracking. Seats you do not configure stay absent, and an account whose usage cannot be read is ineligible for reset-aware autonomy rather than guessed.
Try it
Install, open the console, prepare one profile.
npm i -g @ashlr/phantom phm verse ashlr resources profile prepare --provider claude \ --directory ~/.ashlr/native-profiles/claude-a \ --executable /path/to/claude
Commands as documented: docs/QUICKSTART.md
Keep going