Agent one-click import command library
This page is the source of truth for Agent one-click import commands. The database intentionally has no seeded commands. After checking the client version and model capabilities, an administrator can create the required entries one by one at /console/agent-import-commands.
The commands below were last verified on 2026-07-22 and target Bash / Zsh on macOS and Linux. They do not install the client; install each client using its official instructions first.
Entry rules
The console supports exactly these template variables:
{{api_base_url}}: generated from the selected protocol.openai-compatibleandresponsesinclude/v1;anthropicandgeminiuse the site origin.{{access_key}}: the user's selected Lumoswitch Access Key.{{model}}: the client-facing model name exposed by the configuration API.
Set each entry below to enabled unless noted otherwise. Validate it against a test configuration API and test Access Key before making it available to all users. Rendered commands contain a plaintext Access Key and must not be pasted into tickets, chats, or public logs.
Commands ready to enable
Codex
- Platform ID:
codex - Display name:
Codex - Downstream protocol:
responses - Display order:
10
export LUMOSWITCH_API_KEY="{{access_key}}" && codex --model "{{model}}" \
-c 'model_provider="lumoswitch"' \
-c 'model_providers.lumoswitch.name="Lumoswitch"' \
-c 'model_providers.lumoswitch.base_url="{{api_base_url}}"' \
-c 'model_providers.lumoswitch.env_key="LUMOSWITCH_API_KEY"' \
-c 'model_providers.lumoswitch.wire_api="responses"' \
-c 'model_providers.lumoswitch.requires_openai_auth=false'Runtime -c overrides configure a custom model provider without modifying ~/.codex/config.toml. requires_openai_auth=false, together with the custom environment credential, skips OpenAI sign-in and opens Codex directly. The configuration API must enable Responses output.
Official references: Codex custom model providers and configuration reference.
Claude Code
- Platform ID:
claude-code - Display name:
Claude Code - Downstream protocol:
anthropic - Display order:
20
export ANTHROPIC_BASE_URL="{{api_base_url}}" \
ANTHROPIC_AUTH_TOKEN="{{access_key}}" \
ANTHROPIC_MODEL="{{model}}" \
ANTHROPIC_DEFAULT_OPUS_MODEL="{{model}}" \
ANTHROPIC_DEFAULT_SONNET_MODEL="{{model}}" \
ANTHROPIC_DEFAULT_HAIKU_MODEL="{{model}}" \
CLAUDE_CODE_SUBAGENT_MODEL="{{model}}" \
ANTHROPIC_CUSTOM_MODEL_OPTION="{{model}}" && \
claude --model "{{model}}"Use ANTHROPIC_AUTH_TOKEN, not ANTHROPIC_API_KEY. The token is sent to the gateway as a Bearer credential and skips Claude sign-in on first launch. Default, fast, and subagent models are pinned to the same client-facing model name so background work does not fall back to unavailable Claude model IDs.
Only offer this entry for a model that genuinely works with Claude Code. It must correctly support Anthropic Messages streaming, Tool Use, and the request fields Claude Code uses. Protocol translation cannot add tool capabilities that the model itself lacks.
Official references: Claude Code LLM gateway, model configuration, and environment variables.
OpenCode
- Platform ID:
opencode - Display name:
OpenCode - Downstream protocol:
openai-compatible - Display order:
30
export LUMOSWITCH_API_KEY="{{access_key}}" && \
export OPENCODE_CONFIG_CONTENT='{"$schema":"https://opencode.ai/config.json","provider":{"lumoswitch":{"npm":"@ai-sdk/openai-compatible","name":"Lumoswitch","options":{"baseURL":"{{api_base_url}}","apiKey":"{env:LUMOSWITCH_API_KEY}"},"models":{"{{model}}":{"name":"Lumoswitch"}}}},"model":"lumoswitch/{{model}}"}' && \
opencodeOPENCODE_CONFIG_CONTENT injects configuration into the current process. It does not modify the user's opencode.json and does not require /connect first.
Official references: OpenCode providers and configuration.
GitHub Copilot CLI
- Platform ID:
github-copilot-cli - Display name:
GitHub Copilot CLI - Downstream protocol:
openai-compatible - Display order:
40
export COPILOT_PROVIDER_TYPE="openai" \
COPILOT_PROVIDER_BASE_URL="{{api_base_url}}" \
COPILOT_PROVIDER_API_KEY="{{access_key}}" \
COPILOT_MODEL="{{model}}" \
COPILOT_OFFLINE="true" && \
copilotBYOK bypasses GitHub-hosted model authentication. COPILOT_OFFLINE=true prevents runtime GitHub connections for optional features such as repository integration. The model must support streaming and Tool / Function Calling; GitHub recommends at least a 128K context window.
Official reference: GitHub Copilot CLI BYOK.
Gemini CLI
- Platform ID:
gemini-cli - Display name:
Gemini CLI - Downstream protocol:
gemini - Display order:
50
export GEMINI_API_KEY="{{access_key}}" GEMINI_MODEL="{{model}}" GOOGLE_GEMINI_BASE_URL="{{api_base_url}}" && \
export GEMINI_CLI_SYSTEM_SETTINGS_PATH="$HOME/.gemini/lumoswitch-system-settings.json" && \
node -e 'const fs=require("node:fs"),path=require("node:path"),p=process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH;fs.mkdirSync(path.dirname(p),{recursive:true});fs.writeFileSync(p,JSON.stringify({security:{auth:{selectedType:"gemini-api-key",enforcedType:"gemini-api-key"}}},null,2)+"\n",{mode:0o600})' && \
gemini --model "{{model}}"Gemini CLI can show an authentication-method prompt on first run even when it finds an API key. This command uses the official GEMINI_CLI_SYSTEM_SETTINGS_PATH override to create a Lumoswitch-specific settings file that selects and enforces gemini-api-key. It does not modify the user's existing ~/.gemini/settings.json, and project settings cannot switch it back to a sign-in flow. The Access Key remains only in the current shell environment. Node.js is already an installation prerequisite for Gemini CLI.
This entry uses the native Gemini protocol and must not be changed to an OpenAI-compatible /v1 URL. The model must support the function calls and streaming responses Gemini CLI uses.
Official references: Gemini CLI authentication and configuration, which also defines settings precedence and GEMINI_CLI_SYSTEM_SETTINGS_PATH.
Qwen Code
- Platform ID:
qwen-code - Display name:
Qwen Code - Downstream protocol:
openai-compatible - Display order:
60
qwen --auth-type openai --model "{{model}}" --openai-api-key "{{access_key}}" --openai-base-url "{{api_base_url}}"The credential and model are provided as launch arguments, bypassing sign-in without writing a configuration file.
Official reference: Qwen Code model provider configuration.
Aider
- Platform ID:
aider - Display name:
Aider - Downstream protocol:
openai-compatible - Display order:
70
export OPENAI_API_KEY="{{access_key}}" OPENAI_API_BASE="{{api_base_url}}" && aider --model "openai/{{model}}"openai/ is Aider's provider-selection prefix. It is not sent to Lumoswitch as part of the model name.
Official reference: Aider OpenAI-compatible APIs.
OpenClaw
- Platform ID:
openclaw - Display name:
OpenClaw - Downstream protocol:
openai-compatible - Display order:
80
openclaw onboard --non-interactive --accept-risk --mode local \
--auth-choice custom-api-key \
--custom-base-url "{{api_base_url}}" \
--custom-model-id "{{model}}" \
--custom-api-key "{{access_key}}" \
--custom-provider-id "lumoswitch" \
--custom-compatibility openai \
--secret-input-mode plaintext && \
openclawThis runs the official non-interactive onboarding flow and then launches OpenClaw. Unlike the temporary environment-variable commands above, it persists the provider and Access Key in OpenClaw's local credential storage. Run it only when the user accepts that behavior. A Responses variant must be maintained as a separate responses entry with openai-responses compatibility.
Official references: OpenClaw non-interactive onboarding and onboard CLI.
Clients without a one-click command
These clients are still covered, but their official setup currently depends on a GUI, an interactive wizard, or merging an existing user configuration file. Keep their dedicated setup guides instead of publishing a pseudo one-click command that may overwrite user settings.
| Client | Current setup path | Guide |
|---|---|---|
| Cline | VS Code / editor settings | Cline setup |
| Continue | Merge the user's YAML configuration | Continue setup |
| Kilo Code | Editor settings or configuration file | Kilo Code setup |
| Crush | Merge the user's configuration file | Crush setup |
| Goose | Interactive provider setup | Goose setup |
| OpenWebUI | Admin connection settings | OpenWebUI setup |
Pre-publish verification
Repeat this checklist after every major client release:
- Use the latest stable client and confirm that every argument or environment variable still exists in its official documentation.
- Create a test configuration API that enables only the target protocol and select a model with streaming, tool calling, and sufficient context.
- Run the fully rendered command with a test Access Key in a clean user environment. Confirm that no sign-in, authentication-method, or model-selection prompt appears.
- Complete one minimal chat and one tool call, then confirm the protocol, model, and Access Key in Lumoswitch logs.
- Check whether the command modified local configuration. Any persistence must match the explanation on this page.
- Rotate the test Access Key and confirm the old key no longer works before enabling the entry for users.