Skip to content
OreoDeck Docs

A companion for Claude Code · Free · Open source · macOS 15+

Many Claude profiles.
One Companion Deck.

Keep Claude Code accounts isolated, select the right profile per tab or project, watch usage, and move sessions when needed — without giving up privacy.

View releases

No Bun, Rust, or Xcode needed for a release install.

curl -fsSL https://raw.githubusercontent.com/OreoSolutions/oreodeck/main/install.sh | bash

One correct profile, everywhere

Profile resolution without guesswork.

OreoDeck uses a clear precedence order. You can still override one invocation, while everyday commands always pick the right context.

  1. 1

    Explicit

    ord run -P personal always wins.

  2. 2

    Project

    .oreodeck/config.json pins a profile to the project.

  3. 3

    Terminal tab

    ord use --tab work affects only the current tab.

  4. 4

    Global default

    ord use work is the clear fallback.

With shell integration enabled, a regular `claude` command uses the resolved profile too.

Designed for how you actually use Claude.

A calmer workflow across accounts, terminals, gateways, and projects.

Actually isolated

Each account has its own `CLAUDE_CONFIG_DIR`: credentials, sessions, and settings never mix.

Live usage, clear state

See the Claude quota windows available to an account, their reset times, and whether it needs re-authentication.

Sessions when needed

Find sessions for the current project, then import and resume one from global Claude or another profile.

Gateways, your way

Connect an Anthropic-compatible HTTPS gateway, check its models before use, and keep its API key in macOS Keychain.

Optional model mapping

Map provider IDs for Opus, Sonnet, Haiku, or Fable. Leave a mapping empty to keep Claude’s default model ID.

Share selectively

Share only MCP, skills, plugins, and a status line—not OAuth, API keys, or your full settings.

Controlled failover

Set a fallback order; headless runs can retry when a profile hits its usage limit.

CLI first, app when useful

Use `ord` in a terminal or install the native dashboard/menu-bar app later with `ord ui install`.

No usage guesswork

Live usage for the Claude profile you selected.

OreoDeck reads direct usage for the selected profile when Claude Code has a valid OAuth credential with the `user:profile` scope. Refresh it manually or set an interval; the token is never shown, copied, or placed in the UI.

Gateway telemetry stays separate

Gateway profiles show local token/cost telemetry and only show models after you explicitly Check connection. That is not Claude subscription billing.

work

Live Claude usage

● Live
Connected
5-hour13% used

Resets in 2h 2m

Weekly97% used

Resets in 15h 2m

Fable weekly49% used

Resets in 15h 2m

Usage credits0% used

Resets in —

Claude decides which quota buckets are available to each account.

Frequently asked questions

Do I need Bun or Xcode to install?+

No. The installer downloads prebuilt release binaries, verifies their checksum, then installs them. Bun, Rust, and Xcode are only required for source builds.

Does OreoDeck change my global Claude configuration?+

Not when you run an isolated profile. Global Claude remains separate; sessions are copied only on demand. Shell integration only routes `claude` through the resolved profile.

Can each terminal tab use a different profile?+

Yes. Run `ord use --tab <profile>` in each tab. That choice does not affect other tabs; a project profile and `-P` still take precedence.

When do I need to re-authenticate for usage?+

If the OAuth credential is missing, expired, or lacks the `user:profile` scope, OreoDeck shows that state and lets you open Claude Code login again. Never copy a token into OreoDeck: re-authenticate in Terminal, then refresh that profile.

How does gateway model mapping work?+

After Check connection, OreoDeck only shows models returned by the gateway. Optionally map Opus, Sonnet, Haiku, or Fable to provider model IDs; leave a field empty to keep Claude’s default ID.

Is gateway usage subscription usage?+

No. A gateway shows local token/cost telemetry. Live subscription usage and reset times only come from the selected Claude profile’s OAuth data.