<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ZeroShell</title>
    <description>The latest articles on DEV Community by ZeroShell (@zeroshell).</description>
    <link>https://dev.to/zeroshell</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4226651%2F6babefff-f166-4ef0-a5a2-9f4bf32b9f54.jpg</url>
      <title>DEV Community: ZeroShell</title>
      <link>https://dev.to/zeroshell</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeroshell"/>
    <language>en</language>
    <item>
      <title>One API Key for Claude, GPT-5, and Gemini — A Practical Relay Setup for Cursor, ChatBox, and Claude Code</title>
      <dc:creator>ZeroShell</dc:creator>
      <pubDate>Thu, 05 Nov 2026 03:18:14 +0000</pubDate>
      <link>https://dev.to/zeroshell/one-api-key-for-claude-gpt-5-and-gemini-a-practical-relay-setup-for-cursor-chatbox-and-claude-4cme</link>
      <guid>https://dev.to/zeroshell/one-api-key-for-claude-gpt-5-and-gemini-a-practical-relay-setup-for-cursor-chatbox-and-claude-4cme</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I run ZeroShell, the relay used in this article. Everything below — prices, model lists, the group pitfall — is verifiable on the public pages linked at the end.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Most developers I know keep three or four separate API accounts: one for Claude, one for GPT, one for Gemini, plus a DeepSeek key for cheap experiments. Four balances, four dashboards, four chances to run dry mid-task.&lt;/p&gt;

&lt;p&gt;A relay endpoint collapses that into one account. This is the setup I give people who ask, including the one mistake that wastes everyone's first ten minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The endpoint
&lt;/h2&gt;

&lt;p&gt;ZeroShell is an OpenAI-compatible relay:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://zeroshell.top/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Anthropic-compatible base: &lt;code&gt;https://zeroshell.top&lt;/code&gt; (native &lt;code&gt;/v1/messages&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;46 models across Claude, GPT-5, Gemini, DeepSeek, Grok, Kimi, Qwen, and GLM families, all on one balance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The pitfall: model catalogs are per-group
&lt;/h2&gt;

&lt;p&gt;This is the part that bites. On ZeroShell, API keys belong to a &lt;strong&gt;group&lt;/strong&gt;, and each group sees a different model catalog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The budget group sees 27 models: DeepSeek, GLM, GPT, Grok, Kimi, Qwen — &lt;strong&gt;no Claude&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The official and stable groups carry the Claude lineup (22 models in the official group).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you create a budget-group key and ask for &lt;code&gt;claude-sonnet-4-6&lt;/code&gt;, you'll get a "model not found" error that looks exactly like a typo. It isn't. Check which group your key is in before you debug anything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs
&lt;/h2&gt;

&lt;p&gt;All prices are public (no login needed) and listed per million tokens. A few current examples:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;gpt-5.6-luna&lt;/td&gt;
&lt;td&gt;¥0.075&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-5.6-sol&lt;/td&gt;
&lt;td&gt;¥0.375&lt;/td&gt;
&lt;td&gt;¥2.25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;claude-sonnet-4-6&lt;/td&gt;
&lt;td&gt;¥2.025&lt;/td&gt;
&lt;td&gt;¥10.125&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gemini-3.1-pro-preview&lt;/td&gt;
&lt;td&gt;¥0.75&lt;/td&gt;
&lt;td&gt;¥4.5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Top-ups are 1:1 — ¥1 buys $1 of quota — with a ¥1 minimum. New accounts get ¥1 of credit after email verification, and an invite link gives ¥1 to both sides, so you can verify your whole toolchain before spending anything.&lt;/p&gt;

