Claude
GOAT uses Claude Code’s login and configuration. Start with the default provider for one account; provider setup covers installation and shared provider settings.
Claude Cloud
Claude Cloud appears automatically in Settings > Providers. Sign in to Claude with a claude.ai account, either from the Claude Cloud card or the Claude provider card. The cloud provider uses that account and executable; API keys and router connections are not supported. Turn Claude Cloud off with its toggle. Reset the cloud card to follow Claude’s enabled state again. For another account, add a custom Claude Cloud instance and choose its Claude source.
Claude Cloud starts from your project folder and its current GitHub branch. Local changes and commits that have not been pushed may be included. You do not need to publish the branch before starting. New files that Git does not track yet may be left out; add them to Git first if the task needs them.
If Claude Code has not trusted the project folder, open it once with claude on
the environment’s machine, using the same account and config as your selected
Claude instance, and accept the trust prompt. Then try the cloud task again.
GOAT does not accept trust prompts or change your trust settings.
The thread keeps the session link and follows the session for up to two hours. When Claude ends its turn, its reply appears in the thread and the run completes. To check, GOAT loads the session into a private local copy, which runs one small Claude turn on your account. Checks start 30 seconds after your message and slow down to every 10 minutes, and the cloud card shows what they have cost. The copy never reaches the session on claude.ai, and GOAT deletes it after each check.
GOAT also looks for a GitHub pull request linked to the session. Result PR found means a PR was located; it does not confirm that checks passed. If GOAT cannot read the session, the cloud card says why and the run waits for that pull request instead. If neither confirms a result, open the session to inspect it before continuing.
Follow-up messages go to the same cloud session, and each one completes when the session answers it. Stop the session on Claude’s website; Claude Cloud has no supported CLI cancellation command. Your local files and checkpoints are not changed by cloud work.
If Claude Cloud is not ready, run goat provider diagnose --driver claudeCloud on the
environment’s machine. It lists what blocks it, such as a missing claude.ai login or an
API-key variable in the environment, and the next step for each.
Separate accounts or configurations
Use a separate Claude config directory for each account. This also works for named presets that need different Claude settings or a router connection.
Keep your existing account in the default directory. On the environment’s machine, create the second login:
mkdir -p ~/.claude_personal
CLAUDE_CONFIG_DIR=~/.claude_personal claude auth login
Add another Claude instance in Settings > Providers:
| Instance | Binary path | CLAUDE_CONFIG_DIR path |
|---|---|---|
| Claude Work | claude |
Leave empty |
| Claude Personal | claude |
~/.claude_personal |
An empty config-directory setting uses Claude Code’s normal configuration. The
custom setting changes CLAUDE_CONFIG_DIR, leaving HOME and the system keychain
location intact. Use the same variable for the login command. Setting HOME
instead can put credentials where this provider will not find them.
Check the account reported in provider settings after signing in. Existing threads can switch only between Claude instances with the same config directory. Separate account directories stay isolated, including their local conversation state. Claude does not have Codex’s shared-home and shadow-home arrangement.
For presets that differ only in API keys or endpoints, use the instance’s Environment variables. Variable assignments do not belong in Launch arguments.
Claude Code’s verbose mode can stay enabled when you use Claude for text generation, including thread titles, branch names, commit messages, and pull request descriptions. On a remote connection, GOAT uses the Claude configuration on the connected server.
Compact long conversations
Set Auto-compact after in the Claude provider settings to an integer between
100000 and 1000000. For example, 300000 asks Claude to summarize at about
300,000 tokens. This changes when compaction happens, not the model’s context
window. Leave it empty for Claude Code’s default.
You can also send /compact in an existing conversation. Web and desktop offer
Compact context from the context meter. When you return to a large thread
after Claude’s prompt cache expires, a Compact chip with the thread’s token count shows
next to the send button. While it is on, Enter summarizes the history first, then
sends your message. Click the chip to switch it to Full and keep the full
history for that message. The cache lasts about an hour on a Claude
subscription and 5 minutes with an API key, Bedrock, or Vertex. See commands and skills for using
composer commands.
Compact idle threads in Settings > General controls this for threads over 200,000 tokens. Each Claude provider’s settings can override it:
- When you return shows the Compact chip described above. This is the default.
- Before the cache expires (beta) compacts an idle thread shortly before its
prompt cache expires, so coming back does not reprocess the whole conversation.
The compaction appears in the thread as a
/compactturn sent by GOAT. - Never skips idle compaction and Claude’s resume prompt. Auto-compact after still applies, and you can still compact by hand.
Usage limits
If your Claude subscription runs out of usage mid-turn, the thread shows which limit was reached and the remaining wait when Claude provides a reset time. Claude Code holds the turn until that window reopens, so it can keep showing as working. Wait for the reset, or stop the turn and continue later. The warning’s timestamp shows when the displayed wait started.
Skills
Claude skills come from the config directory’s skills folder and the project’s
.claude/skills folder. If both define the same name, the config-directory copy
wins. Skills disabled in Claude’s settings do not appear in the composer.
Use $ in the composer to select a skill. Enabled installed Claude plugins also
contribute skills under names such as plugin:review. Skills marked disable-model-invocation
can still be started by you. Invoke those one per message: Claude directly runs
only the last named skill and may try to start earlier ones through its Skill
tool, which refuses skills reserved for manual invocation.
Task lists
To show Claude task lists in the web and desktop apps, add
CLAUDE_CODE_ENABLE_TODO_TOOLS=1 under Variables in the Claude instance’s
Environment section in Settings > Providers. Unfinished tasks stay visible
between turns in the same Claude session.
Use OpenCodex Home
A Claude Code instance can send its model requests through your
OpenCodex Home and use Home’s
accounts and shared quota. In the instance’s settings in Settings →
Providers, set Model route to OpenCodex Home. OpenCodex address is
OpenCodex on the machine running the instance, http://127.0.0.1:10100/v1 by
default. An agent can also ask you to approve the change. A routed instance
uses only the models Home offers. If Home is unavailable, requests fail; GOAT
never switches to another account. Set Model route back to Provider
settings to stop.
GOAT refuses the route when Claude Code’s managed settings on that machine would override it, including a managed policy helper that runs at startup. Keep the instance on its own route, or ask your administrator to remove that setting.
OpenRouter
Create a Claude instance with its own config directory, such as
~/.claude_openrouter, and keep Binary path set to claude. In that instance’s
Environment variables, use:
| Variable | Value |
|---|---|
ANTHROPIC_BASE_URL |
https://openrouter.ai/api |
ANTHROPIC_AUTH_TOKEN |
Your OpenRouter API key, marked Sensitive |
ANTHROPIC_API_KEY |
An explicitly empty value |
If that Claude config directory has a cached Anthropic login, run /logout in a
Claude Code session using that directory before starting the router setup. Cached
login credentials can conflict with the router token.
Select the model you want in GOAT. For an OpenRouter model outside the built-in
list, open that Claude instance in Settings > Providers and add its full model
ID with Add custom model. Then select it in the chat model picker.
ANTHROPIC_DEFAULT_*_MODEL variables map Claude Code aliases such as sonnet; they
do not replace the explicit model ID selected in GOAT. Custom models may have
fewer effort, thinking, or context controls than built-in models.
Verify the model used in OpenRouter’s activity dashboard. For current compatibility requirements, use the OpenRouter Claude Code guide.
Other routers
A local router uses an ordinary Claude provider instance. Give it a separate config directory and put the router’s endpoint and credential variables in that instance’s Environment variables. The router must run where the environment can reach it. Follow the Claude Code Router instructions for its installation and routing configuration.