Commands
aims help <command> shows the same with examples. <tool> is claude or codex; <profile> is an account name you chose.
Arguments in [brackets] are optional. Leave them out and aims asks on a terminal: it lists your accounts with who they are and how they are doing, and checks before anything it cannot undo. A profile name alone means the tool that has it (aims logout work). In a script, a missing argument is an error that shows an example.
Get started
aims init
Sets up your accounts step by step: finds the tools and your current logins, names the accounts, sets what they share, connects the integrations and walks you through the logins. Run it again to add an account or reconnect the tools.
| Flag | Default | |
|---|---|---|
-y, --yes | No questions; logins are left for later. Tools that already have profiles are skipped, so it is safe to repeat. | |
--tools | every installed tool | Comma-separated, e.g. claude |
--current | personal | Name for the login you already have |
--second | work | Name for the other account |
--share | all | all, settings or none. See What accounts share. |
--integrations | all | skill, mcp, statusline, shell (comma-separated), all or none |
aims login [tool] [profile] [-- tool flags]
Runs the tool’s own login for the profile, creating the profile if it is new. Without a profile, aims asks which account to log in, starting on one that needs it, or sets up a new one. Flags after -- go to the tool:
aims login claude work -- --email me@company.com
aims login codex work -- --device-auth--share sets the sharing mode of a new profile. When the login turns out to be an account another profile already uses, aims says so.
Every day
aims status [tool]
Every account with its login, plan usage and marks. Alias: aims ls.
| Flag | |
|---|---|
--live | Ask the providers first. Free for Codex; costs a few tokens for Claude Code. |
--json | Machine-readable output |
aims use [tool] <profile>
Makes a profile the active account for new sessions and puts it first in the failover order. Without a tool, every tool that has a profile with that name switches.
aims claude [args], aims codex [args]
Run the tool as the active account (or the next usable one). All arguments go to the tool. aims claude@work and aims codex@work pick the account.
aims run <tool>[@profile] [args]
The same as the line above, spelled out.
aims env [tool] [profile]
Prints the exports that pin the current terminal to a profile. Use with eval "$(aims env work)".
| Flag | |
|---|---|
--reset | Unpin |
--shell | bash, zsh, fish or powershell (default: detected) |
Accounts
aims add [tool] [profile]
Adds a profile without logging in. Without a profile, aims asks for the tool, a name and what it shares, and offers to log it in.
| Flag | |
|---|---|
--existing | Adopt the login already in the tool’s own folder |
--share | all, settings or none |
--dir | Use this folder instead of ~/.aims/profiles/<tool>/<profile>. It must not overlap your home folder, ~/.aims, the tool’s folder or another profile. |
--login | Log in right away |
aims failover [tool]
Marks the account you used last as limited. New sessions use the next usable account until the mark lifts, then return to the active one. With stay on, the next account becomes the active one instead.
Without a tool, aims uses the only tool with a second account, or asks. On a terminal it also asks which account hit its limit (starting on the one used last) and what happened, then offers to continue your last conversation on the next account.
| Flag | |
|---|---|
--from | The profile to mark (default: the one used last) |
--to | Make this profile active instead, as aims use would |
--minutes | How long the mark lasts when the reset time is unknown |
--reason | limit (default) or login. A login mark lasts until aims login. |
--resume | Continue the last conversation on the new account |
aims clear [tool] [profile]
Removes limit and login marks. Without arguments, aims lists the marked accounts, all picked, and clears the ones you keep picked. A script names the account, or passes --all to clear every mark.
aims order [tool] [profile]...
Sets which account comes first and which stand in for it. The first becomes the active account; while it is limited or logged out, new sessions use the next usable one, in this order. aims order claude personal work means “personal, and work when personal is out”.
Every argument is optional. Without a tool, every tool that has the named profiles changes (aims order personal work). Without profiles, aims asks which tool (or both, when they have the same accounts), which account comes first and what to do at its five-hour limit, shows the order and saves it once you confirm.
| Flag | Default | |
|---|---|---|
--five-hour | switch | At an account’s five-hour limit: switch to the next one or wait for the reset |
--after-reset | back | Once the first account works again: go back to it or stay on the one that took over |
Both apply to every tool and work without an order too: aims order --five-hour wait. See The five-hour limit.
aims logout [tool] [profile]
Runs the tool’s logout for the profile. Without a profile, aims asks which logged-in account, then checks first (No is the default).
aims rm [tool] [profile]
Forgets a profile. Alias: aims remove. Without a profile, aims asks which account and what should happen to it: keep it (the default), forget it, or log it out and delete its folder.
| Flag | |
|---|---|
--purge | Also log it out and delete its folder. Anything shared that was written there moves to the hub first; shared history and settings are never deleted. aims only deletes folders it created. |
--force | Purge even if some shared entries could not be moved |
-y, --yes | Do not ask |
Integrations
aims setup
Connects aims to the tools. See AI integration.
| Flag | |
|---|---|
--all | Skill, MCP server, status line and shell integration |
--no-skill, --no-mcp | Skip one |
--statusline | Show the account and plan usage in Claude Code’s status line |
--shell [name] | Add the shell integration to your shell’s startup file |
--tools | Only these tools |
aims sync [tool]
Repairs shared links for every profile (each launch does this for the profile it starts) and copies MCP servers added to your main Claude Code login into the other logins.
aims shell-init [shell]
Prints the shell integration: claude and codex functions and completion for aims.
aims mcp
The MCP server. Claude Code and Codex start it; you do not run it yourself.
Maintenance
aims doctor
Checks the tools, each profile’s login and shared folders, and the integrations, and prints the command that fixes each problem. It repairs shared links as it goes; --fix also adopts databases that looked open (close the tools first). Exits with 1 when something needs attention.
aims clean
Takes aims out of your tools (skill, MCP server, status line, shell line) and forgets its settings and marks. Every login and account folder stays, so aims init brings them back without logging in again. Alias: aims uninstall. -y skips the question.
aims wipe
Logs out every account aims created and deletes its folder, then cleans. Anything shared that was written in a folder moves to ~/.claude or ~/.codex first. Your conversations, sessions, skills, settings and main logins are never touched, and custom --dir folders are forgotten, not deleted.
| Flag | |
|---|---|
-y, --yes | Do not ask |
--force | Delete a folder even if something in it is not shared |
aims upgrade
Upgrades aims with the tool that installed it. Alias: aims update. --check only prints the command.
aims completion <shell>
Prints the completion script for bash, zsh, fish or powershell.
Exit codes
| Code | Meaning |
|---|---|
0 | Success |
1 | An error, or doctor found problems |
2 | A command-line mistake, or an unknown profile |
130 | Cancelled with Ctrl+C |
| other | aims claude and aims codex exit with the tool’s own code |