&lt;p&gt;Two honest caveats:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Top-ups are Alipay-only right now.&lt;/strong&gt; If you can't use Alipay, this station isn't practical for you yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relay ≠ official.&lt;/strong&gt; You're trusting an operator with routing and billing. Judge any relay — this one included — by whether prices are public, whether you can start with a tiny top-up, and whether the models behave like the real thing on your own test prompts.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Point your tools at it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cursor&lt;/strong&gt; — Settings → Models: add your ZeroShell key as the OpenAI API key and override the OpenAI base URL with &lt;code&gt;https://zeroshell.top/v1&lt;/code&gt;. Pick a model your key's group actually contains (see the pitfall above).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatBox / any OpenAI-compatible client&lt;/strong&gt; — choose the OpenAI API provider, set the API host to &lt;code&gt;https://zeroshell.top&lt;/code&gt;, path &lt;code&gt;/v1&lt;/code&gt;, and paste your key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; — create an official-group (or stable-group) key, then set ANTHROPIC_BASE_URL=&lt;a href="https://zeroshell.top" rel="noopener noreferrer"&gt;https://zeroshell.top&lt;/a&gt; and ANTHROPIC_API_KEY to your key. Claude models answer over the native Messages API, so Claude Code works unmodified. I run my own local Claude Code through this exact setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify before you commit
&lt;/h2&gt;

&lt;p&gt;The workflow I'd recommend with any relay:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign up, take the free ¥1 credit.&lt;/li&gt;
&lt;li&gt;Run three prompts you know well — one reasoning, one coding, one long-context — and compare against what you expect from the genuine model.&lt;/li&gt;
&lt;li&gt;Top up the minimum (¥1) only after the outputs check out.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If a relay is going to water models down or disappear, small tests and small top-ups are how you find out cheaply.&lt;/p&gt;

&lt;p&gt;Links: zeroshell.top · public pricing at zeroshell.top/pricing · questions: &lt;a href="mailto:support@zeroshell.top"&gt;support@zeroshell.top&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>claudecode</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Run Claude Code on a Relay Endpoint: Setup, the Model-Catalog Pitfall, and What It Actually Costs</title>
      <dc:creator>ZeroShell</dc:creator>
      <pubDate>Wed, 04 Nov 2026 15:52:16 +0000</pubDate>
      <link>https://dev.to/zeroshell/run-claude-code-on-a-relay-endpoint-setup-the-model-catalog-pitfall-and-what-it-actually-costs-7ii</link>
      <guid>https://dev.to/zeroshell/run-claude-code-on-a-relay-endpoint-setup-the-model-catalog-pitfall-and-what-it-actually-costs-7ii</guid>
      <description>&lt;p&gt;Most AI coding tools speak one of two dialects: the OpenAI chat-completions format, or Anthropic's Messages format. If you want to run those tools against a third-party relay endpoint instead of a first-party account — for cost reasons, payment reasons, or because one key should cover several model families — the setup is short. The part that wastes people's time is a catalog mismatch that produces a confusing &lt;code&gt;model_not_found&lt;/code&gt; error. This guide covers the configuration, that pitfall, and a cost breakdown with real listed prices, using one relay (ZeroShell, which I operate — disclosure at the end) as the worked example. The steps generalize to any OpenAI-compatible relay.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two endpoints you need to know
&lt;/h2&gt;

&lt;p&gt;A relay typically exposes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/chat/completions&lt;/code&gt; — the OpenAI-compatible endpoint. Base URL form: &lt;code&gt;https://zeroshell.top/v1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;POST /v1/messages&lt;/code&gt; — the Anthropic-native endpoint. This is the one Claude Code actually requires.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That second endpoint is the real compatibility test. Plenty of relays advertise "Claude support" but only translate OpenAI-format requests; Claude Code sends Anthropic-format requests and fails against those. Before paying anything, verify the relay documents and serves &lt;code&gt;/v1/messages&lt;/code&gt;. On ZeroShell both formats are served, and both have been exercised with live requests — Claude models respond over the OpenAI format and over &lt;code&gt;/v1/messages&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Code configuration
&lt;/h2&gt;

