Connect your tools

Add an account, then tell your tool to use Garcon.

Add accounts

Choose Providers → Add account. ChatGPT and Claude sign-in open in your browser and need the corresponding CLI installed. Garcon creates a separate profile and confirms the account before adding it. If the popup is blocked, choose Open sign-in page.

Sign-in expires after five minutes and can be cancelled. A dashboard reload in the same tab can resume it while the server runs. Connecting a login doesn't configure your tool or enroll a Codex account automatically.

For OpenRouter, paste a key and save it. Saving doesn't verify the key or make a paid request. A saved key supplies OpenRouter requests; without one, clients can send their own key.

Codex

Enable the accounts you want under Providers → Codex. Merge this into your user configuration, then restart Codex Desktop or start a fresh CLI process:

~/.codex/config.toml
model_provider = "garcon"

[model_providers.garcon]
name = "Garcon"
base_url = "http://127.0.0.1:4141/codex/backend-api/codex"
wire_api = "responses"
requires_openai_auth = true
supports_websockets = false

Keep one provider setting and one Garcon table. Codex uses Codex accounts only, with no fallback to OpenRouter or Claude. The model stays as selected in Codex. How account selection works.

Pi

Choose Connect Pi and merge the generated providers into Pi's models.json. Log into Codex in Pi for its native Codex adapter. Use /model to choose a provider and model.

  • Codex: http://127.0.0.1:4141/pi/chatgpt/backend-api/codex
  • OpenRouter: http://127.0.0.1:4141/pi/openrouter/api/v1

Pi's Codex route shares Garcon's enrolled pool when routing is enabled. OpenRouter needs an explicit model list. The generated garcon-local value is a placeholder for a key saved in Garcon, not a real credential. Pi chooses the provider; Garcon doesn't switch it automatically.

Claude Code

Launch through Garcon
garcon claude
# Explicitly start a Remote Control session with the default profile:
garcon claude rc
# Or select another profile:
garcon claude rc --config-dir ~/.claude-personal
# Pass Claude arguments after --

Both commands use $CLAUDE_CONFIG_DIR when set, otherwise ~/.claude. An explicit --config-dir overrides that selection. The rc command enables Remote Control for that session; keep remoteControlAtStartup: false in user settings to avoid automatic remote sessions. Each profile keeps its own login. Adding an account in Garcon does not switch the selected profile.

Terminal launchers do not configure Claude Desktop. For ordinary local Desktop Code sessions, use the dashboard's Claude setup prompt to configure the default profile's HTTP gateway, then start a new session and verify its request in Logs. The explicit Remote Control command attempts to use the socket, but Claude Code 2.1.283 rejects RC through a custom gateway/socket; it does not silently bypass Garcon. Claude does not use the Codex pool or OpenRouter.

Other clients

Use http://127.0.0.1:4141/<harness>/<provider> plus the client's API prefix: /v1 for OpenAI, /api/v1 for OpenRouter. Supported providers are anthropic, openai, openrouter, and chatgpt.

Hermes with ChatGPT can use:

Hermes
HERMES_CODEX_BASE_URL=http://127.0.0.1:4141/hermes/chatgpt/backend-api/codex hermes chat --provider openai-codex

URLs never include account labels. OpenAI-compatible streaming clients need stream_options: {"include_usage": true} for token counts. Account attribution.

Check the first request

Send a short request, then find it in Logs. Check its account, model, and status. A saved setting alone doesn't prove the connection works.