Spaces:
Running
Running
File size: 9,526 Bytes
4d4f548 6ae39a9 4d4f548 6ae39a9 4d4f548 6ae39a9 4d4f548 6ae39a9 4d4f548 6ae39a9 4d4f548 6ae39a9 4d4f548 6ae39a9 4d4f548 4f73b53 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Coding Agents → Modelflare</title>
<meta name="description" content="Connect Codex, Claude Code, and Gemini CLI to Modelflare. Short steps, env snippets, deep links to official docs." />
<style>
:root {
--bg:#0b1020; --card:#121a2f; --text:#e8ecf7; --muted:#9aa6c2;
--accent:#8b5cf6; --accent2:#ec4899; --border:rgba(255,255,255,.08); --ok:#34d399; --warn:#fbbf24;
}
*{box-sizing:border-box}
body{
margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
background:radial-gradient(1200px 600px at 10% -10%,#2a1850 0%,transparent 50%),
radial-gradient(900px 500px at 100% 0%,#3b0f2e 0%,transparent 45%),var(--bg);
color:var(--text);min-height:100vh;line-height:1.55;
}
.wrap{max-width:880px;margin:0 auto;padding:40px 18px 64px}
.lang{display:flex;gap:8px;margin-bottom:16px}
.lang button{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:6px 12px;cursor:pointer}
.lang button.on{color:#fff;border-color:rgba(139,92,246,.5);background:rgba(139,92,246,.2)}
.badge{display:inline-flex;gap:8px;align-items:center;padding:6px 12px;border-radius:999px;background:rgba(139,92,246,.15);border:1px solid rgba(139,92,246,.35);color:#d6c7ff;font-size:13px;margin-bottom:18px}
h1{font-size:clamp(28px,5vw,40px);line-height:1.15;margin:0 0 12px}
.lead{color:var(--muted);font-size:17px;margin:0 0 24px;max-width:680px}
.cta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
a.btn{display:inline-flex;align-items:center;padding:12px 16px;border-radius:12px;text-decoration:none;font-weight:600}
a.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff}
a.ghost{border:1px solid var(--border);color:var(--text)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:28px}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px}
.card h3{margin:0 0 8px;font-size:16px}
.card p{margin:0;color:var(--muted);font-size:14px}
h2{font-size:18px;margin:28px 0 10px}
h3.sec{font-size:15px;margin:18px 0 8px;color:#d6c7ff}
ol,ul{color:var(--muted);padding-left:1.2em}
ol li,ul li{margin:6px 0}
pre{background:#070b16;border:1px solid var(--border);border-radius:14px;padding:14px 16px;overflow:auto;font-size:12.5px;color:#d7def0;position:relative}
.copy{position:absolute;top:8px;right:8px;font-size:11px;border:1px solid var(--border);background:#121a2f;color:var(--muted);border-radius:8px;padding:4px 8px;cursor:pointer}
.foot{margin-top:24px;color:var(--muted);font-size:13px}
.note{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;color:var(--muted);font-size:14px;margin-top:16px}
.note strong{color:var(--ok)}
.tip{border-left:3px solid var(--warn);padding-left:12px;margin:12px 0;color:var(--muted);font-size:14px}
table{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0 20px}
th,td{border:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top}
th{background:rgba(139,92,246,.12);color:#d6c7ff;font-weight:600}
td{color:var(--muted)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.hidden{display:none}
a{color:#c4b5fd}
</style>
</head>
<body>
<div class="wrap">
<section id="en">
<div class="badge">Coding Agents × Modelflare</div>
<h1>Codex / Claude Code / Gemini CLI → Modelflare</h1>
<p class="lead">One API key, pick the right base URL per client. Short steps and env snippets below; full installers and troubleshooting live in the official docs.</p>
<div class="cta">
<a class="btn primary" href="https://modelflare.dev/?utm_source=huggingface&utm_medium=space&utm_campaign=coding_agents" target="_blank" rel="noopener">Open Console → Get Key</a>
<a class="btn ghost" href="https://docs.modelflare.dev/guides/endpoints/?utm_source=huggingface&utm_medium=space&utm_campaign=coding_agents" target="_blank" rel="noopener">Endpoint picker</a>
<a class="btn ghost" href="https://huggingface.co/spaces/Modelflare/openai-sdk" target="_blank" rel="noopener">OpenAI SDK guide</a>
<a class="btn ghost" href="https://huggingface.co/spaces/Modelflare/start" target="_blank" rel="noopener">Start landing</a>
<a class="btn ghost" href="https://huggingface.co/spaces/Modelflare/blog" target="_blank" rel="noopener">Blog</a>
<a class="btn ghost" href="https://huggingface.co/spaces/Modelflare/api-recipes" target="_blank" rel="noopener">API Recipes</a>
</div>
<div class="tip"><strong>Important:</strong> model ids must be enabled on the key’s <strong>group</strong>. Otherwise you get <code>model_not_found</code> / unauthorized. The live catalog is the console — do not assume sample ids below are enabled for your account.</div>
<h2>1) Codex (Responses API)</h2>
<ol>
<li>Create a key whose group can access <code>gpt-5.6-sol</code> (or another Responses model on your group).</li>
<li>Installer: <code>curl -fsSL https://modelflare.dev/install/codex.sh | sh</code>; or write <code>~/.codex/config.toml</code> + <code>auth.json</code> by hand.</li>
<li><code>base_url</code> must be <code>https://modelflare.dev/v1</code> with <code>wire_api = "responses"</code>.</li>
</ol>
<h3 class="sec">~/.codex/config.toml</h3>
<pre><button class="copy" type="button">Copy</button><code>cli_auth_credentials_store = "file"
model_provider = "modelflare"
model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
disable_response_storage = true
model_supports_reasoning_summaries = true
[model_providers.modelflare]
name = "Modelflare"
base_url = "https://modelflare.dev/v1"
wire_api = "responses"
requires_openai_auth = true</code></pre>
<p>and <code>~/.codex/auth.json</code>:</p>
<pre><button class="copy" type="button">Copy</button><code>{
"auth_mode": "apikey",
"OPENAI_API_KEY": "YOUR_MODELFLARE_API_KEY"
}</code></pre>
<p class="foot">Full guide: <a href="https://docs.modelflare.dev/guides/clients/codex/?utm_source=huggingface&utm_medium=space&utm_campaign=coding_agents" target="_blank" rel="noopener">docs → Codex</a></p>
<h2>2) Claude Code (Anthropic Messages)</h2>
<ol>
<li>Create a key with access to <code>claude-opus-4-8</code> / <code>claude-sonnet-5</code> (or Claude models on your group).</li>
<li>Installer: <code>curl -fsSL https://modelflare.dev/install/claude.sh | sh</code>; or write <code>~/.claude/settings.json</code>.</li>
<li><strong>Note:</strong> <code>ANTHROPIC_BASE_URL</code> is the site origin <code>https://modelflare.dev</code> (<strong>not</strong> <code>/v1</code>). The CLI appends the Messages path.</li>
</ol>
<pre><button class="copy" type="button">Copy</button><code>{
"env": {
"ANTHROPIC_BASE_URL": "https://modelflare.dev",
"ANTHROPIC_AUTH_TOKEN": "YOUR_MODELFLARE_API_KEY",
"ANTHROPIC_MODEL": "claude-opus-4-8",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-8",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-5",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-sonnet-5"
}
}</code></pre>
<p class="foot">Full guide: <a href="https://docs.modelflare.dev/guides/clients/claude-code/?utm_source=huggingface&utm_medium=space&utm_campaign=coding_agents" target="_blank" rel="noopener">docs → Claude Code</a></p>
<h2>3) Gemini CLI (native Gemini)</h2>
<ol>
<li><code>npm install -g @google/gemini-cli@latest</code></li>
<li>Set <code>GEMINI_API_KEY</code> + <code>GOOGLE_GEMINI_BASE_URL=https://modelflare.dev</code></li>
<li><code>gemini --model YOUR_MODEL_ID</code> (pick an id from the console catalog)</li>
</ol>
<pre><button class="copy" type="button">Copy</button><code>export GEMINI_API_KEY="YOUR_MODELFLARE_API_KEY"
export GOOGLE_GEMINI_BASE_URL="https://modelflare.dev"
gemini --model YOUR_MODEL_ID</code></pre>
<p class="foot">Full guide: <a href="https://docs.modelflare.dev/guides/clients/gemini-cli/?utm_source=huggingface&utm_medium=space&utm_campaign=coding_agents" target="_blank" rel="noopener">docs → Gemini CLI</a></p>
<div class="note">
<strong>Prefer the OpenAI SDK?</strong> See
<a href="https://huggingface.co/spaces/Modelflare/openai-sdk">openai-sdk</a> and
<a href="https://huggingface.co/spaces/Modelflare/api-recipes">api-recipes</a>.
Gradio Chat Demo needs HF PRO (upcoming); use console + API for now.
</div>
</section>
</div>
<script>
document.querySelectorAll('pre .copy').forEach(btn=>{
btn.addEventListener('click',async()=>{
const code=btn.parentElement.querySelector('code').innerText;
try{await navigator.clipboard.writeText(code);const t=btn.textContent;btn.textContent='Copied';setTimeout(()=>btn.textContent=t,1200)}catch(_){}
});
});
</script>
</body>
</html>
|