Backends
Pick one under Settings → Advanced → Claude runtime → Backend. It applies to new sessions; existing ones keep the backend they started with.
A new session falls back to CLI automatically if the SDK adapter can’t be found and
claude can. The rest of this page describes the CLI backend’s spawn behavior unless noted; the SDK adapter takes no model or effort launch arguments and does not support in-session model changes.
Requirements
Either backend needs Claude Code installed and signed in. If it isn’t installed, Settings → Providers → Claude offers an installer that runsnpm install -g @anthropic-ai/claude-code in an embedded terminal.
Continuum reads Claude Code’s own OAuth credential from the macOS Keychain item Claude Code-credentials and imports the access token into its own Keychain entry, which the rate-limit gauge then polls. You never paste a key into Continuum for your default account on Mac.
Claude Code’s access tokens expire within hours, so the imported copy goes stale on its own. When a poll fails to authenticate, Continuum passively re-reads Claude Code’s Keychain entry and re-imports the CLI’s current token. “Passively” is load-bearing: the read is non-interactive, so a background poll can never pop a Keychain consent dialog. Continuum never performs a refresh grant — the rotating refresh token belongs to the CLI, and rotating it here would revoke the CLI’s copy and break your
claude login.Plan and Code
The composer’s permission pill is a two-state Plan ↔ Code control, and it means the same thing on every provider: Plan is read-only, Code is maximum permissions.
On the SDK backend the same two poles are enforced through the harness rather than a flag, and file-system capability is advertised to the adapter only for Code sessions.
Switching pole mid-session re-spawns the runtime with the new posture in the session’s current working directory. Sessions created before the two-state pill (which stored
ask or acceptEdits) resolve to Code, so an old session never reverts to prompting under a pill that reads “Code”.
The worktree mode (Local vs Worktree) is chosen when the session is created — a one-click Worktree / Local chip on the floating New Session box — not in the composer of a running session, which shows a read-only badge of the mode it started in. (⌥-clicking + skips the box entirely and quick-spawns on the repo’s resolved defaults.) Per-repo worktree defaults live in Settings → Workspaces. See Sessions.
Models
The bundled catalog ships Fable 5, Opus 5, Opus 4.8 (and its 1M-context variant), Opus 4.7 (and its 1M variant), Opus 4.6 (1M), Sonnet 5, Sonnet 4.6, and Haiku 4.5. Fable 5 is listed first and is the default a fresh session resolves to. Theopus and sonnet CLI aliases point at Opus 5 and Sonnet 5 respectively; the older rows stay selectable but alias-free so those aliases stay unambiguous.
Continuum stores the 1M-context variants as
…-1m but the CLI’s --model flag only accepts the bracket form (claude-opus-4-8[1m]). Continuum rewrites the id at the spawn boundary. This matters because the CLI rejects the -1m spelling silently — the turn simply never starts.Effort and Ultracode
The effort dial offerslow, medium, high, xhigh, and max, passed to the CLI backend as claude --effort <value>. The dial’s minimal rung is Codex-only; if a session carries it over from a provider swap it folds up to low, because the Claude CLI doesn’t expose it.
Above Max sits Ultracode — xhigh effort plus standing dynamic-workflow orchestration. It is not an --effort value (the CLI rejects --effort ultracode); Continuum enables it by spawning claude --settings '{"ultracode":true}' and omitting --effort, because an explicit --effort wins over the settings key and would silently defeat it. --settings merges, so your other settings survive. Ultracode is Claude-only, and it folds to xhigh for any other provider you switch a session to.
Haiku 4.5 reports no effort support, so the dial is hidden when it’s selected.
Session resume
On the CLI backend, Continuum reads the Claude session id from the JSONL header and resumes withclaude --resume <id>. A managed session stays pinned to its conversation: when you change model, effort, or pole mid-session, Continuum re-spawns claude --resume <id> so the chat history stays continuous.
Both backends write the same ~/.claude/projects/**/*.jsonl transcripts, and SDK sessions prefer that JSONL over the adapter’s own message stream when rendering assistant prose — the adapter re-emits the same text under a fresh id, which would otherwise render every reply twice about a second apart.
Multi-account subscriptions
You can run more than one Claude subscription side by side. Go to Settings → Providers, pick Claude, and choose Add account….- A secondary signs in with
claude setup-tokenin an embedded terminal. Continuum captures the printedsk-ant-oat01-…token from the terminal output and stores it in a per-account Keychain partition, so account A’s token is invisible to account B. A paste-token field covers CLI output drift.claude /loginis never used for secondaries, because Claude Code’s Keychain item is per-OS-user and a second/loginwould clobber your default account. - Each account gets its own config directory under
<Application Support>/Clawdmeter/Instances/claude/<name>/, applied at spawn time asCLAUDE_CONFIG_DIR. This is config-directory isolation, not a HOME swap —HOMEis left untouched so git, ssh, gh, and node keep working in worktrees. - The spawn environment scrubs inherited
CLAUDE_*/ANTHROPIC_*variables, then injects the per-account token after the scrub soCLAUDE_CODE_OAUTH_TOKENsurvives. Resolution is fail-closed: a session pinned to an account with no stored token refuses to spawn with a re-authenticate error rather than silently billing your default subscription. - Your default account’s spawn environment is byte-identical to single-account behavior, and is registry-seeded in memory rather than written to disk — a corrupt account store can’t take it away.
Rate-limit gauge
The Usage tab shows live rolling quota gauges for Claude. Continuum polls Claude’s own/api/oauth/usage endpoint — the non-generative one the CLI uses for its own rate-limit fetch — and reads utilization (0–100), the rate-limit type, and the reset time for both the 5-hour session window and the weekly window. No additional token or credential is needed on Mac.
Claude is the one provider with a third rail: Anthropic meters Fable separately from the all-models weekly cap, so Continuum renders a dedicated Fable meter beneath the weekly one — in the Usage card, in the menu-bar popover, and on iPhone. The row stays in place for Claude even before the upstream payload carries a Fable figure, showing an em-dash rather than vanishing and reappearing.
A soft-red weekly cap projection appears (in the chat composer footer on Mac and the cost banner on iPhone) when current usage plus the active session would push weekly utilization past 95%. Other providers don’t show this badge because Anthropic’s weekly cap doesn’t map to them.
Usage analytics
Token events are parsed from~/.claude/projects/**/*.jsonl. Each record is deduplicated by message id plus request id, matching ccusage. Newer Claude Code JSONL drops the request id, so Continuum folds an absent one to an empty qualifier — the same dedup outcome ccusage produces. Events are priced with the embedded pricing snapshot and rolled up by day and repo in the Usage tab.
When you add secondary accounts, their projects directories join the aggregate totals on the next refresh. Totals are aggregated across all accounts; there is no per-account breakdown yet.
ccusage daily is the parity benchmark. If Continuum’s numbers diverge from ccusage, ccusage is treated as the ground truth.
Slash-command skills
Typing/ in the composer opens a palette. For Claude sessions, Continuum walks two locations for skill definitions:
~/.claude/skills/<name>/SKILL.md— global skills<repo>/.claude/skills/<name>/SKILL.md— project-local skills
Auto-revive
Claude Code’s 5-hour OAuth session window can expire mid-work. Continuum surfaces an Auto-revive 5h timer toggle under Settings → Devices → Quota & sync, and a per-provider card on the Usage tab.The auto-revive mechanism ships disabled. Keeping the window warm meant posting a tiny throwaway model request, which created visible junk conversations and consumed quota. It stays off until a non-generative endpoint can do the job. The toggle is present for when that lands; today it is a no-op.
iPhone auth
On iPhone, the OAuth token mirrors from the Mac via iCloud Keychain — the phone reads the shared, iCloud-synced Keychain entry the Mac publishes. If iCloud Keychain sync is unavailable (for example a personal Apple Developer account without the paid entitlement), open iPhone Settings and paste a token manually as a fallback. The Watch first tries a token pushed from the iPhone over WCSession, then falls back to the same shared-Keychain entry.Broadcast
Claude can participate in the Chat surface’s multi-provider broadcast mode — one prompt to several providers, answers side by side.The Chat tab is hidden by default across every client while the product is focused on Code, so broadcast is not reachable from the default UI. See Chat.