diff --git a/images/claude_desktop_developer.png b/images/claude_desktop_developer.png new file mode 100644 index 0000000..490a575 Binary files /dev/null and b/images/claude_desktop_developer.png differ diff --git a/images/claude_desktop_developer_settings.png b/images/claude_desktop_developer_settings.png new file mode 100644 index 0000000..1cda1c4 Binary files /dev/null and b/images/claude_desktop_developer_settings.png differ diff --git a/images/claude_desktop_landing.png b/images/claude_desktop_landing.png new file mode 100644 index 0000000..926da22 Binary files /dev/null and b/images/claude_desktop_landing.png differ diff --git a/images/claude_desktop_troubleshooting.png b/images/claude_desktop_troubleshooting.png new file mode 100644 index 0000000..0375c44 Binary files /dev/null and b/images/claude_desktop_troubleshooting.png differ diff --git a/manage/ai/claude-desktop.mdx b/manage/ai/claude-desktop.mdx index ee3a75b..f0615e7 100644 --- a/manage/ai/claude-desktop.mdx +++ b/manage/ai/claude-desktop.mdx @@ -5,6 +5,14 @@ description: "Connect Claude Desktop's third-party inference to a Pangolin AI Ga Claude Desktop can route its requests through a third-party inference gateway instead of Anthropic directly. Point it at an AI Gateway resource that has an Anthropic-compatible provider attached — Anthropic itself, Bedrock, Vertex AI, or a custom Anthropic-compatible endpoint. See [AI Gateway Overview](/manage/ai/overview) if you haven't set that up yet. + + Claude Desktop third-party inference settings + + import AiGatewayKey from "/snippets/ai-gateway-key.mdx"; You'll need the resource's URL (its ``) and its API key (``). Both are on the resource's Keys page. @@ -14,21 +22,34 @@ You'll need the resource's URL (its ``) and its API key (``). Bot ## Steps 1. Open Claude Desktop, go to the menu in the top left and select **Help > Troubleshooting**, and turn on **Developer Mode**. + + Claude Desktop third-party inference settings + 2. From the menu bar, open **Developer**, then **Configure Third-Party Inference…**. + + Claude Desktop third-party inference settings + 3. Select **Gateway** 4. Select **Credential kind** > **Static API Key**. -3. Fill in: - - **Gateway base URL:** `` - - **Gateway API Key:** `` -4. Restart Claude Desktop. - -{/* -Screenshot: `/images/ai/claude-desktop-inference-dialog.png` -The "Configure Third-Party Inference" dialog with the Gateway URL and API Key fields filled in. +5. Fill in: + - **Gateway base URL:** `` + - **Gateway API Key:** `` - Claude Desktop third-party inference settings + Claude Desktop third-party inference settings -*/} +6. Restart Claude Desktop. Send a message to confirm it's working — check the resource's activity in Pangolin's logs if you want to verify traffic is actually flowing through the gateway rather than straight to Anthropic. diff --git a/manage/ai/claude.mdx b/manage/ai/claude.mdx index 6cf2c2b..1fe1030 100644 --- a/manage/ai/claude.mdx +++ b/manage/ai/claude.mdx @@ -37,14 +37,6 @@ To undo it: pangolin configure claude --reset ``` -{/* -Screenshot: `/images/ai/claude-cli-tab.png` -The Claude Code card on a resource's Keys page, expanded, with the CLI tab selected showing the `pangolin configure claude` command. - - Claude Code CLI setup - -*/} - ## Manual setup Pick the preset that matches your provider. @@ -122,12 +114,4 @@ Use this when the resource has a custom provider pointed at Moonshot AI's Anthro "ENABLE_TOOL_SEARCH": "false" } } -``` - -{/* -Screenshot: `/images/ai/claude-manual-tab.png` -The same card with the Manual tab selected and the preset dropdown open, showing Default/Bedrock/Vertex/Kimi options. - - Claude Code manual setup presets - -*/} \ No newline at end of file +``` \ No newline at end of file diff --git a/manage/ai/codex.mdx b/manage/ai/codex.mdx index adc39fc..6aeb7fc 100644 --- a/manage/ai/codex.mdx +++ b/manage/ai/codex.mdx @@ -37,14 +37,6 @@ To undo it: pangolin configure codex --reset ``` -{/* -Screenshot: `/images/ai/codex-cli-tab.png` -The Codex card on a resource's Keys page, expanded, with the CLI tab selected showing the `pangolin configure codex` command. - - Codex CLI setup - -*/} - ## Manual setup Merge this into `~/.codex/config.toml` (honors `$CODEX_HOME` if you've set it): @@ -65,12 +57,4 @@ Codex reads the key from the environment variable named in `env_key`, not from t export PANGOLIN_API_KEY= ``` -Codex is the one client here that also tolerates no key at all: for a private resource you can drop the `env_key` line and skip the export entirely. Exporting `PANGOLIN_API_KEY=none` works too, so use whichever you find clearer. - -{/* -Screenshot: `/images/ai/codex-manual-tab.png` -The same card with the Manual tab selected, showing the config.toml snippet. - - Codex manual setup - -*/} +Codex is the one client here that also tolerates no key at all: for a private resource you can drop the `env_key` line and skip the export entirely. Exporting `PANGOLIN_API_KEY=none` works too, so use whichever you find clearer. \ No newline at end of file diff --git a/manage/ai/gemini.mdx b/manage/ai/gemini.mdx index db5d3b5..867566f 100644 --- a/manage/ai/gemini.mdx +++ b/manage/ai/gemini.mdx @@ -37,14 +37,6 @@ To undo it: pangolin configure gemini --reset ``` -{/* -Screenshot: `/images/ai/gemini-cli-tab.png` -The Gemini CLI card on a resource's Keys page, expanded, with the CLI tab selected showing the `pangolin configure gemini` command. - - Gemini CLI setup - -*/} - ## Manual setup Write `~/.gemini/.env`: @@ -64,12 +56,4 @@ export GEMINI_API_KEY= gemini ``` -{/* -Screenshot: `/images/ai/gemini-manual-tab.png` -The same card with the Manual tab selected, showing the .env file and shell snippets. - - Gemini CLI manual setup - -*/} - For a private resource, keep `GEMINI_API_KEY` in place and set it to `none`. Gemini CLI won't start without it set to something. diff --git a/manage/ai/openclaw.mdx b/manage/ai/openclaw.mdx index 38773e6..e37072b 100644 --- a/manage/ai/openclaw.mdx +++ b/manage/ai/openclaw.mdx @@ -43,14 +43,6 @@ openclaw onboard --install-daemon When prompted, choose **QuickStart or Manual mode**, select the custom/OpenAI-compatible provider option, and enter the base URL and key. -{/* -Screenshot: `/images/ai/openclaw-onboard.png` -The `openclaw onboard` interactive wizard at the provider selection step. - - OpenClaw onboarding wizard - -*/} - ## Manual setup Onboarding writes `~/.openclaw/openclaw.json`. You can edit it directly instead - changes reload automatically: diff --git a/manage/ai/opencode.mdx b/manage/ai/opencode.mdx index d642417..013c269 100644 --- a/manage/ai/opencode.mdx +++ b/manage/ai/opencode.mdx @@ -37,14 +37,6 @@ To undo it: pangolin configure opencode --reset ``` -{/* -Screenshot: `/images/ai/opencode-cli-tab.png` -The OpenCode card on a resource's Keys page, expanded, with the CLI tab selected showing the `pangolin configure opencode` command. - - OpenCode CLI setup - -*/} - ## Manual setup Merge this into your global `opencode.json` (`~/.config/opencode/opencode.json`, or `$XDG_CONFIG_HOME/opencode/opencode.json` if set): @@ -86,12 +78,4 @@ Then merge your key into `auth.json` (`~/.local/share/opencode/auth.json`, or `$ `auth.json` is required even for a private resource. OpenCode refuses to start a provider with no key at all and fails with `OpenAI API key is missing. Pass it using the 'apiKey' parameter or the OPENAI_API_KEY environment variable.` Set the key to `none` rather than leaving the entry out. -Only add entries for the providers your resource actually supports. To point a different OpenCode provider (`openrouter`, `google`, `groq`, etc.) at this gateway, add a matching block under `provider` in `opencode.json` and a matching key in `auth.json`. - -{/* -Screenshot: `/images/ai/opencode-manual-tab.png` -The same card with the Manual tab selected, showing the opencode.json/auth.json snippets. - - OpenCode manual setup - -*/} +Only add entries for the providers your resource actually supports. To point a different OpenCode provider (`openrouter`, `google`, `groq`, etc.) at this gateway, add a matching block under `provider` in `opencode.json` and a matching key in `auth.json`. \ No newline at end of file diff --git a/manage/ai/overview.mdx b/manage/ai/overview.mdx index cfa2405..6edb72b 100644 --- a/manage/ai/overview.mdx +++ b/manage/ai/overview.mdx @@ -17,26 +17,10 @@ A resource only understands the API format(s) its attached providers support. An Sidebar → **AI Gateway** → **Providers** → **Create**. Pick a provider type, paste in its API key, and save. You can add as many as you need. -{/* -Screenshot: `/images/ai/create-provider.png` -The AI Gateway → Providers → Create form, showing the provider type dropdown and API key field filled in for OpenAI or Anthropic. - - Creating an AI provider - -*/} - ## 2. Create a resource Resources → **Create** → set **Type** to **AI Gateway**, pick a domain, and attach the provider(s) from step 1. You can also attach providers to an existing resource later from its **AI Gateway** settings tab. -{/* -Screenshot: `/images/ai/create-resource.png` -The new resource dialog with Type set to "AI Gateway" and a provider selected in the AI Providers section. - - Creating an AI Gateway resource - -*/} - ## 3. Get a key How a client authenticates depends on whether the resource is public or private. @@ -56,14 +40,6 @@ Only reachable from devices connected to your Pangolin network, so no key is che You still have to put *something* in the client's key field. Most AI clients refuse to start with no key set at all, so use the literal string `none`. Deleting the field usually breaks things - Claude Code, for instance, silently falls back to your regular Anthropic account if `apiKeyHelper` is missing, and OpenCode errors out with `OpenAI API key is missing`. -{/* -Screenshot: `/images/ai/api-keys-panel.png` -The resource launcher's API Keys panel, showing the Identity Key section and the "Configure Coding Agents" cards below it. - - Resource API Keys panel - -*/} - ## 4. Connect a client Every resource's Keys page has ready-to-copy setup for common clients, and `pangolin configure ` can write the config for you. Full instructions per client: