Tagteam switches your Claude Code and Codex accounts from the menu bar, grouped into profiles like Personal and Work.
It keeps a backup of every account you add and swaps it in with one click: no logout, no browser login, no terminal.
Download coming soon
Free · Version 2.0.0 · macOS 14+ Notarized by Apple
01
One bench for every account you use.
Claude Code and Codex together
Each account shows its 5-hour and weekly limits. The account in use sits at the top of its group; every other account has a Switch button and a ⋯ menu to rename, re-authenticate, exclude from auto-switch, manage profiles or remove.
Profiles
Group accounts into profiles such as Personal and Work. Picking a profile makes one Claude Code and one Codex account live at once, and limits the list and auto-switch to that profile. An account can belong to several profiles.
Auto-switch
When the Claude Code account in use reaches your threshold (90% by default), Tagteam moves to the account in the profile with the most quota left. A 5-minute cooldown prevents bouncing, and you can opt individual accounts out.
Costs at a glance
API-equivalent cost for today, 7 days and 30 days, plus the last 14 days, all computed from your local Claude Code logs.
Menu bar modules and widgets
Choose what the menu bar shows (account, session or weekly usage, cost, reset countdowns) and add desktop widgets in three sizes.
Private by default
Emails are masked unless you choose to show them. Accounts are added through the browser login of the official CLIs, or by importing the login you already have, so there is no password to type into Tagteam.
Native, and in your language
Built with SwiftUI, with light and dark mode. Available in English, 简体中文, 日本語, Deutsch and Français. No made-up numbers: a missing reading shows “—”, never 0%.
02
How switching works.
Nothing is logged out, so you can switch back at any time.
Claude Code
Every account you add is backed up: its OAuth token plus the matching oauthAccount block from ~/.claude.json.
A switch writes the target account into the Claude Code-credentials keychain item and into ~/.claude.json.
Expired access tokens are refreshed by the official CLI (claude auth status), not by calling Anthropic’s private OAuth endpoint.
Codex
A switch swaps ~/.codex/auth.json, written atomically with mode 0600. Each account’s file is kept in the keychain.
Before overwriting, Tagteam saves the current file into the backup of the account that owns it. If it holds a login Tagteam doesn’t manage, the switch stops instead of discarding it.
The Codex app-server and the ChatGPT (Codex) desktop app are closed gracefully, then reopened only if they were running.
03
Install in a minute.
Download
Get Tagteam.zip from this page as soon as downloads open.
Move to Applications
Unzip it and drag Tagteam.app into /Applications.
Open it
Signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings.
Upgrading from CCSwitcher
Tagteam keeps the same bundle identifier, so your accounts, profiles and settings carry over. Quit CCSwitcher, install Tagteam, and delete the old app. On first launch macOS may ask once to allow keychain access, and the widget fills in after the first refresh.
Updates
Automatic updates are removed. New versions will be published on this page.
04
Questions, answered.
Is Tagteam notarized?
Yes. It is signed with a Developer ID and notarized by Apple, so it opens without Gatekeeper warnings. The first time it reads the Claude Code credentials, macOS asks for keychain access: choose Always Allow.
Which CLIs do I need?
macOS 14 or later, plus the Claude Code CLI and/or the Codex CLI. Install the one you use, or both.
Where are my credentials stored?
Claude Code: each account’s OAuth token and oauthAccount block are backed up, and the live account is the Claude Code-credentials keychain item plus ~/.claude.json.
Codex: the live login is ~/.codex/auth.json (mode 0600), and each account’s file is kept verbatim in the keychain item CCSwitcher-codex-backups.
Emails are masked in the app unless you choose to show them.
What happens to Codex sessions that are already running, or to ChatGPT.app?
Recent Codex versions keep the login in memory, in the codex app-server daemon and in the ChatGPT (Codex) desktop app. On every switch Tagteam closes both gracefully, swaps the file, then starts them again, but only if they were running. You can turn this off in Settings → Codex.
Interactive codex sessions that are already open keep their account until you restart them; the popover shows how many are running.
Does Tagteam refresh my Codex tokens?
Not for the live account: refresh tokens are single-use and belong to the CLI. Only stored accounts are refreshed, and the new tokens are saved before use.
Tagteam is coming soon.
Downloads open here shortly. It runs on macOS 14 Sonoma or later.
Tagteam is free and made by one developer. If it saves you a limit or two: