1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3495],{4363:(e,t,i)=>{"use strict";i.r(t),i.d(t,{__N_SSG:()=>f,default:()=>y,markdoc:()=>m});var n=i(11872),r=i(12863),o=i(92130),a=i(9760),s=i(90102),d=i(89966),l=i(48059);let c={tags:(0,a.X)(s),nodes:(0,a.X)(d),functions:(0,a.X)(l),...(0,a.X)({})},p=new o.Ay.Tokenizer({allowComments:!0}).tokenize('---\ntitle: "Using Chutes AI with Kilo Code"\ndescription: "Access open-source AI models through Chutes AI in Kilo Code. Setup guide for getting an API key and configuring models."\nsidebar_label: Chutes AI\n---\n\n# Using Chutes AI With Kilo Code\n\nChutes.ai offers free API access to several large language models (LLMs), allowing developers to integrate and experiment with these models without immediate financial commitment. They provide access to a curated set of open-source and proprietary language models, often with a focus on specific capabilities or regional language support.\n\n**Website:** [https://chutes.ai/](https://chutes.ai/)\n\n## Getting an API Key\n\nTo use Chutes AI with Kilo Code, obtain an API key from the [Chutes AI platform](https://chutes.ai/). After signing up or logging in, you should find an option to generate or retrieve your API key within your account dashboard or settings.\n\n## Supported Models\n\nKilo Code will attempt to fetch the list of available models from the Chutes AI API. The specific models available will depend on Chutes AI\'s current offerings.\n\nAlways refer to the official Chutes AI documentation or your dashboard for the most up-to-date list of supported models.\n\n## Configuration in Kilo Code\n\n{% tabs %}\n{% tab label="VSCode" %}\n\nOpen **Settings** (gear icon) and go to the **Providers** tab to add Chutes AI and enter your API key.\n\nThe extension stores this in your `kilo.json` config file. You can also edit the config file directly â see the **CLI** tab for the file format.\n\n{% /tab %}\n{% tab label="CLI" %}\n\nSet the API key as an environment variable or configure it in your `kilo.json` config file:\n\n**Environment variable:**\n\n```bash\nexport CHUTES_API_KEY="your-api-key"\n```\n\n**Config file** (`~/.config/kilo/kilo.json` or `./kilo.json`):\n\n```jsonc\n{\n "provider": {\n "chutes": {\n "env": ["CHUTES_API_KEY"],\n },\n },\n}\n```\n\nThen set your default model:\n\n```jsonc\n{\n "model": "chutes/model-name",\n}\n```\n\n{% /tab %}\n{% /tabs %}\n\n## Tips and Notes\n\n- **Free Access:** Chutes AI provides free API access, making it an excellent option for experimentation and development without immediate costs.\n- **Model Variety:** The platform offers access to both open-source and proprietary models, giving you flexibility in choosing the right model for your needs.\n- **Rate Limits:** As with any free service, be aware of potential rate limits or usage restrictions that may apply to your API key.\n'),u=o.Ay.parse(p,{slots:!1}),g=u.attributes.frontmatter?r.Ay.load(u.attributes.frontmatter):{},{components:h}=(0,a._)(c);var f=!0;let m={frontmatter:g};function y(e){let t=e.markdoc;return o.ZR.react(t.content,n,{components:{...h,...e.components}})}},28186:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/ai-providers/chutes-ai",function(){return i(4363)}])},48059:(e,t,i)=>{"use strict";i.r(t),i.d(t,{includes:()=>n,upper:()=>r});let n={transform(e){let[t,i]=Object.values(e);return!!Array.isArray(t)&&t.includes(i)}},r={transform(e){let t=e[0];return"string"==typeof t?t.toUpperCase():t}}},89966:(e,t,i)=>{"use strict";i.r(t),i.d(t,{fence:()=>o,heading:()=>s,table:()=>l,tbody:()=>p,td:()=>h,th:()=>g,thead:()=>c,tr:()=>u});var n=i(92130),r=i(62968);let o={render:r.NG,attributes:n.a9.fence.attributes};function a(e){return"string"==typeof e?e:n.vw.isTag(e)?e.children.map(a).join(" "):""}let s={render:r.DZ,children:["inline"],attributes:{id:{type:String},level:{type:Number,required:!0,default:1},className:{type:String}},transform(e,t){let i=e.transformAttributes(t),r=e.transformChildren(t),o=i.id&&"string"==typeof i.id?i.id:r.map(a).join(" ").replace(/[?/]/g,"").replace(/\s+/g,"-").toLowerCase();return new n.vw(this.render,{...i,id:o},r)}};var d=i(17499);let l={...n.a9.table,render:d.XI},c={...n.a9.thead,render:d.D1},p={...n.a9.tbody,render:d.vc},u={...n.a9.tr,render:d.Tr},g={...n.a9.th,render:d.Th,attributes:{...n.a9.th.attributes,width:{type:String}}},h={...n.a9.td,render:d.Td,attributes:{...n.a9.td.attributes,colspan:{type:Number},rowspan:{type:Number}}}},90102:(e,t,i)=>{"use strict";i.r(t),i.d(t,{browserFrame:()=>m,callout:()=>r,codicon:()=>o,copyLine:()=>a,flowDiagram:()=>f,icon:()=>l,image:()=>c,imageGallery:()=>p,kiloCodeIcon:()=>u,linebreak:()=>y,tab:()=>d,tabs:()=>s,video:()=>g,youtube:()=>h});var n=i(62968);let r={render:n.Pq,children:["paragraph","tag","list"],attributes:{title:{type:String,description:"Optional custom title for the callout"}
1,type:{type:String,default:"note",matches:["generic","note","tip","info","warning","danger"],description:"The type of callout: generic (no icon/title), note, tip, info, warning, or danger"},collapsed:{type:Boolean,default:!1,description:"When true, the callout starts collapsed and can be expanded by clicking the header"}}},o={render:n.W6,selfClosing:!0,attributes:{name:{type:String,required:!0,description:"The name of the VS Code codicon (e.g., 'send', 'check', 'warning')"},size:{type:String,default:"1em",description:"The size of the icon (CSS font-size value)"},className:{type:String,default:"",description:"Additional CSS classes to apply to the icon"}}},a={render:n.a7,selfClosing:!0,attributes:{text:{type:String,required:!0,description:"The exact one-line text to display and copy"}}},s={render:n.tU,children:["tab"],attributes:{}},d={render:n.oz,children:["paragraph","tag","list","fence","heading"],attributes:{label:{type:String,required:!0,description:"The label shown on the tab button"}}},l={render:n.In,selfClosing:!0,attributes:{src:{type:String,required:!0},srcDark:{type:String,description:"Optional image source for dark mode. Falls back to src if not provided."},alt:{type:String,default:"icon"},size:{type:String,default:"1.2em"}}},c={render:n._V,selfClosing:!0,attributes:{src:{type:String,required:!0,description:"The image source URL"},alt:{type:String,required:!0,description:"Alternative text for the image"},width:{type:String,description:"Width of the image (e.g., '500px', '80%')"},height:{type:String,description:"Height of the image (e.g., '300px', 'auto')"},caption:{type:String,description:"Optional caption displayed below the image"}}},p={render:n.i_,children:["tag"],attributes:{columns:{type:String,description:"Preferred number of image columns on wide screens"},width:{type:String,description:"Preferred width of each gallery image"}}},u={render:n.kz,selfClosing:!0,attributes:{size:{type:String,default:"1.2em",description:"Size of the icon (CSS height value)"}}},g={render:n.n5,selfClosing:!0,attributes:{url:{type:String,required:!0,description:"The YouTube video URL"},title:{type:String,description:"Accessible title for the video iframe"},caption:{type:String,description:"Optional caption to display below the video"}}},h={render:n.Yu,selfClosing:!0,attributes:{url:{type:String,required:!0,description:"The YouTube video URL"},title:{type:String,description:"Accessible title for the video iframe"},caption:{type:String,description:"Optional caption to display below the video"}}},f={render:n.Cb,selfClosing:!0,attributes:{name:{type:String,required:!0,description:"Name of the diagram to render (must match a key in diagrams/index.ts)"},height:{type:String,default:"400px",description:"Height of the diagram container"}}},m={render:n.AR,children:["paragraph","tag","list"],attributes:{url:{type:String,description:"Optional URL to display in the address bar"},caption:{type:String,description:"Optional caption below the frame"}}},y={render:"br",selfClosing:!0}}},e=>{e.O(0,[8228,4720,636,6593,8792],()=>e(e.s=28186)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.