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
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:
https://ai.hep.gg/installPublichttps://ai.hep.gg/install.ps1Publichttps://ai.hep.gg/cliPublicSetup
ccas initccas 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 pushYour 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.
| Command | What it does |
|---|---|
ccas settings push | Make this machine's settings the synced ones. |
ccas settings pull | Apply your synced settings to this machine. |
ccas settings status | Show what syncs and the local vs server version. |
ccas settings default | Install the Hep.gg default setup (it becomes yours). |
ccas settings sync on|off | Pause 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:
- Enable Show on Discord on the AI accounts page. It is off by default.
- 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:
| Command | What it does |
|---|---|
ccas discord | Install the presence helper on this computer and start it. |
ccas discord status | Show whether the helper is installed and running. |
ccas discord log | Print the helper's recent activity for troubleshooting. |
ccas discord off | Remove 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 2Setup 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
| Command | What it does |
|---|---|
ccas codex setup | Turn on the proxy and import your current login if the pool is empty. |
ccas codex status | The pool, usage windows, and proxy state. |
ccas codex account | List 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|off | Rotate 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|verify | Manage 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
| Command | What it does |
|---|---|
ccas | Quick status: your Claude and Codex accounts with live usage, both proxies, your combined AI spend, and settings-sync state. |
ccas init | Authenticate, register this machine, and set everything up. |
ccas status | Same 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 update | Pull 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:
- Enable Notify when a turn finishes on the AI accounts page. It is off by default.
- 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
- Multiple Claude accounts - pool, quick-swap, and autoswitch.
- Usage API - read-only live usage across your accounts.
- Status line - live usage in your Claude Code status line, synced across machines.