&lt;p&gt;Claude Code reads its endpoint from environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;https://zeroshell.top
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;your key&amp;gt;
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note the base URL has no &lt;code&gt;/v1&lt;/code&gt; suffix here — Claude Code appends &lt;code&gt;/v1/messages&lt;/code&gt; itself. Model names come from the relay's own catalog, for example &lt;code&gt;claude-sonnet-4-5&lt;/code&gt;, so copy them from the relay's model list rather than typing from memory; a wrong suffix is the most common self-inflicted error.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pitfall: one account, several catalogs
&lt;/h2&gt;

&lt;p&gt;Here is the part most relay documentation glosses over. On ZeroShell, an API key belongs to a &lt;strong&gt;group&lt;/strong&gt;, and each group has its own model catalog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;low-cost group&lt;/strong&gt; key sees 27 models: DeepSeek, GLM, GPT, Grok, Kimi, and Qwen families. No Claude models at all.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;official group&lt;/strong&gt; key sees 22 models, including the full Claude lineup.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The site advertises 46 models — that figure is the aggregate across all groups, not what any single key can call. If you create a low-cost key and point Claude Code at it, every request returns &lt;code&gt;model_not_found&lt;/code&gt;, and the error message blames the model rather than your key's group. The fix takes thirty seconds (create a key in the correct group), but only once you know groups exist. One account can hold keys in several groups, and the balance is shared, so the practical setup is: an official-group key for Claude Code, a low-cost key for bulk OpenAI-format work.&lt;/p&gt;

&lt;p&gt;When evaluating any relay, ask this question first: &lt;em&gt;is the advertised model count per-key or per-account?&lt;/em&gt; The answer determines whether your first integration attempt works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Other OpenAI-compatible tools
&lt;/h2&gt;

&lt;p&gt;For tools like Continue, Aider (in OpenAI mode), or chat clients such as Cherry Studio and NextChat, configuration is the standard trio:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base URL: &lt;code&gt;https://zeroshell.top/v1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;API key: a key from the group that contains your model&lt;/li&gt;
&lt;li&gt;Model: the exact catalog name, copied, not recalled&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A 30-second smoke test before wiring up any tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://zeroshell.top/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &amp;lt;your key&amp;gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"model":"gpt-5-mini","messages":[{"role":"user","content":"ping"}]}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If this returns a completion, every OpenAI-compatible client will work. If it returns a model error, suspect the group/catalog mismatch above before suspecting the endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs
&lt;/h2&gt;

&lt;p&gt;Relay pricing is per million tokens, published on the pricing page. Current listed prices:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input / 1M&lt;/th&gt;
&lt;th&gt;Output / 1M&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;gpt-5-nano&lt;/td&gt;
&lt;td&gt;$0.03&lt;/td&gt;
&lt;td&gt;$0.24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gpt-5-mini&lt;/td&gt;
&lt;td&gt;$0.25&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gemini-2.5-pro&lt;/td&gt;
&lt;td&gt;$1.25&lt;/td&gt;
&lt;td&gt;$10.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;claude-sonnet-4-5&lt;/td&gt;
&lt;td&gt;$3.00&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Worked example: a heavy personal month of 20M input and 5M output tokens costs $19.25 on gpt-5-mini, $85 on gemini-2.5-pro, and $135 on claude-sonnet-4-5. That spread is exactly why the group system exists — route summarization and boilerplate to the cheap catalog, and reserve the Claude catalog for work where its output quality earns the difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started and honest limits
&lt;/h2&gt;

&lt;p&gt;Signup is a username, a password, and an email verification code — about a minute — and new accounts receive ¥1 of credit, which is enough to run every step in this guide. Top-ups are Alipay only, starting at $1, with ¥1 = $1 of quota; invites give ¥1 to both sides. Two limits worth stating plainly: there is no card or PayPal payment yet, so this suits users who can pay with Alipay; and it is a small, new service, so treat the free credit as a way to verify your own workflow before committing real volume. Questions and failure reports go to &lt;a href="mailto:support@zeroshell.top"&gt;support@zeroshell.top&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I operate ZeroShell. Every price and behavior above is from the public pricing page and documented, tested endpoint behavior as of November 2026; check the pricing page for current figures.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
