All integrations

CLI Tools

OpenCode

Add an OpenAI-compatible provider, then select its model.

ConfigurableOpenAI Chat CompletionsDocs checked

The vendor documents custom endpoints. Check model capabilities and verify the connection.

On this page

Before you begin

Install a current OpenCode release and use a tool-capable model. This example uses project configuration and stores the key separately.

Have an A2Agent API key ready and copy an accessible model ID from the catalog. Replace every placeholder, back up existing settings and keep keys out of repositories.

Setup

File contents are usually shared; switching OS changes commands and paths. For WSL on Windows, select macOS / Linux.

  1. 01Install and check the version

    Use the official installer for your OS, then run opencode --version.

    Open official documentation
  2. 02Add project configuration

    Replace both occurrences of YOUR_MODEL_ID. If the file exists, merge the provider and model fields.

    ./opencode.json
    {
      "$schema": "https://opencode.ai/config.json",
      "provider": {
        "a2agent": {
          "npm": "@ai-sdk/openai-compatible",
          "name": "A2Agent",
          "options": { "baseURL": "https://a2agent.me/v1" },
          "models": { "YOUR_MODEL_ID": { "name": "A2Agent model" } }
        }
      },
      "model": "a2agent/YOUR_MODEL_ID"
    }
  3. 03Save the credential

    Run opencode, enter /connect, choose Other, and use a2agent as the provider ID. Enter your A2Agent key, then confirm the selection with /models.

Capabilities and limits

  • The /connect provider ID must exactly match the key under provider.
  • The display name is editable; the model ID must be available to your key.

Verify the connection

Replace every placeholder and run locally. Expect JSON containing OK. Then start a new client conversation, test one read-only tool call separately, and confirm the requests in A2Agent usage records. This test incurs a small amount of model usage.

Shell
curl --fail-with-body --silent --show-error --max-time 60 'https://a2agent.me/v1/chat/completions' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_A2AGENT_API_KEY' \
  -d '{"model":"YOUR_MODEL_ID","max_tokens":128,"messages":[{"role":"user","content":"Reply with OK."}]}'

Troubleshooting

If the model is missing, check the working directory, JSON syntax and provider ID. The a2agent/ prefix identifies the local provider, not the gateway model.

401 / 403: authentication or access denied

Use a key issued by A2Agent, without extra spaces, and check that it is active and unexpired. Confirm the group permits the model and protocol. A vendor subscription credential cannot replace an A2Agent key.

404 / model not found: endpoint or model mismatch

Check the root URL, /v1 prefix and full request path against this guide; avoid duplicated paths. Model IDs are case-sensitive and must be accessible to the current key.

429: quota or rate limit

Check your balance, key limits, concurrent usage and service status. Wait before retrying and reduce simultaneous agents; repeated retries do not remove a quota limit.

Chat works, but tools fail or streaming stops

Test a short text request, then a single read-file tool call. Check tool support, output budget, proxy timeouts and client version. Inspect the diff before resuming a long task to avoid repeating actions.

Restore previous settings

Restore the previous model in opencode.json, remove the added provider, and remove its credential with opencode auth logout.

Sources and check date

Status is based on official configuration docs, not end-to-end client testing with A2Agent.

Docs checked 2026-09-18