Ollama is a local LLM runtime that makes it easy to run open-source models on your machine. OpenAEON integrates with Ollama’s native API (/api/chat), supporting streaming and tool calling, and can auto-discover tool-capable models when you opt in with OLLAMA_API_KEY (or an auth profile) and do not define an explicit models.providers.ollama entry.
Remote Ollama users: Do not use the /v1 OpenAI-compatible URL (http://host:11434/v1) with OpenAEON. This breaks tool calling and models may output raw tool JSON as plain text. Use the native Ollama API URL instead: baseUrl: "http://host:11434" (no /v1).
Enable Ollama for OpenAEON (any value works; Ollama doesn’t require a real key):
# Set environment variableexport OLLAMA_API_KEY="ollama-local"# Or configure in your config fileopenaeon config set models.providers.ollama.apiKey "ollama-local"
When you set OLLAMA_API_KEY (or an auth profile) and do not define models.providers.ollama, OpenAEON discovers models from the local Ollama instance at http://127.0.0.1:11434:
Queries /api/tags and /api/show
Keeps only models that report tools capability
Marks reasoning when the model reports thinking
Reads contextWindow from model_info["<arch>.context_length"] when available
Sets maxTokens to 10× the context window
Sets all costs to 0
This avoids manual model entries while keeping the catalog aligned with Ollama’s capabilities.To see what models are available:
ollama listopenaeon models list
To add a new model, simply pull it with Ollama:
ollama pull mistral
The new model will be automatically discovered and available to use.If you set models.providers.ollama explicitly, auto-discovery is skipped and you must define models manually (see below).
If Ollama is running on a different host or port (explicit config disables auto-discovery, so define models manually):
{ models: { providers: { ollama: { apiKey: "ollama-local", baseUrl: "http://ollama-host:11434", // No /v1 - use native Ollama API URL api: "ollama", // Set explicitly to guarantee native tool-calling behavior }, }, },}
Do not add /v1 to the URL. The /v1 path uses OpenAI-compatible mode, where tool calling is not reliable. Use the base Ollama URL without a path suffix.
OpenAEON’s Ollama integration uses the native Ollama API (/api/chat) by default, which fully supports streaming and tool calling simultaneously. No special configuration is needed.
Tool calling is not reliable in OpenAI-compatible mode. Use this mode only if you need OpenAI format for a proxy and do not depend on native tool calling behavior.
If you need to use the OpenAI-compatible endpoint instead (e.g., behind a proxy that only supports OpenAI format), set api: "openai-completions" explicitly:
This mode may not support streaming + tool calling simultaneously. You may need to disable streaming with params: { streaming: false } in model config.When api: "openai-completions" is used with Ollama, OpenAEON injects options.num_ctx by default so Ollama does not silently fall back to a 4096 context window. If your proxy/upstream rejects unknown options fields, disable this behavior:
For auto-discovered models, OpenAEON uses the context window reported by Ollama when available, otherwise it defaults to 8192. You can override contextWindow and maxTokens in explicit provider config.
Make sure Ollama is running and that you set OLLAMA_API_KEY (or an auth profile), and that you did not define an explicit models.providers.ollama entry:
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OpenAEON","description":"Self-hosted gateway that connects WhatsApp, Telegram, Discord, iMessage, and more to AI coding agents. Run a single Gateway process on your own machine and message your AI assistant from anywhere.","colors":{"primary":"#FF5A36","light":"#FF8A6B","dark":"#FF5A36"},"logo":{"light":"https://mintcdn.com/openaeon/j9-yvSl3gGOxURs2/assets/pixel-lobster.svg?fit=max\u0026auto=format\u0026n=j9-yvSl3gGOxURs2\u0026q=85\u0026s=ffca0ab5bf120fb2c1ed5ceb090d3f4d","dark":"https://mintcdn.com/openaeon/j9-yvSl3gGOxURs2/assets/pixel-lobster.svg?fit=max\u0026auto=format\u0026n=j9-yvSl3gGOxURs2\u0026q=85\u0026s=ffca0ab5bf120fb2c1ed5ceb090d3f4d"},"favicon":"https://mintcdn.com/openaeon/j9-yvSl3gGOxURs2/assets/pixel-lobster.svg?fit=max\u0026auto=format\u0026n=j9-yvSl3gGOxURs2\u0026q=85\u0026s=ffca0ab5bf120fb2c1ed5ceb090d3f4d","navbar":{"links":[{"icon":"github","href":"https://github.com/openaeon/openaeon","label":"GitHub"},{"icon":"package","href":"https://github.com/openaeon/openaeon/releases","label":"Releases"}]},"fonts":{"heading":{"family":"DM Sans"},"body":{"family":"Fragment Mono"}},"icons":{"library":"lucide"},"styling":{"codeblocks":{"theme":{"light":"min-light","dark":"min-dark"}},"latex":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"zh-Hans","href":"zh-CN"},{"language":"ja","href":"ja-JP"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openaeon","hasAudioNarration":false,"actualSubdomain":"openaeon","customDomains":["docs.openaeon.ai"],"gitSource":{"type":"github","owner":"openaeon","repo":"openaeon","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae94a37e103a00adafa5fad:success","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"en","tag":"Reference","count":81},{"language":"zh-Hans","tag":"参考","count":76},{"language":"en","tag":"Tools","count":52},{"language":"zh-Hans","tag":"工具","count":49},{"language":"en","tag":"CLI commands","count":46},{"language":"en","tag":"Gateway \u0026 Ops","count":41},{"language":"zh-Hans","tag":"CLI 命令","count":41},{"language":"zh-Hans","tag":"网关与运维","count":37},{"language":"en","tag":"Models","count":32},{"language":"en","tag":"Gateway","count":30},{"language":"en","tag":"Channels","count":29},{"language":"zh-Hans","tag":"消息渠道","count":28},{"language":"en","tag":"Platforms","count":27},{"language":"en","tag":"Providers","count":27},{"language":"zh-Hans","tag":"平台","count":27},{"language":"zh-Hans","tag":"网关","count":26},{"language":"en","tag":"Agents","count":24},{"language":"zh-Hans","tag":"模型","count":24},{"language":"zh-Hans","tag":"代理","count":21},{"language":"zh-Hans","tag":"帮助","count":20},{"language":"ja","tag":"はじめに","count":3},{"language":"ja","tag":"初回セットアップ","count":2},{"language":"ja","tag":"概要","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"#content>h1:first-of-type{display:none!important}.nav-tabs{position:relative}.nav-tabs-item>div{opacity:0}.nav-tabs-underline{position:absolute;left:0;bottom:0;height:1.5px;width:var(--nav-tab-underline-width, 0);transform:translateX(var(--nav-tab-underline-x, 0));background-color:rgb(var(--primary));border-radius:999px;pointer-events:none;opacity:0;transition:transform 260ms ease-in-out,\n width 260ms ease-in-out,\n opacity 160ms ease-in-out;will-change:transform, width}html.dark .nav-tabs-underline{background-color:rgb(var(--primary-light))}.nav-tabs-underline-ready .nav-tabs-underline{opacity:1}"},{"filePath":"official_site/nextjs-site/src/app/globals.css","content":"@import \"tailwindcss\";:root{--background: #ffffff;--foreground: #171717}@theme inline{--color-background: var(--background);--color-foreground: var(--foreground);--font-sans: var(--font-geist-sans);--font-mono: var(--font-geist-mono)}@media (prefers-color-scheme: dark){:root{--background: #0a0a0a;--foreground: #ededed}}body{background:var(--background);color:var(--foreground);font-family:Arial, Helvetica, sans-serif}"}],"page":{"pagePath":"providers/ollama","slug":"/providers/ollama","pageMetadata":{"summary":"Run OpenAEON with Ollama (local LLM runtime)","read_when":["You want to run OpenAEON with local models via Ollama","You need Ollama setup and configuration guidance"],"title":"Ollama","description":null,"href":"/providers/ollama"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`ollama`,children:`Ollama`}),`\n`,_jsxs(_components.p,{children:[`Ollama is a local LLM runtime that makes it easy to run open-source models on your machine. OpenAEON integrates with Ollama’s native API (`,_jsx(_components.code,{children:`/api/chat`}),`), supporting streaming and tool calling, and can `,_jsx(_components.strong,{children:`auto-discover tool-capable models`}),` when you opt in with `,_jsx(_components.code,{children:`OLLAMA_API_KEY`}),` (or an auth profile) and do not define an explicit `,_jsx(_components.code,{children:`models.providers.ollama`}),` entry.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Remote Ollama users`}),`: Do not use the `,_jsx(_components.code,{children:`/v1`}),` OpenAI-compatible URL (`,_jsx(_components.code,{children:`http://host:11434/v1`}),`) with OpenAEON. This breaks tool calling and models may output raw tool JSON as plain text. Use the native Ollama API URL instead: `,_jsx(_components.code,{children:`baseUrl: \"http://host:11434\"`}),` (no `,_jsx(_components.code,{children:`/v1`}),`).`]})}),`\n`,_jsx(Heading,{level:`2`,id:`quick-start`,children:`Quick start`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Install Ollama: `,_jsx(_components.a,{href:`https://ollama.ai`,children:`https://ollama.ai`})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Pull a model:`}),`\n`]}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` gpt-oss:20b`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# or`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` llama3.3`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# or`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` qwen2.5-coder:32b`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# or`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` deepseek-r1:32b`})]}),`\n`]})})}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsx(_components.li,{children:`Enable Ollama for OpenAEON (any value works; Ollama doesn’t require a real key):`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# Set environment variable`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D32F2F`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` OLLAMA_API_KEY`}),_jsx(_components.span,{style:{color:`#D32F2F`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:`\"ollama-local\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# Or configure in your config file`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`openaeon`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` config`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` set`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models.providers.ollama.apiKey`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama-local\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.ol,{start:`4`,children:[`\n`,_jsx(_components.li,{children:`Use Ollama models:`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json5`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`json5`,children:_jsxs(_components.code,{language:`json5`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` agents`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` defaults`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` model`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` { `}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:`primary`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama/gpt-oss:20b\"`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`model-discovery-implicit-provider`,children:`Model discovery (implicit provider)`}),`\n`,_jsxs(_components.p,{children:[`When you set `,_jsx(_components.code,{children:`OLLAMA_API_KEY`}),` (or an auth profile) and `,_jsx(_components.strong,{children:`do not`}),` define `,_jsx(_components.code,{children:`models.providers.ollama`}),`, OpenAEON discovers models from the local Ollama instance at `,_jsx(_components.code,{children:`http://127.0.0.1:11434`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Queries `,_jsx(_components.code,{children:`/api/tags`}),` and `,_jsx(_components.code,{children:`/api/show`})]}),`\n`,_jsxs(_components.li,{children:[`Keeps only models that report `,_jsx(_components.code,{children:`tools`}),` capability`]}),`\n`,_jsxs(_components.li,{children:[`Marks `,_jsx(_components.code,{children:`reasoning`}),` when the model reports `,_jsx(_components.code,{children:`thinking`})]}),`\n`,_jsxs(_components.li,{children:[`Reads `,_jsx(_components.code,{children:`contextWindow`}),` from `,_jsx(_components.code,{children:`model_info[\"\u003carch>.context_length\"]`}),` when available`]}),`\n`,_jsxs(_components.li,{children:[`Sets `,_jsx(_components.code,{children:`maxTokens`}),` to 10× the context window`]}),`\n`,_jsxs(_components.li,{children:[`Sets all costs to `,_jsx(_components.code,{children:`0`})]}),`\n`]}),`\n`,_jsx(_components.p,{children:`This avoids manual model entries while keeping the catalog aligned with Ollama’s capabilities.`}),`\n`,_jsx(_components.p,{children:`To see what models are available:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` list`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`openaeon`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` list`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`To add a new model, simply pull it with Ollama:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` mistral`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The new model will be automatically discovered and available to use.`}),`\n`,_jsxs(_components.p,{children:[`If you set `,_jsx(_components.code,{children:`models.providers.ollama`}),` explicitly, auto-discovery is skipped and you must define models manually (see below).`]}),`\n`,_jsx(Heading,{level:`2`,id:`configuration`,children:`Configuration`}),`\n`,_jsx(Heading,{level:`3`,id:`basic-setup-implicit-discovery`,children:`Basic setup (implicit discovery)`}),`\n`,_jsx(_components.p,{children:`The simplest way to enable Ollama is via environment variable:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D32F2F`,\"--shiki-dark\":`#F97583`},children:`export`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` OLLAMA_API_KEY`}),_jsx(_components.span,{style:{color:`#D32F2F`,\"--shiki-dark\":`#F97583`},children:`=`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:`\"ollama-local\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`explicit-setup-manual-models`,children:`Explicit setup (manual models)`}),`\n`,_jsx(_components.p,{children:`Use explicit config when:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Ollama runs on another host/port.`}),`\n`,_jsx(_components.li,{children:`You want to force specific context windows or model lists.`}),`\n`,_jsx(_components.li,{children:`You want to include models that do not report tool support.`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`22`,language:`json5`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`json5`,children:_jsxs(_components.code,{language:`json5`,numberOfLines:`22`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` providers`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` ollama`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` baseUrl`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"http://ollama-host:11434\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama-local\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` api`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` id`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"gpt-oss:20b\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` name`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"GPT-OSS 20B\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` reasoning`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#1976D2`,\"--shiki-dark\":`#79B8FF`},children:` false`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` input`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` [`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`]`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` cost`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` { `}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:`input`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` 0`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` output`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` 0`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` cacheRead`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` 0`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` cacheWrite`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` 0 }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` contextWindow`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` 8192`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` maxTokens`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` 8192 * 10`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`If `,_jsx(_components.code,{children:`OLLAMA_API_KEY`}),` is set, you can omit `,_jsx(_components.code,{children:`apiKey`}),` in the provider entry and OpenAEON will fill it for availability checks.`]}),`\n`,_jsx(Heading,{level:`3`,id:`custom-base-url-explicit-config`,children:`Custom base URL (explicit config)`}),`\n`,_jsx(_components.p,{children:`If Ollama is running on a different host or port (explicit config disables auto-discovery, so define models manually):`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`json5`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`json5`,children:_jsxs(_components.code,{language:`json5`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` providers`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` ollama`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama-local\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` baseUrl`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"http://ollama-host:11434\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:` // No /v1 - use native Ollama API URL`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` api`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:` // Set explicitly to guarantee native tool-calling behavior`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not add `,_jsx(_components.code,{children:`/v1`}),` to the URL. The `,_jsx(_components.code,{children:`/v1`}),` path uses OpenAI-compatible mode, where tool calling is not reliable. Use the base Ollama URL without a path suffix.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`model-selection`,children:`Model selection`}),`\n`,_jsx(_components.p,{children:`Once configured, all your Ollama models are available:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json5`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`json5`,children:_jsxs(_components.code,{language:`json5`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` agents`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` defaults`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` model`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` primary`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama/gpt-oss:20b\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` fallbacks`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` [`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:`\"ollama/llama3.3\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama/qwen2.5-coder:32b\"`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`]`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`advanced`,children:`Advanced`}),`\n`,_jsx(Heading,{level:`3`,id:`reasoning-models`,children:`Reasoning models`}),`\n`,_jsxs(_components.p,{children:[`OpenAEON marks models as reasoning-capable when Ollama reports `,_jsx(_components.code,{children:`thinking`}),` in `,_jsx(_components.code,{children:`/api/show`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` deepseek-r1:32b`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`model-costs`,children:`Model Costs`}),`\n`,_jsx(_components.p,{children:`Ollama is free and runs locally, so all model costs are set to $0.`}),`\n`,_jsx(Heading,{level:`3`,id:`streaming-configuration`,children:`Streaming Configuration`}),`\n`,_jsxs(_components.p,{children:[`OpenAEON’s Ollama integration uses the `,_jsx(_components.strong,{children:`native Ollama API`}),` (`,_jsx(_components.code,{children:`/api/chat`}),`) by default, which fully supports streaming and tool calling simultaneously. No special configuration is needed.`]}),`\n`,_jsx(Heading,{level:`4`,id:`legacy-openai-compatible-mode`,children:`Legacy OpenAI-Compatible Mode`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tool calling is not reliable in OpenAI-compatible mode.`}),` Use this mode only if you need OpenAI format for a proxy and do not depend on native tool calling behavior.`]})}),`\n`,_jsxs(_components.p,{children:[`If you need to use the OpenAI-compatible endpoint instead (e.g., behind a proxy that only supports OpenAI format), set `,_jsx(_components.code,{children:`api: \"openai-completions\"`}),` explicitly:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json5`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`json5`,children:_jsxs(_components.code,{language:`json5`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` providers`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` ollama`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` baseUrl`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"http://ollama-host:11434/v1\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` api`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"openai-completions\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` injectNumCtxForOpenAICompat`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#1976D2`,\"--shiki-dark\":`#79B8FF`},children:` true`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`}),_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:` // default: true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama-local\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` [...]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This mode may not support streaming + tool calling simultaneously. You may need to disable streaming with `,_jsx(_components.code,{children:`params: { streaming: false }`}),` in model config.`]}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.code,{children:`api: \"openai-completions\"`}),` is used with Ollama, OpenAEON injects `,_jsx(_components.code,{children:`options.num_ctx`}),` by default so Ollama does not silently fall back to a 4096 context window. If your proxy/upstream rejects unknown `,_jsx(_components.code,{children:`options`}),` fields, disable this behavior:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json5`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`json5`,children:_jsxs(_components.code,{language:`json5`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` providers`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` ollama`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` baseUrl`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"http://ollama-host:11434/v1\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` api`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"openai-completions\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` injectNumCtxForOpenAICompat`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#1976D2`,\"--shiki-dark\":`#79B8FF`},children:` false`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` apiKey`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#22863A`,\"--shiki-dark\":`#FFAB70`},children:` \"ollama-local\"`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` models`}),_jsx(_components.span,{style:{color:`#212121`,\"--shiki-dark\":`#BBBBBB`},children:`:`}),_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` [...]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#24292EFF`,\"--shiki-dark\":`#B392F0`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`context-windows`,children:`Context windows`}),`\n`,_jsxs(_components.p,{children:[`For auto-discovered models, OpenAEON uses the context window reported by Ollama when available, otherwise it defaults to `,_jsx(_components.code,{children:`8192`}),`. You can override `,_jsx(_components.code,{children:`contextWindow`}),` and `,_jsx(_components.code,{children:`maxTokens`}),` in explicit provider config.`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Heading,{level:`3`,id:`ollama-not-detected`,children:`Ollama not detected`}),`\n`,_jsxs(_components.p,{children:[`Make sure Ollama is running and that you set `,_jsx(_components.code,{children:`OLLAMA_API_KEY`}),` (or an auth profile), and that you did `,_jsx(_components.strong,{children:`not`}),` define an explicit `,_jsx(_components.code,{children:`models.providers.ollama`}),` entry:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` serve`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`And that the API is accessible:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`curl`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` http://localhost:11434/api/tags`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`no-models-available`,children:`No models available`}),`\n`,_jsx(_components.p,{children:`OpenAEON only auto-discovers models that report tool support. If your model isn’t listed, either:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Pull a tool-capable model, or`}),`\n`,_jsxs(_components.li,{children:[`Define the model explicitly in `,_jsx(_components.code,{children:`models.providers.ollama`}),`.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`To add models:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` list`}),_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:` # See what's installed`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` gpt-oss:20b`}),_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:` # Pull a tool-capable model`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` pull`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` llama3.3`}),_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:` # Or another model`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`connection-refused`,children:`Connection refused`}),`\n`,_jsx(_components.p,{children:`Check that Ollama is running on the correct port:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes min-light min-dark`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1f1f1f`,color:`#24292eff`,\"--shiki-dark\":`#b392f0`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# Check if Ollama is running`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ps`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` aux`}),_jsx(_components.span,{style:{color:`#D32F2F`,\"--shiki-dark\":`#F97583`},children:` |`}),_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:` grep`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` ollama`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#C2C3C5`,\"--shiki-dark\":`#6B737C`},children:`# Or restart Ollama`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#6F42C1`,\"--shiki-dark\":`#B392F0`},children:`ollama`}),_jsx(_components.span,{style:{color:`#2B5581`,\"--shiki-dark\":`#9DB1C5`},children:` serve`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`see-also`,children:`See Also`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/concepts/model-providers`,children:`Model Providers`}),` - Overview of all providers`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/concepts/models`,children:`Model Selection`}),` - How to choose models`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/gateway/configuration`,children:`Configuration`}),` - Full config reference`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"min-light","dark":"min-dark"}},"config":{},"pageMetadata":{"summary":"Run OpenAEON with Ollama (local LLM runtime)","read_when":["You want to run OpenAEON with local models via Ollama","You need Ollama setup and configuration guidance"],"title":"Ollama","description":null,"href":"/providers/ollama"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Ollama","slug":"ollama","depth":1,"children":[]},{"title":"Quick start","slug":"quick-start","depth":2,"children":[]},{"title":"Model discovery (implicit provider)","slug":"model-discovery-implicit-provider","depth":2,"children":[]},{"title":"Configuration","slug":"configuration","depth":2,"children":[{"title":"Basic setup (implicit discovery)","slug":"basic-setup-implicit-discovery","depth":3,"children":[]},{"title":"Explicit setup (manual models)","slug":"explicit-setup-manual-models","depth":3,"children":[]},{"title":"Custom base URL (explicit config)","slug":"custom-base-url-explicit-config","depth":3,"children":[]},{"title":"Model selection","slug":"model-selection","depth":3,"children":[]}]},{"title":"Advanced","slug":"advanced","depth":2,"children":[{"title":"Reasoning models","slug":"reasoning-models","depth":3,"children":[]},{"title":"Model Costs","slug":"model-costs","depth":3,"children":[]},{"title":"Streaming Configuration","slug":"streaming-configuration","depth":3,"children":[]},{"title":"Legacy OpenAI-Compatible Mode","slug":"legacy-openai-compatible-mode","depth":4,"children":[]},{"title":"Context windows","slug":"context-windows","depth":3,"children":[]}]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[{"title":"Ollama not detected","slug":"ollama-not-detected","depth":3,"children":[]},{"title":"No models available","slug":"no-models-available","depth":3,"children":[]},{"title":"Connection refused","slug":"connection-refused","depth":3,"children":[]}]},{"title":"See Also","slug":"see-also","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/openaeon/27fa1e35cfee10a0/nav-tabs-underline.js"],"subdomain":"openaeon","siteName":"OpenAEON","title":"Ollama - OpenAEON","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/providers/ollama","matchLevel":0},"zh-Hans":{"href":"/zh-CN/providers/ollama","matchLevel":1},"ja":{"href":"/ja-JP","matchLevel":4}}},"lastModified":"2026-05-19T21:43:11.572Z","originalFileLocation":"providers/ollama.md","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"OpenAEON\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ollama - OpenAEON\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OpenAEON\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openaeon.ai/providers/ollama\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openaeon.mintlify.site/_mintlify/api/og/v2?division=Providers\u0026amp;title=Ollama\u0026amp;theme=1eb56a4997bd37effa6fc696\u0026amp;signature=a5751def35f9f8b695281ab3b693af094e9d8039fd8e205fef266a4a299ef32c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ollama - OpenAEON\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openaeon.mintlify.site/_mintlify/api/og/v2?division=Providers\u0026amp;title=Ollama\u0026amp;theme=1eb56a4997bd37effa6fc696\u0026amp;signature=a5751def35f9f8b695281ab3b693af094e9d8039fd8e205fef266a4a299ef32c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/openaeon/IujuYZf9skDFGj86/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OpenAEON\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF5A36\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openaeon.ai/providers/ollama\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/providers/ollama.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.openaeon.ai/providers/ollama\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://docs.openaeon.ai/zh-CN/providers/ollama\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.openaeon.ai/providers/ollama\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openaeon.ai/#organization\",\"name\":\"OpenAEON\",\"url\":\"https://docs.openaeon.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openaeon/j9-yvSl3gGOxURs2/assets/pixel-lobster.svg?fit=max\u0026auto=format\u0026n=j9-yvSl3gGOxURs2\u0026q=85\u0026s=ffca0ab5bf120fb2c1ed5ceb090d3f4d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openaeon.ai#website\",\"name\":\"OpenAEON\",\"url\":\"https://docs.openaeon.ai\",\"publisher\":{\"@id\":\"https://docs.openaeon.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openaeon.ai/providers/ollama#webpage\",\"url\":\"https://docs.openaeon.ai/providers/ollama\",\"name\":\"Ollama\",\"dateModified\":\"2026-05-19T21:43:11.572Z\",\"isPartOf\":{\"@id\":\"https://docs.openaeon.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openaeon.ai/providers/ollama#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openaeon.ai/providers/ollama#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Providers\",\"item\":\"https://docs.openaeon.ai/providers/anthropic\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ollama\",\"item\":\"https://docs.openaeon.ai/providers/ollama\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.openaeon.ai/providers/ollama#article\",\"headline\":\"Ollama\",\"name\":\"Ollama\",\"url\":\"https://docs.openaeon.ai/providers/ollama\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openaeon.ai/providers/ollama#webpage\"},\"dateModified\":\"2026-05-19T21:43:11.572Z\",\"publisher\":{\"@id\":\"https://docs.openaeon.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openaeon.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OpenAEON\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"OpenAEON\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/providers/ollama.md","siteName":"OpenAEON","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Install","pages":[{"title":"Install","href":"/install"}]},{"tab":"Channels","pages":[{"title":"Channels","href":"/channels"}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/pi"}]},{"tab":"Tools","pages":[{"title":"Tools","href":"/tools"}]},{"tab":"Models","groups":[{"group":"Overview","pages":[{"title":"Model Providers","href":"/providers"},{"title":"Model Provider Quickstart","href":"/providers/models"}]},{"group":"Model concepts","pages":[{"title":"Models CLI","href":"/concepts/models"}]},{"group":"Configuration","pages":[{"title":"Model Providers","href":"/concepts/model-providers"},{"title":"Model Failover","href":"/concepts/model-failover"}]},{"group":"Providers","pages":[{"title":"Anthropic","href":"/providers/anthropic"},{"title":"OpenAI","href":"/providers/openai"},{"title":"OpenRouter","href":"/providers/openrouter"},{"title":"Cloudflare AI Gateway","href":"/providers/cloudflare-ai-gateway"},{"title":"Claude Max API Proxy","href":"/providers/claude-max-api-proxy"},{"title":"Deepgram","href":"/providers/deepgram"},{"title":"GitHub Copilot","href":"/providers/github-copilot"},{"title":"Hugging Face (Inference)","href":"/providers/huggingface"},{"title":null,"href":"/providers/kilocode"},{"title":null,"href":"/providers/litellm"},{"title":"Amazon Bedrock","href":"/providers/bedrock"},{"title":"Vercel AI Gateway","href":"/providers/vercel-ai-gateway"},{"title":"Moonshot AI","href":"/providers/moonshot"},{"title":"Mistral","href":"/providers/mistral"},{"title":"MiniMax","href":"/providers/minimax"},{"title":"NVIDIA","description":null,"href":"/providers/nvidia"},{"title":"Ollama","href":"/providers/ollama"},{"title":"OpenCode Zen","description":null,"href":"/providers/opencode"},{"title":"Qwen","href":"/providers/qwen"},{"title":null,"href":"/providers/together"},{"title":"Venice AI","href":"/providers/venice"},{"title":"vLLM","href":"/providers/vllm"},{"title":"Xiaomi MiMo","href":"/providers/xiaomi"},{"title":"GLM Models","href":"/providers/glm"},{"title":"Z.AI","href":"/providers/zai"},{"title":"Synthetic","href":"/providers/synthetic"},{"title":"Qianfan","href":"/providers/qianfan"}]}]},{"tab":"Platforms","pages":[{"title":"Platforms","href":"/platforms"}]},{"tab":"Gateway \u0026 Ops","pages":[{"title":"Gateway \u0026 Ops","href":"/gateway"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/cli"}]},{"tab":"Help","pages":[{"title":"Help","href":"/help"}]}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-CN/providers/ollama"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja-JP"}]}]},"basePath":"","title":"Ollama - OpenAEON","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":[],"chunks":[]}