Skip to main content
Connect your coding agent directly with your Pareto endpoint and key. Each successful test included a real file tool call. Aider edits files with text edit formats, not tool calls, so its test created and edited a file. Results apply to the tested versions and connection settings, not every client feature. Setting names can differ in other client versions.

Connection values

Get your key from the Pareto dashboard. Keep it outside source control. Use the base URL above, not the full /chat/completions URL.

OpenCode

  1. Make your Pareto key available as PARETO_API_KEY in the environment that starts OpenCode.
  2. Merge this configuration into ~/.config/opencode/opencode.json. Keep your existing providers and settings.
  1. Run opencode models pareto.
  2. Confirm that the command lists pareto/z-ai/glm-5.3-flash.
  3. Start OpenCode.
In pareto/z-ai/glm-5.3-flash, pareto selects the OpenCode provider. OpenCode sends z-ai/glm-5.3-flash to Pareto. This configuration uses Pareto for model and small_model. See OpenCode’s custom-provider guide.

OMP

OMP is the Oh My Pi coding agent. It is separate from the pi client below.
  1. Make your Pareto key available as PARETO_API_KEY in the environment that starts OMP.
  2. Merge this configuration into ~/.omp/agent/models.yml. Keep your existing providers.
  1. Run omp models pareto.
  2. Confirm that the command lists z-ai/glm-5.3-flash.
  3. Start OMP with the Pareto model.
The apiKey value names the environment variable. The authHeader value sends the key as a bearer token. See OMP’s provider guide.

Kilo

These steps use Kilo’s provider settings UI.
  1. Open Kilo Settings.
  2. Open Providers.
  3. Select Custom provider.
  4. Set Provider ID to pareto.
  5. Set Display name to Pareto.
  6. Select OpenAI Compatible for Provider API.
  7. Enter the Pareto base URL and your key.
  8. Add or select z-ai/glm-5.3-flash under Models.
  9. Save the provider and select this model for your session.
Use OpenAI Compatible, not OpenAI Responses. See Kilo’s provider guide.
In the reported Kilo test, the custom model’s context and output limits resolved to 0. This disables automatic context compaction. Successful connection does not resolve this issue. Pareto has not yet published the deployment limits needed to complete this configuration. Do not use guessed values. See Kilo’s custom-model guide.

Cline

  1. Open Cline’s settings.
  2. Select OpenAI Compatible for API Provider.
  3. Set Base URL to https://api.paretoinference.com/v1.
  4. Enter your Pareto API Key.
  5. Set Model or Model ID to z-ai/glm-5.3-flash.
  6. Save the settings.
Azure Identity Authentication is not needed for Pareto. See Cline’s provider guide.

pi

  1. Make your Pareto key available as PARETO_API_KEY in the environment that starts pi.
  2. Add the pareto provider below to ~/.pi/agent/models.json. Keep any existing providers.
  1. Start pi from that environment.
  2. Run /model and select GLM 5.3 Flash (Pareto).
pi reloads this file when you open /model. The $ in $PARETO_API_KEY tells pi to read the environment variable. See pi’s custom-model guide.

Hermes

  1. Run this command in your terminal, outside an active Hermes chat:
  1. Select Custom endpoint (self-hosted / VLLM / etc.).
  2. Enter https://api.paretoinference.com/v1 as the API base URL.
  3. Enter your Pareto API key.
  4. Enter z-ai/glm-5.3-flash as the model name.
  5. Choose Chat Completions for API compatibility, or accept Auto-detect. Auto-detect worked with the Pareto URL in the reported test.
  6. Enter a display name, such as Pareto.
  7. If the wizard asks for context length, use a confirmed Pareto deployment limit. Do not enter a guessed value. Pareto has not yet published this value.
  8. Complete the setup and start a new Hermes session.
Use hermes model to add the endpoint. The /model command inside a chat switches between providers that are already configured. See Hermes’ custom-provider guide.

OpenClaw

  1. Make PARETO_API_KEY available to the OpenClaw process. A background service must receive the variable in its own environment.
  2. Merge this configuration into ~/.openclaw/openclaw.json. Keep your existing providers and other settings.
  1. Start a new session after OpenClaw loads the configuration.
The pareto/ prefix selects the provider inside OpenClaw. The API model ID remains z-ai/glm-5.3-flash. Use openai-completions for this connection. See OpenClaw’s custom-provider guide and configuration guide.

Aider

  1. Make your Pareto key available as PARETO_API_KEY.
  2. Run these commands in your repository.
Keep the openai/ prefix. It selects the OpenAI-compatible API in Aider. Do not use the openrouter/ or zai/ model names that Aider suggests. The --no-show-model-warnings option hides the unknown-model warning. See Aider’s OpenAI-compatible guide.

