Roo Code was shut down: move your Router One setup to Cline, Zoo Code or Kilo Code
Roo Code, the VS Code coding agent that began as a fork of Cline, was shut down on May 15, 2026. Its sunset notice covers the VS Code extension, Roo Code Cloud and Roo Code Router; the GitHub repository was archived the same day, and 3.54.0 is the final release. The notice recommends Cline, and the archived README points to Cline and to Zoo Code, a fork started by the Roo Code community. Your Router One values don't change when you move: the base URL https://api.router.one/v1, a key from your dashboard and an exact model ID from /models go into the successor's OpenAI Compatible provider the same way. This page walks through the move to Cline, Zoo Code or Kilo Code, then keeps the 3.54.0 setup for installations that still run it. Checked against Roo Code 3.54.0, Zoo Code 3.84.0 and Cline 4.1.21 on 2026-09-27, and re-checked on 2026-10-09 against Zoo Code 3.86.0 (October 3, 2026) and Cline 4.1.23, whose release notes list no change to the provider fields used here.
Move to Cline: the officially recommended successor
Roo Code's sunset notice recommends Cline, the project Roo Code was forked from, and the provider setup is nearly identical. Install Cline from the VS Code Marketplace (it also ships for Cursor, Windsurf, VSCodium, Antigravity, JetBrains IDEs and as a CLI), open its panel, click the gear icon and choose OpenAI Compatible under API Provider. Enter the same three values you used in Roo Code: Base URL https://api.router.one/v1, your API key, and the model ID. Cline fills its Model ID dropdown from the gateway's /models list once the key is saved, and Use custom model ID… takes an exact catalog ID by hand. Two settings need attention after the move. Cline assumes a 128,000-token context window and image support for every OpenAI Compatible model until you set them under Model Configuration, as Roo Code did. The Cline guide covers both, plus the CLI and Plan and Act models.
Move to Zoo Code: import your Roo Code settings
Zoo Code is the community fork the Roo Code README points to, and it can import Roo Code's settings. In Roo Code, open the settings and click Export, then save the file. In Zoo Code, click Import Settings and select that file. Zoo Code's migration guide warns that the exported file can include sensitive settings, including API keys, so store it carefully and don't share it; delete it once the import has worked. If the file was ever copied somewhere you don't control, create a new Router One key, update Zoo Code with it and revoke the old key. Zoo Code's OpenAI Compatible provider has the same fields, Base URL, API Key, Model and Model Configuration, and like Roo Code it works with native tool calling only, so choose model IDs whose page on /models lists tool calling. This page was checked against Zoo Code 3.84.0 (September 26, 2026) and re-checked against 3.86.0 (October 3, 2026); Zoo Code publishes its stable releases on GitHub.
Move to Kilo Code: the same values in a custom provider
Kilo Code grew out of the same Roo Code and Cline lineage and bills through the provider you configure. Open its settings (gear icon) → Providers, click Custom provider, set Provider API to OpenAI Compatible, and enter https://api.router.one/v1 and your key; Kilo Code then fetches the model list from the gateway, or takes an exact ID from /models by hand. Kilo Code also keeps a default model for each of its agents, such as code, plan (the old Architect mode) and debug, so mode-specific models from Roo Code have a direct counterpart there. The Kilo Code guide has the full walkthrough, and Kilo publishes its own Roo Code migration article.
Still on Roo Code 3.54.0? The frozen setup
The final 3.54.0 build still installs from the VS Code Marketplace, but it receives no further updates, fixes or new model support, so treat this as a reference for an existing installation rather than a new setup. In Roo Code, open the settings (gear icon) and choose OpenAI Compatible under API Provider. Base URL is https://api.router.one/v1, and the key goes into the API key field. The Model dropdown is filled from GET {Base URL}/models, sent with your key, so it appears once the key is saved and lists every catalog ID, image-generation models included; pick a chat model whose page lists tool calling. Under Model Configuration, Roo Code assumes a 128,000-token Context Window Size and Image Support switched on for any custom model. Set the window from the model page, written as a whole number and rounded down (1.05M becomes 1000000, 200K becomes 200000), and untick Image Support for text-only IDs such as deepseek-v4-flash:
- Base URL
- https://api.router.one/v1
# Roo Code 3.54.0 (final release) → Settings → API Provider: OpenAI Compatible # The same three values work in Cline, Zoo Code and Kilo Code Base URL: https://api.router.one/v1 API Key: sk-your-router-one-key Model: anthropic/claude-sonnet-5 (any chat ID from /models that lists tool calling) # Model Configuration Context Window Size: 1000000 (the model page's window as a whole number; default 128000) Image Support: off for text-only IDs such as deepseek-v4-flash
What Roo Code 3.54.0 sends to the gateway
Each model turn is one POST /v1/chat/completions with stream set to true and stream usage requested, Roo Code's native tool definitions with parallel tool calls allowed, and temperature 0 unless you set a custom temperature. Roo Code sends an output limit, as max_completion_tokens, only when Include max output tokens is saved as on; your key's maxSpend is the spending limit either way. Requests time out after 600 seconds by default (the roo-cline.apiRequestTimeout setting). Roo Code uses native tool calling exclusively, with no fallback to XML-formatted tools, so the model has to accept tool definitions. If the gateway returns HTTP 400 with "has no chat candidate that supports requested capabilities: tool_calling", switch to an ID whose model page lists tool calling; "…: vision" after pasting a screenshot means Image Support is ticked for a text-only model. Roo Code's Anthropic provider is not an alternative path: it replaces a model ID it doesn't recognize, such as anthropic/claude-sonnet-5, with its own default model.
Which successor fits which Roo Code user
| If you relied on… | Consider | Why |
|---|---|---|
| A maintained extension with the same provider fields | Cline | Roo Code's sunset notice recommends it; OpenAI Compatible takes the same Base URL, key and model ID, and it adds a CLI |
| Your exact Roo Code settings, modes included | Zoo Code | Community fork that imports Roo Code's settings export; native tool calling only, like Roo Code |
| A default model per agent (code, ask, plan, debug) | Kilo Code | Same lineage; custom OpenAI Compatible provider fetches the model list from the gateway |
Which model ID should Roo Code send?
Copy the exact model ID from /models, preserving case, hyphens, and version suffixes; do not substitute a display name. Open its detail page and match the supported API endpoints, context window, and capabilities such as tool calling to the provider and features selected in Roo Code. A catalog listing does not mean the client can use every feature of that model. Give each client or application a dedicated API key with a maxSpend cap.
Which API protocol is Roo Code using?
OpenAI-compatible describes an interface format; it does not make Chat Completions (/v1/chat/completions), Responses (/v1/responses), and Anthropic Messages (/v1/messages) interchangeable. Check the installed client version, provider configuration, and actual request path against the model detail page and API compatibility fact sheet. A successful plain-text chat does not establish support for hosted tools, conversation state, or file-editing features.
Verify the Roo Code call in your request trace
Send a simple text request from Roo Code, then match its trace in Dashboard → Logs by time, model, and request_id: tokens, cost, latency, and status. Next, test streaming, tool calls, and multi-turn history separately. For failures, retain the actual request path, full error message, and request_id. If there is no matching log, either the request never reached the gateway (client configuration or connectivity) or the gateway refused it before calling a model — a 401 for the key, a 402 for funds, a 429 from your key's or account's limits, or a 400 or 404 for the model ID or endpoint; a streamed request that failed before any output may have no log either. The status and error message the client received tell which, so check them before attributing the error to the gateway or upstream.
FAQ
Roo Code was shut down. Does my Router One configuration still work?
Nothing changed on Router One's side: the base URL https://api.router.one/v1, your key and the catalog model IDs work the same in any OpenAI-compatible client. On Roo Code's side, the final 3.54.0 build still installs, but it receives no further updates, fixes or new model support, and the repository is archived. Moving to a maintained successor is the safer path, and the three values you already have carry over unchanged to Cline, Zoo Code or Kilo Code.
How do I move my Roo Code settings to Zoo Code?
Export them from Roo Code (settings → Export, then save the file) and import that file in Zoo Code with Import Settings. The exported file can include API keys, so keep it private and delete it after the import. If you are unsure where the file has been, create a new Router One key, enter it in Zoo Code and revoke the old one from the dashboard.
Which successor should I pick?
Cline if you want the successor Roo Code's own notice recommends, with a CLI alongside the extension. Zoo Code if you want to keep Roo Code's settings as they are, since it imports Roo Code's export. Kilo Code if you want a default model per agent. All three take the same Router One values, so you can try one with a separate key and a maxSpend cap and compare the costs in Dashboard → Logs before you switch fully.
Why is the model dropdown empty, or full of image models?
Roo Code, Cline and Kilo Code all fill the dropdown from GET https://api.router.one/v1/models, and Router One answers that call only when a key is sent, so the list stays empty until the key is saved. The list contains every catalog ID, image-generation models included, and those can't serve agent turns. Pick a chat model whose page on /models lists tool calling, or type the exact ID by hand.
Why do some models fail with a tool-calling error?
Roo Code 3.54.0 and Zoo Code use native tool calling only, and Cline works through tool calls too, so the model must accept tool definitions. When no candidate for the requested ID supports them, the gateway answers HTTP 400 with "model '<id>' has no chat candidate that supports requested capabilities: tool_calling". Prefer IDs whose model page lists tool calling; for other IDs, test one tool call first.
Can I use Roo Code's Anthropic provider for Claude models?
No. Roo Code's Anthropic provider replaces a model ID it doesn't recognize, anthropic/claude-sonnet-5 included, with its own default model, so the catalog ID never reaches the gateway. Use the OpenAI Compatible provider, which serves the Claude family on /v1/chat/completions along with every other chat model.
Why does the conversation get condensed around 128K tokens?
Roo Code, like Cline, assumes a 128,000-token context window for any custom model until you enter one. Set Context Window Size under Model Configuration to the model page's window as a whole number, rounded down, for example 1000000 for anthropic/claude-sonnet-5 or 200000 for anthropic/claude-haiku-4.5.
Which models can Roo Code use through the gateway?
Choose a current catalog model that supports both the endpoint and the features Roo Code uses. Check /models and the model detail page for the exact ID, current rates, and capabilities; a family name such as GPT or Claude is not a compatibility guarantee. A client that lists a model has only read the ID, from its own configuration or from GET /v1/models; verify an actual request too.
Models are listed, but requests fail with 400 or 404. What should I check?
Record the actual request path and error message, then check the exact model ID. A 400 can indicate invalid parameters, unsupported tools, or a model/endpoint mismatch; a 404 can indicate an incorrect path or missing resource, so it does not by itself establish that a model was retired. If the error says must be called via, use the named endpoint or select a model supported on the current endpoint. Do not add or remove /v1 or /chat/completions across all clients indiscriminately.
Does this work from Mainland China?
Yes. The gateway is reachable from Mainland China without a VPN, and the configuration is identical to the global setup.
How do I debug a 401/402/403/429?
Start from what your client received: the status, the error body and the X-Request-ID header. A 401 (missing, unknown, revoked or expired key), a 402 (wallet balance, or the key's maxSpend cap) and a 429 from your key's or account's rate limits are refused before any model is called, so they never appear in Dashboard → Logs — nor does a 400 or 404 for a wrong model ID or endpoint. For 401, check that the full key is sent and still active in Dashboard → API Keys; for 402, top up or raise the key's maxSpend; for a 403, keep the full error body. For 429, back off and retry later; a 429 that does show up in Logs came back from upstream after the gateway's retries. Keep the request_id and follow the error-codes reference.