[{"data":1,"prerenderedAt":434},["ShallowReactive",2],{"docs-nav-titles":3,"page-docs_en-\u002Fintegrations\u002Foh-my-pi":52},{"en":4,"id":39},{"\u002Fauthentication":5,"\u002Fchangelog":6,"\u002Fguides\u002Fbilling":7,"\u002Fguides\u002Ferrors":8,"\u002Fguides\u002Fjson-output":9,"\u002Fguides\u002Frate-limits":10,"\u002Fguides\u002Freasoning":11,"\u002Fguides\u002Fstreaming":12,"\u002Fguides\u002Ftool-calling":13,"\u002Fguides\u002Ftop-up":14,"\u002F":15,"\u002Fintegrations\u002Faider":16,"\u002Fintegrations\u002Fclaude-code":17,"\u002Fintegrations\u002Fcline":18,"\u002Fintegrations\u002Fcontinue":19,"\u002Fintegrations\u002Fgoose":20,"\u002Fintegrations\u002Fhermes":21,"\u002Fintegrations":22,"\u002Fintegrations\u002Fkilo-code":23,"\u002Fintegrations\u002Flangchain":24,"\u002Fintegrations\u002Foh-my-pi":25,"\u002Fintegrations\u002Fopenai-sdk":26,"\u002Fintegrations\u002Fopenclaw":27,"\u002Fintegrations\u002Fopencode":28,"\u002Fintegrations\u002Fpi":29,"\u002Fintegrations\u002Fvercel-ai-sdk":30,"\u002Fintegrations\u002Fzed":31,"\u002Fmodels":32,"\u002Fquickstart":33,"\u002Freference\u002Fchat-completions":34,"\u002Freference":22,"\u002Freference\u002Fmessages":35,"\u002Freference\u002Fmodels":36,"\u002Freference\u002Fmodels-retrieve":37,"\u002Fsupport":38},"Authentication","Changelog","Billing","Errors & retries","JSON output","Rate limits","Reasoning content","Streaming","Tool calling","Topping up with QRIS","Introduction","Aider","Claude Code","Cline","Continue","Goose","Hermes Agent","Overview","Kilo Code","LangChain (Python)","Oh My Pi","OpenAI SDKs","OpenClaw","OpenCode","Pi","Vercel AI SDK","Zed","Models","Quickstart","Chat completions","Messages","List models","Retrieve a model","Support",{"\u002Fauthentication":40,"\u002Fchangelog":6,"\u002Fguides\u002Fbilling":7,"\u002Fguides\u002Ferrors":41,"\u002Fguides\u002Fjson-output":42,"\u002Fguides\u002Frate-limits":43,"\u002Fguides\u002Freasoning":44,"\u002Fguides\u002Fstreaming":12,"\u002Fguides\u002Ftool-calling":13,"\u002Fguides\u002Ftop-up":45,"\u002F":46,"\u002Fintegrations\u002Faider":16,"\u002Fintegrations\u002Fclaude-code":17,"\u002Fintegrations\u002Fcline":18,"\u002Fintegrations\u002Fcontinue":19,"\u002Fintegrations\u002Fgoose":20,"\u002Fintegrations\u002Fhermes":21,"\u002Fintegrations":47,"\u002Fintegrations\u002Fkilo-code":23,"\u002Fintegrations\u002Flangchain":24,"\u002Fintegrations\u002Foh-my-pi":25,"\u002Fintegrations\u002Fopenai-sdk":48,"\u002Fintegrations\u002Fopenclaw":27,"\u002Fintegrations\u002Fopencode":28,"\u002Fintegrations\u002Fpi":29,"\u002Fintegrations\u002Fvercel-ai-sdk":30,"\u002Fintegrations\u002Fzed":31,"\u002Fmodels":49,"\u002Fquickstart":33,"\u002Freference\u002Fchat-completions":34,"\u002Freference":47,"\u002Freference\u002Fmessages":35,"\u002Freference\u002Fmodels":50,"\u002Freference\u002Fmodels-retrieve":51,"\u002Fsupport":38},"Autentikasi","Error & retry","Output JSON","Rate limit","Konten reasoning","Isi saldo dengan QRIS","Pengantar","Ringkasan","OpenAI SDK","Model","Daftar model","Ambil satu model",{"id":53,"title":25,"body":54,"description":425,"extension":426,"eyebrow":427,"meta":428,"navTitle":427,"navigation":429,"path":430,"seo":431,"stem":432,"__hash__":433},"docs_en\u002Fintegrations\u002Foh-my-pi.md",{"type":55,"value":56,"toc":416},"minimark",[57,69,80,85,337,341,401,412],[58,59,60,61,68],"p",{},"This guide connects Oh My Pi to Laras Router. Every step was checked against the ",[62,63,67],"a",{"href":64,"rel":65},"https:\u002F\u002Fgithub.com\u002Fcan1357\u002Foh-my-pi",[66],"nofollow","Oh My Pi repository",".",[58,70,71,72,76,77,68],{},"You need an API key (",[73,74,75],"code",{},"lr_live_…",") and a topped-up balance. New to Laras Router? Start with the ",[62,78,33],{"href":79},"\u002Fquickstart",[81,82,84],"h2",{"id":83},"set-up","Set up",[86,87,88,93,99,128,134,138,141,162,166,172,311,315],"steps",{},[89,90,92],"h3",{"id":91},"install-oh-my-pi","Install Oh My Pi",[58,94,95,96,68],{},"Install with Bun 1.4.4 or newer. The command is ",[73,97,98],{},"omp",[100,101,106],"pre",{"className":102,"code":103,"language":104,"meta":105,"style":105},"language-bash shiki shiki-themes github-dark-default github-light-default","bun install -g @oh-my-pi\u002Fpi-coding-agent\n","bash","",[73,107,108],{"__ignoreMap":105},[109,110,113,117,121,125],"span",{"class":111,"line":112},"line",1,[109,114,116],{"class":115},"sjwWW","bun",[109,118,120],{"class":119},"sHdZ9"," install",[109,122,124],{"class":123},"sYnYM"," -g",[109,126,127],{"class":119}," @oh-my-pi\u002Fpi-coding-agent\n",[58,129,130,131,68],{},"Or use the shell installer: ",[73,132,133],{},"curl -fsSL https:\u002F\u002Fomp.sh\u002Finstall | sh",[89,135,137],{"id":136},"set-your-api-key","Set your API key",[58,139,140],{},"Put your key in an environment variable.",[100,142,144],{"className":102,"code":143,"language":104,"meta":105,"style":105},"export LARAS_API_KEY=\"lr_live_your_key_here\"\n",[73,145,146],{"__ignoreMap":105},[109,147,148,152,156,159],{"class":111,"line":112},[109,149,151],{"class":150},"s1PA9","export",[109,153,155],{"class":154},"sUq8j"," LARAS_API_KEY",[109,157,158],{"class":150},"=",[109,160,161],{"class":119},"\"lr_live_your_key_here\"\n",[89,163,165],{"id":164},"add-the-provider","Add the provider",[58,167,168,169,68],{},"Create ",[73,170,171],{},"~\u002F.omp\u002Fagent\u002Fmodels.yml",[100,173,177],{"className":174,"code":175,"filename":171,"language":176,"meta":105,"style":105},"language-yaml shiki shiki-themes github-dark-default github-light-default","providers:\n  laras:\n    baseUrl: https:\u002F\u002Fapi.larasrouter.com\u002Fv1\n    api: openai-completions\n    apiKey: LARAS_API_KEY\n    models:\n      - id: deepseek-flash\n        name: DeepSeek-V4.1-Flash\n        reasoning: true\n        input: [text]\n        contextWindow: 1000000\n        maxTokens: 8192\n","yaml",[73,178,179,188,196,208,219,230,238,252,263,274,289,300],{"__ignoreMap":105},[109,180,181,185],{"class":111,"line":112},[109,182,184],{"class":183},"sGSaJ","providers",[109,186,187],{"class":154},":\n",[109,189,191,194],{"class":111,"line":190},2,[109,192,193],{"class":183},"  laras",[109,195,187],{"class":154},[109,197,199,202,205],{"class":111,"line":198},3,[109,200,201],{"class":183},"    baseUrl",[109,203,204],{"class":154},": ",[109,206,207],{"class":119},"https:\u002F\u002Fapi.larasrouter.com\u002Fv1\n",[109,209,211,214,216],{"class":111,"line":210},4,[109,212,213],{"class":183},"    api",[109,215,204],{"class":154},[109,217,218],{"class":119},"openai-completions\n",[109,220,222,225,227],{"class":111,"line":221},5,[109,223,224],{"class":183},"    apiKey",[109,226,204],{"class":154},[109,228,229],{"class":119},"LARAS_API_KEY\n",[109,231,233,236],{"class":111,"line":232},6,[109,234,235],{"class":183},"    models",[109,237,187],{"class":154},[109,239,241,244,247,249],{"class":111,"line":240},7,[109,242,243],{"class":154},"      - ",[109,245,246],{"class":183},"id",[109,248,204],{"class":154},[109,250,251],{"class":119},"deepseek-flash\n",[109,253,255,258,260],{"class":111,"line":254},8,[109,256,257],{"class":183},"        name",[109,259,204],{"class":154},[109,261,262],{"class":119},"DeepSeek-V4.1-Flash\n",[109,264,266,269,271],{"class":111,"line":265},9,[109,267,268],{"class":183},"        reasoning",[109,270,204],{"class":154},[109,272,273],{"class":123},"true\n",[109,275,277,280,283,286],{"class":111,"line":276},10,[109,278,279],{"class":183},"        input",[109,281,282],{"class":154},": [",[109,284,285],{"class":119},"text",[109,287,288],{"class":154},"]\n",[109,290,292,295,297],{"class":111,"line":291},11,[109,293,294],{"class":183},"        contextWindow",[109,296,204],{"class":154},[109,298,299],{"class":123},"1000000\n",[109,301,303,306,308],{"class":111,"line":302},12,[109,304,305],{"class":183},"        maxTokens",[109,307,204],{"class":154},[109,309,310],{"class":123},"8192\n",[89,312,314],{"id":313},"pick-the-model","Pick the model",[58,316,317,318,320,321,324,325,329,330,333,334,68],{},"Start ",[73,319,98],{},", run ",[73,322,323],{},"\u002Fmodel",", and choose ",[326,327,328],"strong",{},"DeepSeek-V4.1-Flash"," from the ",[326,331,332],{},"laras"," provider. To start with the model already selected, run ",[73,335,336],{},"omp --model laras\u002Fdeepseek-flash",[81,338,340],{"id":339},"good-to-know","Good to know",[342,343,344,360,374,384,393],"ul",{},[345,346,347,350,351,354,355,357,358,68],"li",{},[73,348,349],{},"apiKey"," names an environment variable. Write ",[73,352,353],{},"LARAS_API_KEY",", not the key itself. If the variable is unset or empty, Oh My Pi uses the text ",[73,356,353],{}," as the token, so export it before you start ",[73,359,98],{},[345,361,362,363,366,367,370,371,68],{},"Oh My Pi reads ",[73,364,365],{},"models.yml"," before ",[73,368,369],{},"models.yaml",". Both live in ",[73,372,373],{},"~\u002F.omp\u002Fagent",[345,375,376,379,380,383],{},[73,377,378],{},"contextWindow"," states the full 1,000,000-token window. ",[73,381,382],{},"maxTokens"," is the output cap, and it also sets how much balance a request must hold while it runs. 8,192 is the default output cap, so raise it only if you need longer replies, and keep enough balance for it.",[345,385,386,389,390,392],{},[73,387,388],{},"input"," lists ",[73,391,285],{}," only. deepseek-flash does not accept image input.",[345,394,395,396,400],{},"Create a separate API key for Oh My Pi with a ",[62,397,399],{"href":398},"\u002Fguides\u002Fbilling#key-budgets","monthly budget",", so you can see and cap what it spends.",[58,402,403,404,407,408,68],{},"Settings and screens can change between versions. If something looks different, check the ",[62,405,67],{"href":64,"rel":406},[66],". For other tools, see all ",[62,409,411],{"href":410},"\u002Fintegrations","integrations",[413,414,415],"style",{},"html pre.shiki code .sjwWW, html code.shiki .sjwWW{--shiki-default:#FFA657;--shiki-light:#953800}html pre.shiki code .sHdZ9, html code.shiki .sHdZ9{--shiki-default:#A5D6FF;--shiki-light:#0A3069}html pre.shiki code .sYnYM, html code.shiki .sYnYM{--shiki-default:#79C0FF;--shiki-light:#0550AE}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 .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .s1PA9, html code.shiki .s1PA9{--shiki-default:#FF7B72;--shiki-light:#CF222E}html pre.shiki code .sUq8j, html code.shiki .sUq8j{--shiki-default:#E6EDF3;--shiki-light:#1F2328}html pre.shiki code .sGSaJ, html code.shiki .sGSaJ{--shiki-default:#7EE787;--shiki-light:#116329}",{"title":105,"searchDepth":198,"depth":198,"links":417},[418,424],{"id":83,"depth":190,"text":84,"children":419},[420,421,422,423],{"id":91,"depth":198,"text":92},{"id":136,"depth":198,"text":137},{"id":164,"depth":198,"text":165},{"id":313,"depth":198,"text":314},{"id":339,"depth":190,"text":340},"Terminal coding agent (omp) with custom providers in models.yml. Step-by-step setup with Laras Router.","md",null,{},true,"\u002Fintegrations\u002Foh-my-pi",{"title":25,"description":425},"integrations\u002Foh-my-pi","a6UhHaeJTEI1clUoKzMDpEApqC2N855VioiSA5Ap3ds",1793333618635]