Kimo
Docs
v1.0
Changeloggetkimo.design
Docs
v1.0
Built-in agent

Built-in agent

Kimo has its own agent in the Agent tab of the right panel. It edits the open file through the same tools as an external coding agent, so every change is an undoable step you can see on the canvas. It runs on a model you choose: a coding-agent CLI you already use, or an API key.

5 min read
·
Kimo 1.0 · format 1.0
On this page4 sections
  1. Choose a model
  2. Web access
  3. Where keys are kept
  4. Next

Choose a model

Local agent CLIs (desktop app)

Kimo can drive Claude Code (claude), Codex (codex) or Gemini CLI (gemini) when it is installed and signed in on your machine. Turns are then billed to your Claude, ChatGPT or Google plan (or the CLI's own API key), and Kimo never sees or stores the CLI's credentials. You can also add another CLI in Settings › AI providers.

Kimo finds the CLIs on your PATH (including your login shell's) and in the usual install folders, and checks whether each one is signed in. If one isn't, sign in from a terminal (claude auth login, codex login, or run gemini) and click Re-check all.

Kimo restricts each CLI to Kimo's own tools and, while web access is on, its web tools: it runs in a private working folder under ~/.kimo/cli-workspaces/, without file or shell tools of its own. Codex also runs without its ChatGPT apps.

API providers

Settings › AI providers lists:

  • Anthropic
  • OpenAI-compatible
  • Google Gemini
  • OpenRouter
  • Custom endpoint · Ollama (a local OpenAI-compatible server such as Ollama at http://localhost:11434/v1; no key needed)
  • Bedrock · Vertex · Foundry (Claude through AWS, Google Cloud or Azure credentials; desktop only)
  • Add provider for any other endpoint speaking the OpenAI Chat, OpenAI Responses or Anthropic API

Saving a key runs Test right away: it lists the provider's models and sends one tiny request, so it costs a few tokens.

Which model is used

When you open the Agent tab, Kimo picks:

  1. The default you chose (for example with Use Claude Code on the first-run card), if it is still usable.
  2. Claude Code, if it is installed and signed in.
  3. Another signed-in CLI.
  4. An API provider: Anthropic first, otherwise the first one configured.
  5. Otherwise the panel asks you to Connect a model.

The model chooser

The model chip in the composer shows the model's name, with a mark for where it runs: a terminal for a CLI, a cloud for an API, a hard drive for a local runtime. Click it to open the chooser, which switches the model for the current session:

  • Recent lists your last two picks (model and provider) when two or more providers are connected. One click picks both.
  • Provider chips come next: the CLIs (Claude Code, Codex, Gemini CLI) on the first row, the API providers (Anthropic, OpenAI, Gemini, Local and others) on the second. Only connected providers are listed. A CLI that is installed but signed out keeps its chip with a warning dot and offers Sign in….
  • Models of the chosen provider follow. A CLI lists Default (CLI decides) first, which uses the model set in the CLI itself, then specific models. A tag marks the Best and Fast models and local ones. Hover a model to see its context window and output limit.
  • Effort sets how hard the model thinks: Low, Medium, High or Max, showing only the levels the model supports. Models without the control (local models, gpt-4.1, Gemini CLI) hide it. New sessions start at High, and the level stays when you switch models.
  • Connect a provider… (⌘,) opens Settings › AI providers.

When a provider lists 9 or more models, a search field appears at the top. Typing filters models across all providers, grouped by provider.

Keys: type to search, ← / → switch provider while the search field is empty, ↑ / ↓ move through the models, Enter picks, Tab moves to Effort (then ← / → change the level), Esc closes.

The specific CLI models, checked against the installed CLIs:

CLIModels (--model value)Effort
Claude CodeOpus 5.5 (claude-opus-5-5), Sonnet 5.5 (claude-sonnet-5-5), Haiku 4.5 (claude-haiku-4-5-20251001), Fable 5.1 (claude-fable-5-1)--effort low, medium, high or max; none for Haiku 4.5
CodexGPT-5.6 Terra (gpt-5.6-terra), GPT-5.6 Luna (gpt-5.6-luna)-c model_reasoning_effort low, medium, high or max
Gemini CLIGemini 2.5 Pro, Gemini 2.5 FlashNone
Claude Code
Models (--model value) Opus 5.5 (claude-opus-5-5), Sonnet 5.5 (claude-sonnet-5-5), Haiku 4.5 (claude-haiku-4-5-20251001), Fable 5.1 (claude-fable-5-1)
Effort --effort low, medium, high or max; none for Haiku 4.5
Codex
Models (--model value) GPT-5.6 Terra (gpt-5.6-terra), GPT-5.6 Luna (gpt-5.6-luna)
Effort -c model_reasoning_effort low, medium, high or max
Gemini CLI
Models (--model value) Gemini 2.5 Pro, Gemini 2.5 Flash
Effort None

What each Effort level sends to an API provider:

ModelLowMediumHighMax
Claude Opus 5.5, Sonnet 5.5, Fable 5.1output_config.effort: lowmediumhighmax
Claude Haiku 4.5No extended thinking4,096 thinking tokens8,19216,000
OpenAI o3reasoning_effort: lowmediumhighNot offered
Gemini 2.5 Pro, FlashthinkingBudget: 10248,19216,38424,576
Claude Opus 5.5, Sonnet 5.5, Fable 5.1
Low output_config.effort: low
Medium medium
High high
Max max
Claude Haiku 4.5
Low No extended thinking
Medium 4,096 thinking tokens
High 8,192
Max 16,000
OpenAI o3
Low reasoning_effort: low
Medium medium
High high
Max Not offered
Gemini 2.5 Pro, Flash
Low thinkingBudget: 1024
Medium 8,192
High 16,384
Max 24,576

Sessions saved before 1.0 used Off, Auto and Max. They open as Low, High and Max.

Web access

The agent can search the web and read pages when a task needs facts from outside the file, such as a library's default font stack or a product's current copy. It is on by default.

  • Settings › AI providers › Allow web access sets it for new sessions.
  • Web access in the composer's … menu turns it off (or back on) for the current session only. A new or reopened session starts from the setting again.
  • Settings › Fonts & privacy › No third-party fetch turns it off everywhere. The setting row and the menu row show as disabled and say why.

Each search and each page read is a step in the thread ("Searching the web for “…”", "Reading example.com") and is saved with the session. On desktop it is also a row in Activity. The reply ends with Sources: and the links it used. Web access needs no approval, and auto-approve doesn't change it.

What each model uses:

ModelWeb tools
Claude CodeIts WebSearch and WebFetch tools, and no other built-in tool
CodexIts live web_search tool
Gemini CLIIts google_web_search and web_fetch tools
AnthropicThe web_search and web_fetch server tools. Each search costs $10 per 1,000 searches on top of tokens, and the cost estimate includes it
OpenAI-compatible (Responses API)OpenAI's web_search tool
Foundryweb_search and web_fetch (basic versions)
Vertexweb_search only
Google Gemini, OpenRouter, custom endpoints, Bedrock, OpenAI Chat Completions, other CLIsNone. The Web access row is disabled ("This model can't use the web")
Claude Code
Web tools Its WebSearch and WebFetch tools, and no other built-in tool
Codex
Web tools Its live web_search tool
Gemini CLI
Web tools Its google_web_search and web_fetch tools
Anthropic
Web tools The web_search and web_fetch server tools. Each search costs $10 per 1,000 searches on top of tokens, and the cost estimate includes it
OpenAI-compatible (Responses API)
Web tools OpenAI's web_search tool
Foundry
Web tools web_search and web_fetch (basic versions)
Vertex
Web tools web_search only
Google Gemini, OpenRouter, custom endpoints, Bedrock, OpenAI Chat Completions, other CLIs
Web tools None. The Web access row is disabled ("This model can't use the web")

With web access off, Claude Code runs with no built-in tools, Codex runs with web_search="disabled", and Gemini CLI excludes both web tools.

Where keys are kept

Desktop appBrowser
API keysThe OS keychain (macOS Keychain, Windows Credential Manager, Secret Service on Linux). Kimo's web layer never sees them: the desktop app adds them to each request itselflocalStorage of the Kimo origin. Scripts on that page can read it, so prefer the desktop app
CLI sign-inStays with the CLICLIs aren't available
Custom endpointsThe key is only sent to the origin you saved it forSame
API keys
Desktop app The OS keychain (macOS Keychain, Windows Credential Manager, Secret Service on Linux). Kimo's web layer never sees them: the desktop app adds them to each request itself
Browser localStorage of the Kimo origin. Scripts on that page can read it, so prefer the desktop app
CLI sign-in
Desktop app Stays with the CLI
Browser CLIs aren't available
Custom endpoints
Desktop app The key is only sent to the origin you saved it for
Browser Same

Next