Skip to content

Coding Tools Integration ​

The platform is compatible with the OpenAI / Anthropic ecosystems, so mainstream AI coding tools (Claude Code, Codex CLI, Cline, Roo Code, etc.) can be connected without any code changes. This page shows the minimal configuration for each tool.

General principles

  • The API base URL is $URL; create your API Key in the console ($CONSOLE_URL) under "Token Management";
  • The model name configured in a tool must exactly match a model in the console model list, otherwise the request fails with 503 "No available channel";
  • For long tasks, keep streaming enabled and set client timeouts to ≥600 seconds.

Protocol Support Overview ​

ToolProtocolPlatform EndpointStatus
Cline / Roo Code / Aider etc.OpenAI Chat/v1/chat/completions✅ Fully supported
Claude CodeAnthropic Messages/v1/messages✅ Fully supported (incl. count_tokens)
Codex CLI (wire_api = "chat")OpenAI Chat/v1/chat/completions✅ Fully supported
Codex CLI (default wire_api = "responses")OpenAI Responses/v1/responses✅ Supported (automatic fallback for unsupported upstreams; stateful fields see notes below)
Gemini CLIGemini/v1beta/models/{model}:streamGenerateContent✅ Supported

The platform performs protocol conversion automatically: e.g. when Claude Code sends Anthropic payloads against an OpenAI-compatible channel, both the request and the response (including streaming events) are converted by the platform, transparent to the tool.

Responses API Notes (/v1/responses) ​

The platform applies one uniform compatibility strategy to all channels:

  • If the upstream natively supports the Responses API, the request is forwarded as-is with full functionality;
  • If the upstream does not support it, the platform automatically falls back to Chat protocol conversion (transparent to the tool, including streaming events and usage);
  • Exception — server-side state fields: fields that rely on "the upstream keeping the conversation history" (such as previous_response_id and conversation) cannot be honored on the conversion path. Such requests return 400 (invalid_request) with the unsupported field names listed in the message. Coding tools send the full context every turn (stateless) by default, so normal usage never hits this; if your own client uses the stateful style, switch to sending the full context;
  • background mode and /v1/responses/compact depend on native upstream support and are not available on the fallback path (the upstream error is returned as-is rather than a malformed response).

Claude Code ​

Point the tool at the platform via environment variables:

bash
export ANTHROPIC_BASE_URL="$URL"
export ANTHROPIC_AUTH_TOKEN="sk-xxxxxxxx"        # token created in the console
export ANTHROPIC_MODEL="your-model-name"          # an available platform model
export ANTHROPIC_SMALL_FAST_MODEL="your-model-name"  # lightweight model (can be the same)

claude

Or persist it in ~/.claude/settings.json:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "$URL",
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxxxxxx"
  }
}

Notes

  • The platform fully supports the Anthropic Messages protocol (streaming, tool calls and the count_tokens endpoint included); requests routed to OpenAI-compatible channels are converted by the platform.
  • Use /model inside the session to switch models; model names must be available on the platform.

Codex CLI ​

Edit ~/.codex/config.toml:

toml
model_provider = "euno"
model = "your-model-name"

[model_providers.euno]
name = "Euno AI"
base_url = "$URL/v1"
wire_api = "chat"
env_key = "EUNO_API_KEY"

And export the token:

bash
export EUNO_API_KEY="sk-xxxxxxxx"
codex

Choosing wire_api

  • wire_api = "chat" (recommended): uses /v1/chat/completions, works with every channel with the most predictable behavior.
  • wire_api = "responses" (the Codex CLI default): uses /v1/responses, fully supported by the platform — automatic fallback when the upstream doesn't support it; only "server-side state" fields (see Responses API Notes) are unavailable.

Cline / Roo Code (VS Code / JetBrains plugins) ​

  1. Choose OpenAI Compatible as the provider;
  2. Set Base URL to $URL/v1;
  3. Paste the console token as API Key;
  4. Set Model ID to an available platform model (check the model marketplace in the console first).

Example (Cline):

SettingValue
API ProviderOpenAI Compatible
Base URL$URL/v1
API Keysk-xxxxxxxx
Model IDyour-model-name

Roo Code, Aider, Continue, etc. work the same way — for any "OpenAI Compatible" provider, set the Base URL to $URL/v1.

FAQ ​

Q: 503 "No available channel for model xxx"?

The model name configured in the tool has no available channel under your group. Check the exact model name in the console model marketplace (watch version suffixes and casing), or contact the administrator.

Q: Long tasks get disconnected halfway?

Check three things: ① keep streaming enabled (all configurations above are streaming); ② idle timeout of your client / own proxy ≥600 seconds; ③ use the latest integration guide (the platform now sends streaming keep-alive pings). If it still reproduces, contact us with the request ID from the X-Oneapi-Request-Id response header.

Q: 401 / 429?

401 means the token is invalid or disabled — regenerate it in the console. 429 means rate limiting — reduce concurrency or contact the administrator.

Q: /v1/responses returns 400 "does not support stateful fields: previous_response_id"?

The request carried a field that relies on the upstream keeping the conversation history; such fields cannot be honored on the conversion path. The default Codex CLI configuration never uses this field — no action needed; for custom clients, switch to the stateless style of sending the full conversation context every turn (same as most coding tools).

Q: How do I know which protocol path a call took?

Open the request detail in the console "Logs" page to see the request path, model and usage; providing the request ID when reporting issues speeds up diagnosis.

© 2026 Euno AI. All rights reserved.