CmdForge/reference/providers/index.html

159 lines
50 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-reference/providers" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Provider Setup Guide | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/reference/providers/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Provider Setup Guide | CmdForge"><meta data-rh="true" name="description" content="CmdForge works with any AI CLI tool that accepts input via stdin or arguments. This guide covers setup for the most popular providers."><meta data-rh="true" property="og:description" content="CmdForge works with any AI CLI tool that accepts input via stdin or arguments. This guide covers setup for the most popular providers."><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/reference/providers/"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/reference/providers/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/reference/providers/" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Reference","item":"https://pages.brrd.tech/rob/CmdForge/category/reference"},{"@type":"ListItem","position":2,"name":"Provider Setup","item":"https://pages.brrd.tech/rob/CmdForge/reference/providers"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.37cb0314.css">
<script src="/rob/CmdForge/assets/js/runtime~main.97cd58b2.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.ff45e93b.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/rob/CmdForge/"><b class="navbar__title text--truncate">CmdForge</b></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://gitea.brrd.tech/rob/CmdForge" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Source Code<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/"><span title="CmdForge Overview" class="linkLabel_WmDU">CmdForge Overview</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/architecture/"><span title="CmdForge Architecture" class="linkLabel_WmDU">CmdForge Architecture</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href="/rob/CmdForge/category/reference/"><span title="Reference" class="categoryLinkLabel_W154">Reference</span></a><button aria-label="Collapse sidebar category &#x27;Reference&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/rob/CmdForge/reference/providers/"><span title="Provider Setup" class="linkLabel_WmDU">Provider Setup</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/rob/CmdForge/reference/registry-spec/"><span title="Registry API" class="linkLabel_WmDU">Registry API</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/rob/CmdForge/reference/meta-tools/"><span title="Meta-Tools" class="linkLabel_WmDU">Meta-Tools</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/rob/CmdForge/reference/collections/"><span title="Collections" class="linkLabel_WmDU">Collections</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/rob/CmdForge/reference/examples/"><span title="Example Tools" class="linkLabel_WmDU">Example Tools</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/rob/CmdForge/reference/design/"><span title="Design Philosophy" class="linkLabel_WmDU">Design Philosophy</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/rob/CmdForge/reference/web-ui-spec/"><span title="Web UI Design" class="linkLabel_WmDU">Web UI Design</span></a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/todos/"><span title="CmdForge TODOs" class="linkLabel_WmDU">CmdForge TODOs</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/goals/"><span title="Goals" class="linkLabel_WmDU">Goals</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/ideas-and-exploration/"><span title="Ideas &amp; Exploration" class="linkLabel_WmDU">Ideas &amp; Exploration</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/milestones/"><span title="Milestones" class="linkLabel_WmDU">Milestones</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/rob/CmdForge/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/rob/CmdForge/category/reference/"><span>Reference</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Provider Setup</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Provider Setup Guide</h1></header>
<p>CmdForge works with any AI CLI tool that accepts input via stdin or arguments. This guide covers setup for the most popular providers.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-comparison">Provider Comparison<a href="#provider-comparison" class="hash-link" aria-label="Direct link to Provider Comparison" title="Direct link to Provider Comparison" translate="no"></a></h2>
<p>We profiled 12 providers with a 4-task benchmark (Math, Code, Reasoning, Data Extraction):</p>
<table><thead><tr><th>Provider</th><th>Speed</th><th>Score</th><th>Cost</th><th>Best For</th></tr></thead><tbody><tr><td><strong>opencode-deepseek</strong></td><td>13s</td><td>4/4</td><td>~$0.28/M tokens</td><td><strong>Best value</strong> - daily driver</td></tr><tr><td><strong>opencode-pickle</strong></td><td>13s</td><td>4/4</td><td>FREE</td><td><strong>Best free</strong> - accurate</td></tr><tr><td><strong>claude-haiku</strong></td><td>14s</td><td>4/4</td><td>~$0.25/M tokens</td><td>Fast + high quality</td></tr><tr><td><strong>codex</strong></td><td>14s</td><td>4/4</td><td>~$1.25/M tokens</td><td>Reliable, auto-routes</td></tr><tr><td><strong>claude</strong></td><td>18s</td><td>4/4</td><td>Varies</td><td>Auto-routes to best</td></tr><tr><td><strong>claude-opus</strong></td><td>18s</td><td>4/4</td><td>~$15/M tokens</td><td>Highest quality</td></tr><tr><td><strong>claude-sonnet</strong></td><td>21s</td><td>4/4</td><td>~$3/M tokens</td><td>Balanced</td></tr><tr><td><strong>opencode-nano</strong></td><td>24s</td><td>4/4</td><td>Paid</td><td>GPT-5 Nano</td></tr><tr><td><strong>gemini-flash</strong></td><td>28s</td><td>4/4</td><td>~$0.075/M tokens</td><td>Google, faster</td></tr><tr><td><strong>opencode-reasoner</strong></td><td>33s</td><td>4/4</td><td>~$0.28/M tokens</td><td>Complex reasoning</td></tr><tr><td><strong>gemini</strong></td><td>91s</td><td>3/4</td><td>~$1.25/M tokens</td><td>1M token context</td></tr><tr><td><strong>opencode-grok</strong></td><td>11s</td><td>2/4</td><td>FREE</td><td>Fastest but unreliable</td></tr></tbody></table>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="recommendations">Recommendations<a href="#recommendations" class="hash-link" aria-label="Direct link to Recommendations" title="Direct link to Recommendations" translate="no"></a></h3>
<ul>
<li class=""><strong>Daily use:</strong> <code>opencode-deepseek</code> or <code>opencode-pickle</code> (free)</li>
<li class=""><strong>Quality work:</strong> <code>claude-haiku</code> or <code>claude-opus</code></li>
<li class=""><strong>Complex reasoning:</strong> <code>opencode-reasoner</code></li>
<li class=""><strong>Large documents:</strong> <code>gemini</code> (1M token context window)</li>
<li class=""><strong>Budget:</strong> <code>opencode-pickle</code> (free) or <code>opencode-deepseek</code> (cheap)</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-setup">Provider Setup<a href="#provider-setup" class="hash-link" aria-label="Direct link to Provider Setup" title="Direct link to Provider Setup" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="opencode-recommended">OpenCode (Recommended)<a href="#opencode-recommended" class="hash-link" aria-label="Direct link to OpenCode (Recommended)" title="Direct link to OpenCode (Recommended)" translate="no"></a></h3>
<p>OpenCode provides access to multiple models including free options.</p>
<p><strong>Install:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">curl -fsSL https://opencode.ai/install | bash</span><br></span></code></pre></div></div>
<p><strong>Authenticate:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">~/.opencode/bin/opencode auth</span><br></span></code></pre></div></div>
<p><strong>Available Models:</strong></p>
<table><thead><tr><th>Provider Name</th><th>Model</th><th>Cost</th></tr></thead><tbody><tr><td><code>opencode-deepseek</code></td><td>deepseek-chat</td><td>Cheap</td></tr><tr><td><code>opencode-pickle</code></td><td>big-pickle</td><td>FREE</td></tr><tr><td><code>opencode-grok</code></td><td>grok-code</td><td>FREE</td></tr><tr><td><code>opencode-nano</code></td><td>gpt-5-nano</td><td>Paid</td></tr><tr><td><code>opencode-reasoner</code></td><td>deepseek-reasoner</td><td>Cheap</td></tr></tbody></table>
<p><strong>Test:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">echo &quot;Hello&quot; | ~/.opencode/bin/opencode run --model opencode/big-pickle</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="claude-cli">Claude CLI<a href="#claude-cli" class="hash-link" aria-label="Direct link to Claude CLI" title="Direct link to Claude CLI" translate="no"></a></h3>
<p>Anthropic&#x27;s official CLI for Claude models.</p>
<p><strong>Install:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">npm install -g @anthropic-ai/claude-code</span><br></span></code></pre></div></div>
<p><strong>Authenticate:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">claude # Opens browser for sign-in (auto-saves auth tokens)</span><br></span></code></pre></div></div>
<p><strong>Available Models:</strong></p>
<table><thead><tr><th>Provider Name</th><th>Model</th><th>Cost</th></tr></thead><tbody><tr><td><code>claude</code></td><td>Auto-routes</td><td>Varies</td></tr><tr><td><code>claude-haiku</code></td><td>Haiku 4.5</td><td>Cheap</td></tr><tr><td><code>claude-sonnet</code></td><td>Sonnet 4.5</td><td>Medium</td></tr><tr><td><code>claude-opus</code></td><td>Opus 4.5</td><td>Expensive</td></tr></tbody></table>
<p><strong>Test:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">echo &quot;Hello&quot; | claude -p</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="codex-openai">Codex (OpenAI)<a href="#codex-openai" class="hash-link" aria-label="Direct link to Codex (OpenAI)" title="Direct link to Codex (OpenAI)" translate="no"></a></h3>
<p>OpenAI&#x27;s Codex CLI with auto-routing.</p>
<p><strong>Install:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">npm install -g @openai/codex</span><br></span></code></pre></div></div>
<p><strong>Authenticate:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">codex # Opens browser for sign-in (auto-saves auth tokens)</span><br></span></code></pre></div></div>
<p><strong>Test:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">echo &quot;Hello&quot; | codex exec -</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="gemini">Gemini<a href="#gemini" class="hash-link" aria-label="Direct link to Gemini" title="Direct link to Gemini" translate="no"></a></h3>
<p>Google&#x27;s Gemini models. Best for large context (1M tokens).</p>
<p><strong>Install:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">npm install -g @google/gemini-cli</span><br></span></code></pre></div></div>
<p><strong>Authenticate:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">gemini # Opens browser for Google sign-in</span><br></span></code></pre></div></div>
<p><strong>Available Models:</strong></p>
<table><thead><tr><th>Provider Name</th><th>Model</th><th>Notes</th></tr></thead><tbody><tr><td><code>gemini</code></td><td>gemini-2.5-pro</td><td>Quality, slow CLI</td></tr><tr><td><code>gemini-flash</code></td><td>gemini-2.5-flash</td><td>Faster</td></tr></tbody></table>
<p><strong>Note:</strong> Gemini CLI has known performance issues. Use <code>gemini-flash</code> for interactive tasks, <code>gemini</code> for large documents.</p>
<p><strong>Test:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">echo &quot;Hello&quot; | gemini --model gemini-2.5-flash</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="managing-providers">Managing Providers<a href="#managing-providers" class="hash-link" aria-label="Direct link to Managing Providers" title="Direct link to Managing Providers" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="interactive-installation-recommended">Interactive Installation (Recommended)<a href="#interactive-installation-recommended" class="hash-link" aria-label="Direct link to Interactive Installation (Recommended)" title="Direct link to Interactive Installation (Recommended)" translate="no"></a></h3>
<p>The easiest way to install providers:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cmdforge providers install</span><br></span></code></pre></div></div>
<p>This interactive guide:</p>
<ul>
<li class="">Shows available AI providers with costs</li>
<li class="">Runs the installation command</li>
<li class="">Updates PATH automatically</li>
<li class="">Shows next steps for authentication</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="list-providers">List Providers<a href="#list-providers" class="hash-link" aria-label="Direct link to List Providers" title="Direct link to List Providers" translate="no"></a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cmdforge providers list</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="check-availability">Check Availability<a href="#check-availability" class="hash-link" aria-label="Direct link to Check Availability" title="Direct link to Check Availability" translate="no"></a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cmdforge providers check</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-custom-provider">Add Custom Provider<a href="#add-custom-provider" class="hash-link" aria-label="Direct link to Add Custom Provider" title="Direct link to Add Custom Provider" translate="no"></a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">cmdforge providers add myname &quot;my-command --args&quot; -d &quot;Description&quot;</span><br></span></code></pre></div></div>
<p>Or edit <code>~/.cmdforge/providers.yaml</code>:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">providers</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">custom</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">ai</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">tool </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">prompt</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">description</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> My custom AI tool</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-command-format">Provider Command Format<a href="#provider-command-format" class="hash-link" aria-label="Direct link to Provider Command Format" title="Direct link to Provider Command Format" translate="no"></a></h3>
<p>The command should:</p>
<ol>
<li class="">Accept input via stdin</li>
<li class="">Output response to stdout</li>
<li class="">Exit 0 on success</li>
</ol>
<p>Example commands:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Claude</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">claude -p</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># OpenCode</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">$HOME/.opencode/bin/opencode run --model deepseek/deepseek-chat</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Gemini</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">gemini --model gemini-2.5-flash</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Codex</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">codex exec -</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Custom (any tool that reads stdin)</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">my-tool --input -</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="using-providers-in-tools">Using Providers in Tools<a href="#using-providers-in-tools" class="hash-link" aria-label="Direct link to Using Providers in Tools" title="Direct link to Using Providers in Tools" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="in-tool-config">In Tool Config<a href="#in-tool-config" class="hash-link" aria-label="Direct link to In Tool Config" title="Direct link to In Tool Config" translate="no"></a></h3>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">steps</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token key atrule">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> prompt</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">prompt</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Summarize: {input}&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">provider</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> opencode</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">pickle </span><span class="token comment" style="color:rgb(98, 114, 164)"># Use this provider</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">output_var</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> response</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="override-at-runtime">Override at Runtime<a href="#override-at-runtime" class="hash-link" aria-label="Direct link to Override at Runtime" title="Direct link to Override at Runtime" translate="no"></a></h3>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Use a different provider for this run</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">cat file.txt | summarize --provider claude-opus</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-selection-strategy">Provider Selection Strategy<a href="#provider-selection-strategy" class="hash-link" aria-label="Direct link to Provider Selection Strategy" title="Direct link to Provider Selection Strategy" translate="no"></a></h3>
<ol>
<li class=""><strong>Tool default</strong> - Set in tool&#x27;s config.yaml</li>
<li class=""><strong>Runtime override</strong> - <code>--provider</code> flag</li>
<li class=""><strong>Cost optimization</strong> - Use cheap providers for simple tasks</li>
<li class=""><strong>Quality needs</strong> - Use opus/sonnet for important work</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="troubleshooting">Troubleshooting<a href="#troubleshooting" class="hash-link" aria-label="Direct link to Troubleshooting" title="Direct link to Troubleshooting" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="provider-x-not-found">&quot;Provider &#x27;X&#x27; not found&quot;<a href="#provider-x-not-found" class="hash-link" aria-label="Direct link to &quot;Provider &#x27;X&#x27; not found&quot;" title="Direct link to &quot;Provider &#x27;X&#x27; not found&quot;" translate="no"></a></h3>
<ol>
<li class="">Check it&#x27;s in your providers list: <code>cmdforge providers</code></li>
<li class="">Verify the command works: <code>echo &quot;test&quot; | &lt;command&gt;</code></li>
<li class="">Add it: <code>cmdforge providers add</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="command-x-not-found">&quot;Command &#x27;X&#x27; not found&quot;<a href="#command-x-not-found" class="hash-link" aria-label="Direct link to &quot;Command &#x27;X&#x27; not found&quot;" title="Direct link to &quot;Command &#x27;X&#x27; not found&quot;" translate="no"></a></h3>
<p>The AI CLI tool isn&#x27;t installed or not in PATH:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">which claude # Should show path</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">which opencode # Might need full path</span><br></span></code></pre></div></div>
<p>For OpenCode, use full path in provider:</p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> $HOME/.opencode/bin/opencode run</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="slow-provider">Slow Provider<a href="#slow-provider" class="hash-link" aria-label="Direct link to Slow Provider" title="Direct link to Slow Provider" translate="no"></a></h3>
<ul>
<li class="">Use <code>gemini-flash</code> instead of <code>gemini</code></li>
<li class="">Use <code>claude-haiku</code> instead of <code>claude-opus</code></li>
<li class="">Use <code>opencode-deepseek</code> for best speed/quality ratio</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cost-optimization">Cost Optimization<a href="#cost-optimization" class="hash-link" aria-label="Direct link to Cost Optimization" title="Direct link to Cost Optimization" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="free-providers">Free Providers<a href="#free-providers" class="hash-link" aria-label="Direct link to Free Providers" title="Direct link to Free Providers" translate="no"></a></h3>
<ul>
<li class=""><code>opencode-pickle</code> - Big Pickle model (FREE, accurate)</li>
<li class=""><code>opencode-grok</code> - Grok Code (FREE, fast but less reliable)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="cheap-providers">Cheap Providers<a href="#cheap-providers" class="hash-link" aria-label="Direct link to Cheap Providers" title="Direct link to Cheap Providers" translate="no"></a></h3>
<ul>
<li class=""><code>opencode-deepseek</code> - ~$0.28/M tokens</li>
<li class=""><code>opencode-reasoner</code> - ~$0.28/M tokens</li>
<li class=""><code>claude-haiku</code> - ~$0.25/M tokens</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="tips">Tips<a href="#tips" class="hash-link" aria-label="Direct link to Tips" title="Direct link to Tips" translate="no"></a></h3>
<ol>
<li class="">Use <code>opencode-pickle</code> for simple tasks (free + accurate)</li>
<li class="">Use <code>claude-haiku</code> when you need reliability</li>
<li class="">Reserve <code>claude-opus</code> for important work</li>
<li class="">Use <code>gemini</code> only for large document analysis</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="adding-new-providers">Adding New Providers<a href="#adding-new-providers" class="hash-link" aria-label="Direct link to Adding New Providers" title="Direct link to Adding New Providers" translate="no"></a></h2>
<p>Any CLI tool that:</p>
<ul>
<li class="">Reads from stdin</li>
<li class="">Writes to stdout</li>
<li class="">Exits 0 on success</li>
</ul>
<p>Can be a provider. Examples:</p>
<p><strong>Local LLM (Ollama):</strong></p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> ollama</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">llama</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> ollama run llama3</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">description</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Local Llama 3</span><br></span></code></pre></div></div>
<p><strong>Custom API wrapper:</strong></p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">api</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> curl </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">s </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">X POST https</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain">//my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">api.com/chat </span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">d @</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">description</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> My custom API</span><br></span></code></pre></div></div>
<p><strong>Python script:</strong></p>
<div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> my</span><span class="token punctuation" style="color:rgb(248, 248, 242)">-</span><span class="token plain">python</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">command</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> python3 ~/scripts/my_ai.py</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token key atrule">description</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Custom Python AI</span><br></span></code></pre></div></div></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/rob/CmdForge/category/reference/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Reference</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/rob/CmdForge/reference/registry-spec/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Registry API</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#provider-comparison" class="table-of-contents__link toc-highlight">Provider Comparison</a><ul><li><a href="#recommendations" class="table-of-contents__link toc-highlight">Recommendations</a></li></ul></li><li><a href="#provider-setup" class="table-of-contents__link toc-highlight">Provider Setup</a><ul><li><a href="#opencode-recommended" class="table-of-contents__link toc-highlight">OpenCode (Recommended)</a></li><li><a href="#claude-cli" class="table-of-contents__link toc-highlight">Claude CLI</a></li><li><a href="#codex-openai" class="table-of-contents__link toc-highlight">Codex (OpenAI)</a></li><li><a href="#gemini" class="table-of-contents__link toc-highlight">Gemini</a></li></ul></li><li><a href="#managing-providers" class="table-of-contents__link toc-highlight">Managing Providers</a><ul><li><a href="#interactive-installation-recommended" class="table-of-contents__link toc-highlight">Interactive Installation (Recommended)</a></li><li><a href="#list-providers" class="table-of-contents__link toc-highlight">List Providers</a></li><li><a href="#check-availability" class="table-of-contents__link toc-highlight">Check Availability</a></li><li><a href="#add-custom-provider" class="table-of-contents__link toc-highlight">Add Custom Provider</a></li><li><a href="#provider-command-format" class="table-of-contents__link toc-highlight">Provider Command Format</a></li></ul></li><li><a href="#using-providers-in-tools" class="table-of-contents__link toc-highlight">Using Providers in Tools</a><ul><li><a href="#in-tool-config" class="table-of-contents__link toc-highlight">In Tool Config</a></li><li><a href="#override-at-runtime" class="table-of-contents__link toc-highlight">Override at Runtime</a></li><li><a href="#provider-selection-strategy" class="table-of-contents__link toc-highlight">Provider Selection Strategy</a></li></ul></li><li><a href="#troubleshooting" class="table-of-contents__link toc-highlight">Troubleshooting</a><ul><li><a href="#provider-x-not-found" class="table-of-contents__link toc-highlight">&quot;Provider &#39;X&#39; not found&quot;</a></li><li><a href="#command-x-not-found" class="table-of-contents__link toc-highlight">&quot;Command &#39;X&#39; not found&quot;</a></li><li><a href="#slow-provider" class="table-of-contents__link toc-highlight">Slow Provider</a></li></ul></li><li><a href="#cost-optimization" class="table-of-contents__link toc-highlight">Cost Optimization</a><ul><li><a href="#free-providers" class="table-of-contents__link toc-highlight">Free Providers</a></li><li><a href="#cheap-providers" class="table-of-contents__link toc-highlight">Cheap Providers</a></li><li><a href="#tips" class="table-of-contents__link toc-highlight">Tips</a></li></ul></li><li><a href="#adding-new-providers" class="table-of-contents__link toc-highlight">Adding New Providers</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/rob/CmdForge/">Overview</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitea.brrd.tech/rob/CmdForge" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">CmdForge Documentation</div></div></div></footer></div>
</body>
</html>