Connect Roo Code to NekoCloud
This guide adapts the tool’s official third-party provider documentation for NekoCloud. It does not imply official certification of this service. NekoCloud has not individually tested the toolchains described here. These are configuration references and acceptance steps for you to perform; no paid requests were made while preparing this guide. Install the tool, create a NekoCloud API key, and confirm the model is available in the model plaza and your key’s group. Replace REPLACE_WITH_MODEL_ID with the exact model ID, not its display name.
Settings entry point and fields
Open Roo Code sidebar → settings icon → API Provider in VS Code and select OpenAI Compatible. Preserve your current settings before editing the provider configuration you intend to use. If your installed version offers configuration profiles, create a separate NekoCloud profile to avoid affecting existing tasks.
| Field | Value |
|---|---|
| API Provider | OpenAI Compatible |
| Base URL | https://api.nekocloud.vip/v1 |
| API Key | REPLACE_WITH_API_KEY, replaced with your NekoCloud key |
| Model / Model ID | REPLACE_WITH_MODEL_ID, replaced with an accessible exact ID |
The official settings also include Model Configuration for output limits, context windows, images, Computer Use, and prices. Do not copy model numbers from another provider’s tutorial or treat capability switches as detection. Use only information currently verifiable for this service; this page lists no actual model capabilities, limits, or prices. If a model is absent from the list, check whether the current UI supports manual ID entry and retain the exact identifier instead of matching an approximate name.
Save the configuration and confirm the active profile and model. Save editor files, run Developer: Reload Window, reopen Roo Code, and start a new task. If that task still shows the old provider, check the active profile in settings instead of deleting all configurations as a reset. Enter the real value in the key field; do not assume the UI replaces an environment-variable name with a secret.
Native tool calling is required
Roo Code’s official documentation states that it uses native tool calling exclusively, with no XML tool-protocol fallback. The chosen model and corresponding NekoCloud route must complete OpenAI-compatible native tool calls. Successful text chat alone does not prove Roo compatibility. The agent must emit structured tool arguments, the client must execute an approved tool and return its result, and the model must continue its answer. Text resembling a tool command is not a successful invocation.
This guide uses a Chat Completions-compatible entry point. The client appends the request path, so the base URL ends at /v1. Do not assume Responses and Chat Completions are interchangeable. NekoCloud’s Anthropic root is https://api.nekocloud.vip, but Anthropic Messages needs its own provider adapter and authentication rules; that root is not a substitute for this OpenAI base URL.
If tools are unsupported, arguments are invalid, or tool calls never complete, first confirm that the model and route satisfy the native tool protocol, then perform the read-only round-trip test below. Do not look for an XML switch to bypass the requirement or enable unrestricted execution to keep the agent running. If compatibility cannot be confirmed, stop and troubleshoot with redacted error information.
Acceptance: reply, usage record, and a read-only tool round trip
These steps send model requests and may incur charges. Run them only with your consent. Disable automatic approval, automatic command execution, and unnecessary background requests first. Use a small workspace without sensitive information.
- Start a new conversation, confirm the active provider and model, and send “Reply only OK; do not call tools.” After a normal reply, check the NekoCloud dashboard’s usage records for matching request time, model, and usage/token information. Client cost estimates are not the NekoCloud bill.
- Send “Use only a file-reading tool to read the first few lines of the existing README.md. Return its first line and a one-sentence summary. Do not edit files, run commands, or access the network.” If there is no README.md, choose another existing non-sensitive text file and change the prompt’s path; do not ask the agent to create a file.
- Manually approve that read-only call. Confirm the task trace contains an actual tool name, arguments, and file-reading result, followed by a model answer based on that result. A reply merely claiming to have read the file is not a pass. Check usage records again and verify that the workspace was not modified.
A text reply proves only the chat connection. Matching usage records confirm the request reached the intended account. The tool invocation, tool result, and subsequent model answer must all complete to pass this read-only round trip. If a step fails, stop retrying and retain the request time, model, error code, and redacted request ID rather than repeatedly starting long tasks.
Safety and troubleshooting
Back up existing configuration and merge only the new provider or model entries. Do not replace the whole file or remove other models, rules, tools, or login information. Enter the key itself without a Bearer prefix; REPLACE_WITH_API_KEY is only a placeholder. Never commit real keys, authorization headers, secret-bearing configurations, or sensitive source code to Git, include them in screenshots, or send them to support. Protect local configuration and backup copies too.
For 401 errors, check the active configuration, key, and authentication source. For missing models, check the exact ID and key-group permissions. For 404 errors, check the URL and protocol; avoid duplicate /v1 segments or using a full request path as the base URL. For 429 errors, reduce request frequency according to the response and usage records rather than retrying indefinitely. Do not disable TLS verification, expand execution permissions, or change system network settings to troubleshoot. With Remote SSH, WSL, or containers, ensure configuration and environment variables belong to the host actually running the extension, not just your local terminal.