ccas (Claude Code companion)

The Claude Code companion CLI: usage tracking through the Hep.gg proxy, pooled accounts, the status line, and real-time settings sync across machines.

ccas is the Claude Code companion CLI. It routes Claude Code through the Claude proxy so your usage shows up in the AI dashboard, pools your Claude accounts, installs the status line, and keeps your Claude Code settings in sync across every machine you use, in near real time.

Install it with your AI agent

If you use the Hep.gg MCP in Claude Code, you can skip the manual steps below. Connect the MCP, then just ask:

install and set up ccas full

Claude asks which operating system you are on (and whether to import your current Claude account and install the status line), then runs a single command that installs ccas, connects it to your Hep.gg account, and turns everything on. Routing Claude Code through the analytics proxy is always part of the setup. When it finishes, restart Claude Code so the proxy takes effect.

Install

Linux / macOS
bash -c "$(curl -fsSL https://ai.hep.gg/install)"

The installer downloads the CLI into a local bin directory, adds it to your PATH, and then runs ccas init. On Linux/macOS it installs to ~/.local/bin, or to /usr/local/bin when you run it with sudo / as root so the CLI is available system-wide; on Windows to %USERPROFILE%\.ccas\bin with a ccas.cmd wrapper. On macOS it will bootstrap Node automatically if it is missing. The CLI keeps itself up to date automatically.

The installer endpoints are public:

GEThttps://ai.hep.gg/installPublic
Bash installer for Linux/macOS.
GEThttps://ai.hep.gg/install.ps1Public
PowerShell installer for Windows.
GEThttps://ai.hep.gg/cliPublic
Raw CLI source the installers download.

Setup

ccas init

ccas init authenticates with your master token (from the dashboard, AI app), registers this machine, offers to pool your current Claude account, and can apply your synced settings and install the status line. Once initialized, Claude Code traffic is routed through your Hep.gg proxy token so requests are metered and visible in the dashboard.

Settings sync

ccas settings push

Your Claude Code setup, mirrored across every machine: settings.json, your keybindings, custom themes, your global CLAUDE.md, your personal agents and skills folders, and a few UI preferences. Push from the machine that has your preferred setup and every other machine converges automatically, within seconds while a Claude Code session is open there, or at its next session start.

You can also edit everything from the browser: the Claude Settings page has a friendly form, a raw JSON editor, and a live view of which machines have applied the latest version. Saving there pushes the change to your machines the same way.

CommandWhat it does
ccas settings pushMake this machine's settings the synced ones.
ccas settings pullApply your synced settings to this machine.
ccas settings statusShow what syncs and the local vs server version.
ccas settings defaultInstall the Hep.gg default setup (it becomes yours).
ccas settings sync on|offPause or resume auto-sync on this machine.

Discord rich presence

Show what you are working on right on your Discord status: your project name, your current git branch, and a live elapsed timer, in the same style as the VS Code Discord extension. It never mentions Claude or AI, only your project.

Turn it on in two steps:

  1. Enable Show on Discord on the AI accounts page. It is off by default.
  2. On the computer where you run Discord, run ccas discord.

That is all. It sets up a small background helper that starts on its own and stays out of the way, there is nothing to launch and no separate login. It reads which Discord account is signed in on that computer and mirrors your current session onto it.

Your Claude Code sessions often run on a remote server while Discord runs on your own computer, so the helper lives on the machine with Discord and follows whatever session you are actively working in, on any of your machines. Switch to a session on another computer and your status follows along.

Setting up a computer that only has Discord on it, with no ccas login? Install the helper on its own with one line:

Linux / macOS
curl -fsSL https://ai.hep.gg/install | HYD_DISCORD=1 bash
CommandWhat it does
ccas discordInstall the presence helper on this computer and start it.
ccas discord statusShow whether the helper is installed and running.
ccas discord logPrint the helper's recent activity for troubleshooting.
ccas discord offRemove the helper and clear your Discord status.

Codex

ccas manages Codex the same way it manages Claude Code. You get a pool of ChatGPT logins, an active slot that every Codex client on every machine picks up on its next request, and rotation when a slot hits a confirmed usage limit.

ccas codex setup              # turn on the Codex proxy, importing your current login
ccas codex status             # the pool, usage windows, and proxy state
ccas codex account login      # add a dedicated login (recommended)
ccas codex account            # list the pool and pick a slot
ccas codex account 2          # switch to slot 2