Goose

  1. Make your Pareto key available as PARETO_API_KEY.
  2. Save this configuration as ~/.config/goose/custom_providers/pareto.json.
  1. Select the provider and model.
  1. Start Goose with the developer extension. This extension gives Goose its file and shell tools.
Goose custom providers need the full /chat/completions URL. Goose sends a summary request at the same time as your first message. This request counts toward the limit of requests at the same time. Goose retries HTTP 429 responses. See Goose’s custom-provider guide.

Crush

  1. Make your Pareto key available as PARETO_API_KEY.
  2. Add this configuration to ~/.config/crush/crushrc.
  1. Start Crush and select pareto/z-ai/glm-5.3-flash. For one prompt, run crush run -m pareto/z-ai/glm-5.3-flash "Say hello.".
Use --type openai-compat. Crush reserves --type openai for OpenAI. Crush sends a title request at the same time as your first message. This request counts toward the limit of requests at the same time. Crush retries HTTP 429 responses. See Crush’s documentation.

Qwen Code

  1. Make your Pareto key available as PARETO_API_KEY.
  2. Run these commands in the shell that starts Qwen Code.
Use --auth-type openai. It selects Chat Completions, the tested setting. The openai-responses setting is not tested. See Qwen Code’s authentication guide.

Continue

This configuration works in the Continue editor extension and in the Continue CLI (cn).
  1. Add your Pareto key to ~/.continue/.env.
  1. Merge this model into ~/.continue/config.yaml. Keep your existing models.
  1. Select GLM 5.3 Flash (Pareto) in Continue. For the CLI, run cn --config ~/.continue/config.yaml.
The editor extension does not read shell environment variables. Keep the key in ~/.continue/.env. See Continue’s OpenAI provider guide.

ZCode

ZCode is the Z.ai desktop coding app. Add Pareto as a custom provider. Do not use the built-in Z.ai provider, because it connects to Z.ai.
  1. Open ZCode Settings and select Model settings.
  2. Click Add provider, then select Create custom provider.
  3. Set Base URL to https://api.paretoinference.com/v1.
  4. Set API format to Chat completions (/chat/completions).
  5. Enter your Pareto key in API key.
  6. Click Add model and enter z-ai/glm-5.3-flash as Model ID. Keep Smart configuration on. It fills in the context window and output limit.
  7. Open Advanced settings. Under Input types, clear Image, Video, and PDF.
  8. Replace the Reasoning parameter mapping with this mapping, then click Save.
  1. Optional: open the provider’s More menu, select Rename, and enter Pareto.
  2. Open a project and select z-ai/glm-5.3-flash from the provider in the chat box.
The default mapping adds thinking, enable_thinking, and reasoning to each request. Pareto rejects these fields with HTTP 400. The mapping above sends only reasoning_effort. Pareto has tested text input only. ZCode sends its task-title request without streaming. Pareto serves streamed requests only, so this request fails with HTTP 400 streaming_only. ZCode then uses your first message as the task title. Chat and tool calls are not affected. See ZCode’s model guide.

Claude Code

Claude Code sends Anthropic Messages requests to /v1/messages. Pareto serves this endpoint, so Claude Code connects directly.
  1. Set ANTHROPIC_AUTH_TOKEN to your Pareto key.
  2. Start Claude Code with these variables.
Use the base URL without /v1. Claude Code adds /v1/messages. Set all four model variables. Without them, Claude Code requests Claude model names, which Pareto does not serve. With a key from the dashboard, Claude Code then retries for about three minutes and shows Failed to authenticate. API Error: 401. Claude Code can warn that the model is not recognized. You can ignore this warning.

Codex

Codex sends Responses API requests to /v1/responses. Pareto serves this endpoint, so Codex connects directly.
  1. Set PARETO_API_KEY to your Pareto key.
  2. Merge this provider into ~/.codex/config.toml.
  1. Start Codex.
Codex shows the model’s reasoning as its reasoning summary. Pareto ignores Codex’s web search tool and names it in the Pareto-Ignored-Parameters response header. To remove the tool, set web_search = "disabled". Codex can warn that model metadata is not found. You can ignore this warning.

Check the connection

After each setup, send a short message and confirm that the selected model replies. Then use a test folder and ask the agent to read a small text file. Confirm that the tool runs and the agent uses its result. A text reply alone does not verify tool calling. If either check fails, see Troubleshooting. Send the client version and error details to your Pareto contact. Do not send your API key.

Other API formats

Pareto serves OpenAI Chat Completions, the OpenAI Responses API (/v1/responses), and Anthropic Messages (/v1/messages). See Codex for the Responses API setup and Claude Code for the Messages setup.