[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-coding-plan\u002Fguide\u002Fopencode":180},[4,26,43,105,155,172,176],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"Your First SilvaMux API Call","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start",{"title":14,"path":15,"stem":16},"Model Selection","\u002Fgetting-started\u002Fmodel-selection","1.getting-started\u002F2.model-selection",{"title":18,"path":19,"stem":20},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":22,"path":23,"stem":24},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Billing","\u002Fbilling","2.billing",[31,35,39],{"title":32,"path":33,"stem":34},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":36,"path":37,"stem":38},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":40,"path":41,"stem":42},"Bills, Usage & Exports","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":44,"path":45,"stem":46,"children":47,"page":25},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[48,52,56,60,67,102],{"title":49,"path":50,"stem":51},"Coding Plan Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":53,"path":54,"stem":55},"Quick Start","\u002Fcoding-plan\u002Fquick-start","3.coding-plan\u002F2.quick-start",{"title":57,"path":58,"stem":59},"Usage Notes","\u002Fcoding-plan\u002Fusage-notes","3.coding-plan\u002F3.usage-notes",{"title":61,"path":62,"stem":63,"children":64},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F4.personal\u002Findex",[65],{"title":66,"path":62,"stem":63},"Pricing & Benefits",{"title":68,"path":69,"stem":70,"children":71,"page":-1},"Developer Guide","\u002Fcoding-plan\u002Fguide","3.coding-plan\u002F5.guide\u002Findex",[72,74,78,82,86,90,94,98],{"title":73,"path":69,"stem":70},"Endpoints & Protocols",{"title":75,"path":76,"stem":77},"Claude Code","\u002Fcoding-plan\u002Fguide\u002Fclaude-code","3.coding-plan\u002F5.guide\u002F1.claude-code",{"title":79,"path":80,"stem":81},"OpenCode","\u002Fcoding-plan\u002Fguide\u002Fopencode","3.coding-plan\u002F5.guide\u002F2.opencode",{"title":83,"path":84,"stem":85},"Cursor","\u002Fcoding-plan\u002Fguide\u002Fcursor","3.coding-plan\u002F5.guide\u002F3.cursor",{"title":87,"path":88,"stem":89},"Codex","\u002Fcoding-plan\u002Fguide\u002Fcodex","3.coding-plan\u002F5.guide\u002F4.codex",{"title":91,"path":92,"stem":93},"ZCode","\u002Fcoding-plan\u002Fguide\u002Fzcode","3.coding-plan\u002F5.guide\u002F5.zcode",{"title":95,"path":96,"stem":97},"TRAE","\u002Fcoding-plan\u002Fguide\u002Ftrae","3.coding-plan\u002F5.guide\u002F6.trae",{"title":99,"path":100,"stem":101},"CodeBuddy","\u002Fcoding-plan\u002Fguide\u002Fcodebuddy","3.coding-plan\u002F5.guide\u002F7.codebuddy",{"title":22,"path":103,"stem":104},"\u002Fcoding-plan\u002Ffaq","3.coding-plan\u002F6.faq",{"title":106,"path":107,"stem":108,"children":109,"page":25},"Model APIs","\u002Fmodels","4.models",[110,143],{"title":111,"path":112,"stem":113,"children":114,"page":25},"Text Generation Model API","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[115,119,123,127,131,135,139],{"title":116,"path":117,"stem":118},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":120,"path":121,"stem":122},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":124,"path":125,"stem":126},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":128,"path":129,"stem":130},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":132,"path":133,"stem":134},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":136,"path":137,"stem":138},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":140,"path":141,"stem":142},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":144,"path":145,"stem":146,"children":147,"page":25},"Image Generation Model API","\u002Fmodels\u002Fimages","4.models\u002F2.images",[148,151],{"title":116,"path":149,"stem":150},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":152,"path":153,"stem":154},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":156,"path":157,"stem":158,"children":159,"page":25},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[160,164,168],{"title":161,"path":162,"stem":163},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":165,"path":166,"stem":167},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":169,"path":170,"stem":171},"Query Request Usage","\u002Fusage-and-balance\u002Frequest-usage","5.usage-and-balance\u002F3.request-usage",{"title":173,"path":174,"stem":175},"Error Codes","\u002Ferrors","6.errors",{"title":177,"path":178,"stem":179},"Getting Started with SilvaMux","\u002F","index",{"id":181,"title":79,"body":182,"description":792,"extension":793,"meta":794,"navigation":795,"path":80,"rawbody":796,"requiredFlags":797,"seo":798,"stem":81,"__hash__":799},"docs_en\u002F3.coding-plan\u002F5.guide\u002F2.opencode.md",{"type":183,"value":184,"toc":781},"minimark",[185,189,193,198,244,270,277,281,296,325,328,340,344,347,362,375,588,595,715,722,726,736,739,744,752,756,766,770,777],[186,187,79],"h1",{"id":188},"opencode",[190,191,192],"p",{},"OpenCode is a terminal AI coding tool that can connect to SilvaMux Coding Plan.",[194,195,197],"h2",{"id":196},"before-you-start","Before You Start",[199,200,201,215,230],"ol",{},[202,203,204,208,209,214],"li",{},[205,206,207],"strong",{},"Purchase a subscription",": buy a Coding Plan Personal subscription (Lite \u002F Pro \u002F Max with monthly, quarterly, or yearly billing) on the ",[210,211,213],"a",{"href":212},"\u002Fen\u002Fsubscription","subscription page","; it takes effect immediately after payment.",[202,216,217,220,221,224,225,229],{},[205,218,219],{},"Create a subscription API key",": in the console, go to ",[205,222,223],{},"Coding Plan → API Keys",", create a key, and copy the full value starting with ",[226,227,228],"code",{},"cp_live_"," right away.",[202,231,232,235,236,239,240,243],{},[205,233,234],{},"Confirm endpoints and protocols",": all tools share the Base URL ",[226,237,238],{},"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1",", compatible with both the OpenAI and Anthropic protocols; see ",[210,241,73],{"href":242},"\u002Fen\u002Fdocs\u002Fcoding-plan\u002Fguide"," for endpoint details.",[245,246,248],"alert",{"type":247},"warning",[190,249,250,251,253,254,257,258,261,262,265,266,269],{},"A ",[226,252,228],{}," key can only call the ",[226,255,256],{},"\u002Fapi\u002Fcoding-plan\u002Fv1"," subscription endpoints; using it on regular endpoints (such as ",[226,259,260],{},"\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions",") returns 403 ",[226,263,264],{},"CODING_PLAN_KEY_NOT_ALLOWED","; conversely, a regular ",[226,267,268],{},"sk_live_"," key cannot call the subscription endpoints.",[190,271,272,273,276],{},"For the full flow of purchasing, key creation, and a verification call, see ",[210,274,53],{"href":275},"\u002Fen\u002Fdocs\u002Fcoding-plan\u002Fquick-start",".",[194,278,280],{"id":279},"install-opencode","Install OpenCode",[199,282,283,293],{},[202,284,285,286,292],{},"Install ",[210,287,291],{"href":288,"rel":289},"https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002F",[290],"nofollow","Node.js"," (v18.0 or later).",[202,294,295],{},"Run the following command in a terminal to install OpenCode.",[297,298,303],"pre",{"className":299,"code":300,"language":301,"meta":302,"style":302},"language-bash shiki shiki-themes github-light github-dark","npm install -g opencode-ai\n","bash","",[226,304,305],{"__ignoreMap":302},[306,307,310,314,318,322],"span",{"class":308,"line":309},"line",1,[306,311,313],{"class":312},"sScJk","npm",[306,315,317],{"class":316},"sZZnC"," install",[306,319,321],{"class":320},"sj4cs"," -g",[306,323,324],{"class":316}," opencode-ai\n",[190,326,327],{},"Verify the install; a version number means it succeeded.",[297,329,331],{"className":299,"code":330,"language":301,"meta":302,"style":302},"opencode -v\n",[226,332,333],{"__ignoreMap":302},[306,334,335,337],{"class":308,"line":309},[306,336,188],{"class":312},[306,338,339],{"class":320}," -v\n",[194,341,343],{"id":342},"configure-credentials","Configure Credentials",[190,345,346],{},"Open the config file in a text editor:",[348,349,350,356],"ul",{},[202,351,352,353],{},"macOS \u002F Linux: ",[226,354,355],{},"~\u002F.config\u002Fopencode\u002Fopencode.json",[202,357,358,359],{},"Windows: ",[226,360,361],{},"C:\\Users\\\u003Cusername>\\.config\\opencode\\opencode.json",[190,363,364,365,368,369,371,372,276],{},"Add the following, replacing ",[226,366,367],{},"YOUR_API_KEY"," with your ",[226,370,228],{}," key. The OpenAI-compatible entry uses ",[226,373,374],{},"@ai-sdk\u002Fopenai-compatible",[297,376,380],{"className":377,"code":378,"language":379,"meta":302,"style":302},"language-json shiki shiki-themes github-light github-dark","{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"provider\": {\n    \"silvamux-coding-plan\": {\n      \"npm\": \"@ai-sdk\u002Fopenai-compatible\",\n      \"name\": \"SilvaMux Coding Plan\",\n      \"options\": {\n        \"baseURL\": \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1\",\n        \"apiKey\": \"YOUR_API_KEY\"\n      },\n      \"models\": {\n        \"deepseek-v4-pro\": {\n          \"name\": \"DeepSeek V4 Pro\"\n        },\n        \"glm-5.2\": {\n          \"name\": \"GLM 5.2\"\n        },\n        \"minimax-m3\": {\n          \"name\": \"MiniMax M3\"\n        }\n      }\n    }\n  }\n}\n","json",[226,381,382,388,403,412,420,433,446,454,467,478,484,492,500,511,517,525,535,540,548,558,564,570,576,582],{"__ignoreMap":302},[306,383,384],{"class":308,"line":309},[306,385,387],{"class":386},"sVt8B","{\n",[306,389,391,394,397,400],{"class":308,"line":390},2,[306,392,393],{"class":320},"  \"$schema\"",[306,395,396],{"class":386},": ",[306,398,399],{"class":316},"\"https:\u002F\u002Fopencode.ai\u002Fconfig.json\"",[306,401,402],{"class":386},",\n",[306,404,406,409],{"class":308,"line":405},3,[306,407,408],{"class":320},"  \"provider\"",[306,410,411],{"class":386},": {\n",[306,413,415,418],{"class":308,"line":414},4,[306,416,417],{"class":320},"    \"silvamux-coding-plan\"",[306,419,411],{"class":386},[306,421,423,426,428,431],{"class":308,"line":422},5,[306,424,425],{"class":320},"      \"npm\"",[306,427,396],{"class":386},[306,429,430],{"class":316},"\"@ai-sdk\u002Fopenai-compatible\"",[306,432,402],{"class":386},[306,434,436,439,441,444],{"class":308,"line":435},6,[306,437,438],{"class":320},"      \"name\"",[306,440,396],{"class":386},[306,442,443],{"class":316},"\"SilvaMux Coding Plan\"",[306,445,402],{"class":386},[306,447,449,452],{"class":308,"line":448},7,[306,450,451],{"class":320},"      \"options\"",[306,453,411],{"class":386},[306,455,457,460,462,465],{"class":308,"line":456},8,[306,458,459],{"class":320},"        \"baseURL\"",[306,461,396],{"class":386},[306,463,464],{"class":316},"\"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1\"",[306,466,402],{"class":386},[306,468,470,473,475],{"class":308,"line":469},9,[306,471,472],{"class":320},"        \"apiKey\"",[306,474,396],{"class":386},[306,476,477],{"class":316},"\"YOUR_API_KEY\"\n",[306,479,481],{"class":308,"line":480},10,[306,482,483],{"class":386},"      },\n",[306,485,487,490],{"class":308,"line":486},11,[306,488,489],{"class":320},"      \"models\"",[306,491,411],{"class":386},[306,493,495,498],{"class":308,"line":494},12,[306,496,497],{"class":320},"        \"deepseek-v4-pro\"",[306,499,411],{"class":386},[306,501,503,506,508],{"class":308,"line":502},13,[306,504,505],{"class":320},"          \"name\"",[306,507,396],{"class":386},[306,509,510],{"class":316},"\"DeepSeek V4 Pro\"\n",[306,512,514],{"class":308,"line":513},14,[306,515,516],{"class":386},"        },\n",[306,518,520,523],{"class":308,"line":519},15,[306,521,522],{"class":320},"        \"glm-5.2\"",[306,524,411],{"class":386},[306,526,528,530,532],{"class":308,"line":527},16,[306,529,505],{"class":320},[306,531,396],{"class":386},[306,533,534],{"class":316},"\"GLM 5.2\"\n",[306,536,538],{"class":308,"line":537},17,[306,539,516],{"class":386},[306,541,543,546],{"class":308,"line":542},18,[306,544,545],{"class":320},"        \"minimax-m3\"",[306,547,411],{"class":386},[306,549,551,553,555],{"class":308,"line":550},19,[306,552,505],{"class":320},[306,554,396],{"class":386},[306,556,557],{"class":316},"\"MiniMax M3\"\n",[306,559,561],{"class":308,"line":560},20,[306,562,563],{"class":386},"        }\n",[306,565,567],{"class":308,"line":566},21,[306,568,569],{"class":386},"      }\n",[306,571,573],{"class":308,"line":572},22,[306,574,575],{"class":386},"    }\n",[306,577,579],{"class":308,"line":578},23,[306,580,581],{"class":386},"  }\n",[306,583,585],{"class":308,"line":584},24,[306,586,587],{"class":386},"}\n",[190,589,590,591,594],{},"To use the Anthropic Messages protocol instead, switch to ",[226,592,593],{},"@ai-sdk\u002Fanthropic","; the rest of the configuration is unchanged:",[297,596,598],{"className":377,"code":597,"language":379,"meta":302,"style":302},"{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"provider\": {\n    \"silvamux-coding-plan\": {\n      \"npm\": \"@ai-sdk\u002Fanthropic\",\n      \"name\": \"SilvaMux Coding Plan\",\n      \"options\": {\n        \"baseURL\": \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1\",\n        \"apiKey\": \"YOUR_API_KEY\"\n      },\n      \"models\": {\n        \"deepseek-v4-pro\": {\n          \"name\": \"DeepSeek V4 Pro\"\n        }\n      }\n    }\n  }\n}\n",[226,599,600,604,614,620,626,637,647,653,663,671,675,681,687,695,699,703,707,711],{"__ignoreMap":302},[306,601,602],{"class":308,"line":309},[306,603,387],{"class":386},[306,605,606,608,610,612],{"class":308,"line":390},[306,607,393],{"class":320},[306,609,396],{"class":386},[306,611,399],{"class":316},[306,613,402],{"class":386},[306,615,616,618],{"class":308,"line":405},[306,617,408],{"class":320},[306,619,411],{"class":386},[306,621,622,624],{"class":308,"line":414},[306,623,417],{"class":320},[306,625,411],{"class":386},[306,627,628,630,632,635],{"class":308,"line":422},[306,629,425],{"class":320},[306,631,396],{"class":386},[306,633,634],{"class":316},"\"@ai-sdk\u002Fanthropic\"",[306,636,402],{"class":386},[306,638,639,641,643,645],{"class":308,"line":435},[306,640,438],{"class":320},[306,642,396],{"class":386},[306,644,443],{"class":316},[306,646,402],{"class":386},[306,648,649,651],{"class":308,"line":448},[306,650,451],{"class":320},[306,652,411],{"class":386},[306,654,655,657,659,661],{"class":308,"line":456},[306,656,459],{"class":320},[306,658,396],{"class":386},[306,660,464],{"class":316},[306,662,402],{"class":386},[306,664,665,667,669],{"class":308,"line":469},[306,666,472],{"class":320},[306,668,396],{"class":386},[306,670,477],{"class":316},[306,672,673],{"class":308,"line":480},[306,674,483],{"class":386},[306,676,677,679],{"class":308,"line":486},[306,678,489],{"class":320},[306,680,411],{"class":386},[306,682,683,685],{"class":308,"line":494},[306,684,497],{"class":320},[306,686,411],{"class":386},[306,688,689,691,693],{"class":308,"line":502},[306,690,505],{"class":320},[306,692,396],{"class":386},[306,694,510],{"class":316},[306,696,697],{"class":308,"line":513},[306,698,563],{"class":386},[306,700,701],{"class":308,"line":519},[306,702,569],{"class":386},[306,704,705],{"class":308,"line":527},[306,706,575],{"class":386},[306,708,709],{"class":308,"line":537},[306,710,581],{"class":386},[306,712,713],{"class":308,"line":542},[306,714,587],{"class":386},[190,716,717,718,721],{},"The available models follow ",[226,719,720],{},"GET \u002Fapi\u002Fcoding-plan\u002Fv1\u002Fmodels"," and the Model Plaza.",[194,723,725],{"id":724},"verify-the-configuration","Verify the Configuration",[190,727,728,729,731,732,735],{},"Save the config and restart OpenCode. Enter ",[226,730,107],{},", select a model under ",[226,733,734],{},"SilvaMux Coding Plan",", and start chatting.",[194,737,22],{"id":738},"faq",[740,741,743],"h3",{"id":742},"_401-on-calls","401 on calls",[190,745,250,746,748,749,751],{},[226,747,228],{}," key must be used with ",[226,750,238],{},"; a mismatch returns 401.",[740,753,755],{"id":754},"_404-on-calls","404 on calls",[190,757,758,759,762,763,765],{},"Check that ",[226,760,761],{},"provider.options.baseURL"," is ",[226,764,238],{}," and that you have not added any path beyond it.",[740,767,769],{"id":768},"_429-on-calls","429 on calls",[190,771,772,773,776],{},"When any subscription quota window is exhausted, calls return 429 ",[226,774,775],{},"QUOTA_EXCEEDED"," (the message identifies 5h \u002F weekly \u002F monthly). Wait for the window to recover, or check remaining quota in the console.",[778,779,780],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":302,"searchDepth":390,"depth":390,"links":782},[783,784,785,786,787],{"id":196,"depth":390,"text":197},{"id":279,"depth":390,"text":280},{"id":342,"depth":390,"text":343},{"id":724,"depth":390,"text":725},{"id":738,"depth":390,"text":22,"children":788},[789,790,791],{"id":742,"depth":405,"text":743},{"id":754,"depth":405,"text":755},{"id":768,"depth":405,"text":769},"Use OpenCode with SilvaMux Coding Plan.","md",{},true,"---\ntitle: OpenCode\ndescription: Use OpenCode with SilvaMux Coding Plan.\n---\n\n# OpenCode\n\nOpenCode is a terminal AI coding tool that can connect to SilvaMux Coding Plan.\n\n## Before You Start\n\n1. **Purchase a subscription**: buy a Coding Plan Personal subscription (Lite \u002F Pro \u002F Max with monthly, quarterly, or yearly billing) on the [subscription page](\u002Fen\u002Fsubscription); it takes effect immediately after payment.\n2. **Create a subscription API key**: in the console, go to **Coding Plan → API Keys**, create a key, and copy the full value starting with `cp_live_` right away.\n3. **Confirm endpoints and protocols**: all tools share the Base URL `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1`, compatible with both the OpenAI and Anthropic protocols; see [Endpoints & Protocols](\u002Fen\u002Fdocs\u002Fcoding-plan\u002Fguide) for endpoint details.\n\n::alert{type=\"warning\"}\nA `cp_live_` key can only call the `\u002Fapi\u002Fcoding-plan\u002Fv1` subscription endpoints; using it on regular endpoints (such as `\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions`) returns 403 `CODING_PLAN_KEY_NOT_ALLOWED`; conversely, a regular `sk_live_` key cannot call the subscription endpoints.\n::\n\nFor the full flow of purchasing, key creation, and a verification call, see [Quick Start](\u002Fen\u002Fdocs\u002Fcoding-plan\u002Fquick-start).\n\n## Install OpenCode\n\n1. Install [Node.js](https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002F) (v18.0 or later).\n2. Run the following command in a terminal to install OpenCode.\n\n```bash\nnpm install -g opencode-ai\n```\n\nVerify the install; a version number means it succeeded.\n\n```bash\nopencode -v\n```\n\n## Configure Credentials\n\nOpen the config file in a text editor:\n\n- macOS \u002F Linux: `~\u002F.config\u002Fopencode\u002Fopencode.json`\n- Windows: `C:\\Users\\\u003Cusername>\\.config\\opencode\\opencode.json`\n\nAdd the following, replacing `YOUR_API_KEY` with your `cp_live_` key. The OpenAI-compatible entry uses `@ai-sdk\u002Fopenai-compatible`.\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"provider\": {\n    \"silvamux-coding-plan\": {\n      \"npm\": \"@ai-sdk\u002Fopenai-compatible\",\n      \"name\": \"SilvaMux Coding Plan\",\n      \"options\": {\n        \"baseURL\": \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1\",\n        \"apiKey\": \"YOUR_API_KEY\"\n      },\n      \"models\": {\n        \"deepseek-v4-pro\": {\n          \"name\": \"DeepSeek V4 Pro\"\n        },\n        \"glm-5.2\": {\n          \"name\": \"GLM 5.2\"\n        },\n        \"minimax-m3\": {\n          \"name\": \"MiniMax M3\"\n        }\n      }\n    }\n  }\n}\n```\n\nTo use the Anthropic Messages protocol instead, switch to `@ai-sdk\u002Fanthropic`; the rest of the configuration is unchanged:\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"provider\": {\n    \"silvamux-coding-plan\": {\n      \"npm\": \"@ai-sdk\u002Fanthropic\",\n      \"name\": \"SilvaMux Coding Plan\",\n      \"options\": {\n        \"baseURL\": \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1\",\n        \"apiKey\": \"YOUR_API_KEY\"\n      },\n      \"models\": {\n        \"deepseek-v4-pro\": {\n          \"name\": \"DeepSeek V4 Pro\"\n        }\n      }\n    }\n  }\n}\n```\n\nThe available models follow `GET \u002Fapi\u002Fcoding-plan\u002Fv1\u002Fmodels` and the Model Plaza.\n\n## Verify the Configuration\n\nSave the config and restart OpenCode. Enter `\u002Fmodels`, select a model under `SilvaMux Coding Plan`, and start chatting.\n\n## FAQ\n\n### 401 on calls\n\nA `cp_live_` key must be used with `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1`; a mismatch returns 401.\n\n### 404 on calls\n\nCheck that `provider.options.baseURL` is `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fcoding-plan\u002Fv1` and that you have not added any path beyond it.\n\n### 429 on calls\n\nWhen any subscription quota window is exhausted, calls return 429 `QUOTA_EXCEEDED` (the message identifies 5h \u002F weekly \u002F monthly). Wait for the window to recover, or check remaining quota in the console.\n",[],{"title":79,"description":792},"XuNoFnFx5rlf9SsVUByDzcK4r-bsZOpdN2XdJvPz1e0"]