Setup writes a small provider block into your ~/.codex/config.toml, keeping a one-time backup of the previous file. That block authenticates with your machine's Hep.gg token rather than an OpenAI credential, which is what makes a switch take effect immediately on every Codex client without you re-logging in anywhere. ccas codex proxy off removes only that block and restores whatever provider you had before.

Dedicated login versus importing

ccas codex account login runs the official Codex sign-in in a temporary, isolated profile and hands the result to the pool, which then owns that credential outright. It defaults to Codex's device-auth flow, so it prints a code and a URL you can complete on any other device. That matters on a server or a container with no browser. Add --browser if you would rather use the local browser flow, or --api-key to add an OpenAI API key instead.

ccas codex account add imports the login already on the machine. It is quick, but that credential's refresh token is single-use and rotates, so the pool and that machine's own Codex CLI can sign each other out. The Accounts page badges an imported slot in amber and nudges you toward a dedicated login. Same account, one command, no clash after that.

What you get per slot

The Codex tab of the AI -> Accounts page shows each slot with its plan, live usage bars for whatever windows your plan actually reports, a reset countdown while a window is capped, and controls to set it active, warm it, rename it, or remove it. Autoswitch and keep-warm are per pool, so turning either on for Codex leaves your Claude settings alone.

Warming is worth knowing about. A usage window only starts when the account is first used, so an untouched slot has not started its clock. Warm starts one slot's window without switching to it, and Keep warm starts every idle slot's window as soon as any real work begins, so the pool's capacity runs and resets together instead of one slot at a time.

Codex commands

CommandWhat it does
ccas codex setupTurn on the proxy and import your current login if the pool is empty.
ccas codex statusThe pool, usage windows, and proxy state.
ccas codex accountList the pool and pick a slot.
ccas codex account <N>Switch to slot N.
ccas codex account login [label]Add a dedicated login (device auth by default).
ccas codex account login --browser [label]Use the local browser flow instead.
ccas codex account login --api-key [label]Add an OpenAI API-key slot.
ccas codex account add [label]Import the login already on this machine.
ccas codex account autoswitch on|offRotate automatically at a confirmed usage limit.
ccas codex account rename <N> <label>Rename a slot.
ccas codex account remove <N>Remove a slot.
ccas codex proxy on|off|verifyManage and check the local provider block.

Prompts and generated content are never stored. What is recorded is the shape of each request: tokens, latency, model, and which machine it came from.

Commands

CommandWhat it does
ccasQuick status: your Claude and Codex accounts with live usage, both proxies, your combined AI spend, and settings-sync state.
ccas initAuthenticate, register this machine, and set everything up.
ccas statusSame status view, callable from scripts.
ccas proxy [on|off|verify]Toggle routing Claude Code through your Hep.gg proxy token (sets/clears ANTHROPIC_BASE_URL).
ccas settings ...Sync your Claude Code settings (see above).
ccas account ...Pool multiple Claude accounts, quick-swap, and autoswitch. See Multiple accounts.
ccas codex ...The same for Codex: pool, quick-swap, autoswitch, proxy. See Codex.
ccas statusline [install|push|pull|customize]Install and sync your status line; its layout mirrors across machines automatically too.
ccas discord [off|status|log]Show your current project, branch, and elapsed time on your Discord status. See Discord rich presence.
ccas usage-token [new]Show/rotate the token for the Usage API.
ccas updatePull the latest CLI and status line right now.

Run ccas help for the full list.

Finished-turn notifications

Kick off a long run, walk away, and get a Discord message the moment Claude Code finishes. No more checking back on a terminal to see whether it is still working.

Turn it on in two steps:

  1. Enable Notify when a turn finishes on the AI accounts page. It is off by default.
  2. Set how long a turn has to run before it notifies you. The default is three minutes.

That threshold is the whole trick. Short back and forth while you are sitting there stays completely silent, and only the runs long enough that you probably walked away will reach out. The message tells you which project and branch it was working in, how long the turn took, and how Claude signed off.

Notifications arrive on whichever channels you have picked for Claude Code turn finished under notification preferences. Discord and in-app are on to begin with. Text messages are available there too if you want one somewhere you will actually notice it.

See also