Skip to main content
Manage the connections Claude Code runs on. You can add a Claude plan, which signs you in to Claude and stores a long-lived setup token so Claude Code can run headless in Aether workspaces. Or you can add an Anthropic API key. Each connection has a name, and you can hold several at once, for example two Claude plans and an API key. Adding one never replaces another. See Agent connections. The first task-usable connection added becomes your default for Claude Code tasks when none was chosen. A second add never moves it. See default connection rules.

Usage

Subcommands

aether claude-code connect

Opens Claude’s sign-in page in your browser. Paste the code Claude shows when the command asks for it. The command then stores the setup token as a new connection under --name. Without --name, the connection is named Claude plan.
Names are unique per option. If you already have a Claude plan connection with that name, the command fails with connection_name_taken, so pass a different --name.
Opens nothing and reads nothing from the terminal: it prints the Claude sign-in link and a single-use Aether paste link, then waits. Sign in to Claude, copy the code Claude shows, and paste it on the paste link, signed in to Aether; the waiting command picks it up, exchanges it and stores the token as a new connection under --name, exactly as connect does. Your personal agent runs this for you when you ask it to connect your Claude plan. The paste link works once, for ten minutes, and the command waits no longer than that plus 30 seconds, a grace for a clock behind Aether’s. It exits non-zero with a typed reason (the error.code of --json) when the attempt ends without a token: Each needs a new connect --link: the code works only with the process that printed its sign-in link.

aether claude-code reconnect

Refresh the setup token on an existing Claude plan connection. Sign in to Claude again and paste the code it shows. The connection keeps its name and id, so agents and tasks pointing at it keep working; no second row is created.
--name is required. Names are unique per option, so a Claude plan and an API key can share a name: this command addresses the Claude plan. An unknown name fails and lists the connections you hold. A name held only under another option returns the API’s connection_option_mismatch sentence unchanged.

aether claude-code api-key

Add an Anthropic API key as a new connection. Omit --api-key to enter the key at a secure prompt.
To rotate a held key instead of adding another connection:
Omit --api-key to use the secure prompt. An unknown name lists your held connections; an option mismatch preserves the API’s error sentence.

aether claude-code status

List every Claude Code connection in the order you added it: its name, its option, an API key’s last four characters, and whether it needs re-authentication.
When you hold no connection, the command prints Claude Code: not configured and points you to connect.

aether claude-code disconnect

Remove the connection named by --name. Every other connection stays in place. If you hold exactly one connection, you can leave out --name. The command refuses, and lists your connections, in two cases:
  • You hold several connections and gave no --name.
  • The name matches more than one connection, for example a Claude plan and an API key that share a name. Remove that one under Connections on the web.
Disconnecting the default while another task-usable Claude Code connection is held is refused: use Make default for Claude Code tasks in Settings → Connections first. Removing the last one sets the default to Aether inference. Tasks that ran on the removed connection follow the harness’s default for their next turn; past turns keep their ran-on records. A personal agent or profile running on the row also blocks removal until you move it.

See also