docs(kilo-docs): sync recent opencode user docs (#9661)

Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
This commit is contained in:
kilo-code-bot[bot]
2026-04-29 17:24:13 +02:00
committed by GitHub
parent 365b85b100
commit d1998e8f0d
9 changed files with 88 additions and 25 deletions
@@ -66,6 +66,12 @@ Then set your default model:
{% /tab %}
{% /tabs %}
## Reasoning Variants
Mistral's adjustable reasoning support is exposed only for reasoning-capable Mistral Small 4 models: `mistral-small-2603` and `mistral-small-latest`. When one of these models is selected, Kilo offers a `high` variant that sends `reasoningEffort: "high"` to the Mistral provider.
Other Mistral models do not get automatic reasoning variants, even if they appear in the same provider. See Mistral's [adjustable reasoning documentation](https://docs.mistral.ai/capabilities/reasoning/adjustable) for provider-level details.
## Using Codestral
[Codestral](https://docs.mistral.ai/capabilities/code_generation/) is a model specifically designed for code generation and interaction.
@@ -24,7 +24,7 @@ Describe what you want to accomplish in natural language, and Kilo Code will:
| Category | Purpose | Tool Names |
|:---|:---|:---|
| Read | Access file content and code structure | `read`, `glob`, `grep` |
| Edit | Create or modify files and code | `edit`, `multiedit`, `write`, `apply_patch` |
| Edit | Create or modify files and code | `edit`, `write`, `apply_patch` |
| Execute | Run commands and perform system operations | `bash` |
| Web | Fetch and search web content | `webfetch`, `websearch`, `codesearch` |
| Workflow | Manage task flow and sub-agents | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill` |
@@ -103,8 +103,8 @@ Every tool use is subject to a permission check. The default action for any tool
| Tool(s) | Default |
|:---|:---|
| `read`, `glob`, `grep`, `list` | `ask` |
| `edit`, `write`, `multiedit`, `apply_patch` | `ask` |
| `read`, `glob`, `grep` | `ask` |
| `edit`, `write`, `apply_patch` | `ask` |
| `bash` | `ask` (per-command) |
| `external_directory` | `ask` (when accessing paths outside the project) |
| `task` | `ask` |
@@ -160,7 +160,6 @@ This safety mechanism ensures you maintain control over which files are modified
| `glob` | Finds files by glob pattern | Read |
| `grep` | Searches file contents with regex | Read |
| `edit` | Makes precise text replacements in a file | Edit |
| `multiedit` | Multiple edits in a single call | Edit |
| `write` | Creates new files or overwrites existing ones | Edit |
| `apply_patch` | Applies unified diffs (used with certain models) | Edit |
| `bash` | Runs shell commands | Execute |
@@ -19,7 +19,7 @@ Tools are organized into logical groups based on their functionality:
| Category | Purpose | Tools | Common Use |
|---|---|---|---|
| **Read Group** | File system reading and searching | `read`, `glob`, `grep` | Code exploration and analysis |
| **Edit Group** | File system modifications | `edit`, `multiedit`, `write`, `apply_patch` | Code changes and file manipulation |
| **Edit Group** | File system modifications | `edit`, `write`, `apply_patch` | Code changes and file manipulation |
| **Execute Group** | Shell command execution | `bash` | Running scripts, building projects |
| **Web Group** | Fetch and search web content | `webfetch`, `websearch`, `codesearch` | Research, documentation lookup |
| **Browser Group** | Web browser automation | `kilo-playwright_*` (via built-in Playwright MCP) | Browser testing and interaction |
@@ -49,10 +49,11 @@ These tools help Kilo Code understand your code and project:
These tools help Kilo Code make changes to your code:
- `edit` - Makes precise text replacements in a file
- `multiedit` - Multiple edits in a single call
- `write` - Creates new files or fully overwrites existing ones
- `apply_patch` - Applies unified diffs (used with certain models)
For multiple replacements in one file, Kilo uses repeated `edit` calls or a patch-style edit when the model supports it.
### Execute Tools
These tools help Kilo Code run commands:
@@ -329,7 +329,7 @@ You can also set options that apply to all models from a provider:
"options": {
"apiKey": "{env:OPENAI_API_KEY}",
"baseURL": "https://my-proxy.example.com/v1",
"timeout": 120000,
"timeout": 300000,
},
},
},
@@ -340,7 +340,7 @@ You can also set options that apply to all models from a provider:
|---|---|---|
| `apiKey` | `string` | API key (supports `{env:VAR}` syntax) |
| `baseURL` | `string` | Override the provider's base API URL |
| `timeout` | `number \| false` | Request timeout in milliseconds, or `false` to disable |
| `timeout` | `number \| false` | Request timeout in milliseconds. Defaults to `300000` (5 minutes); set to `false` to disable |
## Filtering Available Models
@@ -241,7 +241,7 @@ You can use `~` or `$HOME` at the start of a pattern to reference your home dire
### External Directories
Use `external_directory` to allow tool calls that touch paths outside the working directory where Kilo was started. This applies to any tool that takes a path as input (for example `read`, `edit`, `list`, `glob`, `grep`, and many bash commands).
Use `external_directory` to allow tool calls that touch paths outside the working directory where Kilo was started. This applies to any tool that takes a path as input (for example `read`, `edit`, `glob`, `grep`, and many bash commands).
```json
{
@@ -308,13 +308,56 @@ Common configuration options include:
- **`mcp`** - MCP server configuration
- **`permission`** - Tool permission settings (`allow` or `ask`)
- **`instructions`** - Paths to instruction files (e.g., `["CONTRIBUTING.md", ".cursor/rules/*.md"]`)
- **`formatter`** - Code formatter configuration
- **`formatter`** - Code formatter configuration (`true`, `false`, or formatter-specific entries)
- **`lsp`** - Language server configuration (`true`, `false`, or server-specific entries)
- **`disabled_providers`** / **`enabled_providers`** - Control which providers are available
{% callout type="tip" %}
**Using a model that's not in the built-in list?** You can register any model by adding it under `provider.<provider_id>.models` in your config file. See [Custom Models](/docs/code-with-ai/agents/custom-models) for full details and examples.
{% /callout %}
### Formatter and LSP Toggles
Set `formatter` or `lsp` to `true` to use built-in defaults, or `false` to disable the feature completely:
```jsonc
{
"formatter": true,
"lsp": false,
}
```
Both keys also accept object configuration for specific tools or language servers. Custom LSP server entries must include an `extensions` array unless the entry disables a built-in server:
```jsonc
{
"lsp": {
"my-language-server": {
"command": ["my-lsp", "--stdio"],
"extensions": [".foo"],
},
},
}
```
### TUI Keybindings on Windows
The TUI gives `Ctrl+Z` to input undo on Windows because native Windows terminals do not support POSIX terminal suspend. On Windows, `input_undo` defaults to `ctrl+z,ctrl+-,super+z` and `terminal_suspend` is disabled. On macOS and Linux, `terminal_suspend` defaults to `ctrl+z`.
### OpenTelemetry Export
Kilo telemetry is enabled by default and can be disabled with `experimental.openTelemetry = false`:
```jsonc
{
"experimental": {
"openTelemetry": false,
},
}
```
If `OTEL_EXPORTER_OTLP_ENDPOINT` is set, the CLI exports OpenTelemetry traces and logs to that OTLP HTTP endpoint. You can also pass `OTEL_EXPORTER_OTLP_HEADERS` as comma-separated `key=value` pairs and `OTEL_RESOURCE_ATTRIBUTES` as comma-separated resource attributes. Request spans include `http.method`, `http.path`, route params such as `session.id` and `message.id`, and internal params under the `opencode.*` namespace.
### Environment Variables
Use `{env:VARIABLE_NAME}` syntax in config files to reference environment variables:
@@ -22,15 +22,15 @@ Every AI model has a maximum context window — a limit on how much text it can
## The Solution: Auto-Compaction
Kilo Code uses a **Compaction** system to manage context automatically. When your conversation approaches the token limit, compaction kicks in and produces a structured summary that captures:
Kilo Code uses a **Compaction** system to manage context automatically. When your conversation approaches the token limit, compaction kicks in and produces an anchored summary that captures:
- The overall goal of the session
- Instructions given along the way
- Key discoveries made
- What has been accomplished so far
- Constraints and preferences you gave along the way
- Progress, key decisions, and next steps
- Critical context needed to continue
- Relevant files and directories
This summary replaces the earlier conversation history, freeing up context window space while maintaining continuity in your work.
This summary replaces older conversation history while Kilo keeps the most recent turns verbatim when they fit. If a session has already been compacted, Kilo updates the previous summary instead of starting over, preserving still-relevant details and removing stale ones.
## How Compaction Triggers
@@ -60,6 +60,8 @@ You can trigger compaction at any time:
|---|---|---|
| `compaction.auto` | `true` | Automatically compact when the usable window is reached |
| `compaction.prune` | `true` | Clear old tool outputs beyond the 40K recency window |
| `compaction.tail_turns` | `2` | Keep the most recent user turns and their responses verbatim when possible |
| `compaction.preserve_recent_tokens` | 25% of usable context, clamped between 2,000 and 8,000 tokens | Token budget for the verbatim recent tail |
| `compaction.reserved` | `min(20,000, model_max_output_tokens)` | Token headroom kept free for the next turn — also defines the compaction trigger point |
## Configuration
@@ -71,6 +73,8 @@ Compaction is configured in your `kilo.jsonc` file:
"compaction": {
"auto": true, // Enable or disable automatic compaction
"prune": true, // Enable pruning of old tool outputs beyond the recency window
"tail_turns": 2, // Recent user turns to keep verbatim during compaction
"preserve_recent_tokens": 8000, // Maximum token budget for the recent tail
"reserved": 20000, // Token buffer kept free; smaller = later trigger, larger = earlier trigger
},
}
@@ -80,6 +84,8 @@ Compaction is configured in your `kilo.jsonc` file:
|---|---|---|---|
| `compaction.auto` | boolean | `true` | Enable or disable automatic compaction when the usable window is reached |
| `compaction.prune` | boolean | `true` | Enable pruning of old tool outputs outside the 40K token recency window |
| `compaction.tail_turns` | number | `2` | Number of recent user turns, including following assistant and tool responses, to keep verbatim during compaction |
| `compaction.preserve_recent_tokens` | number | 25% of usable context, clamped between 2,000 and 8,000 tokens | Maximum token budget for recent turns kept verbatim after compaction |
| `compaction.reserved` | number | `min(20000, model_max_output)` | Token headroom reserved for the next turn. Applies only to models that advertise a separate input limit; models with a single context window use their full output cap as the reserve instead. |
### Use a different model for compaction
@@ -111,15 +117,15 @@ If no compaction agent is set, the current session's model is used.
## The Solution: Auto-Compaction
Kilo CLI uses a **Compaction** system to manage context automatically. When your conversation approaches the token limit, compaction kicks in and produces a structured summary that captures:
Kilo CLI uses a **Compaction** system to manage context automatically. When your conversation approaches the token limit, compaction kicks in and produces an anchored summary that captures:
- The overall goal of the session
- Instructions given along the way
- Key discoveries made
- What has been accomplished so far
- Constraints and preferences you gave along the way
- Progress, key decisions, and next steps
- Critical context needed to continue
- Relevant files and directories
This summary replaces the earlier conversation history, freeing up context window space while maintaining continuity in your work.
This summary replaces older conversation history while Kilo keeps the most recent turns verbatim when they fit. If a session has already been compacted, Kilo updates the previous summary instead of starting over, preserving still-relevant details and removing stale ones.
## How Compaction Triggers
@@ -148,6 +154,8 @@ You can trigger compaction at any time:
|---|---|---|
| `compaction.auto` | `true` | Automatically compact when the usable window is reached |
| `compaction.prune` | `true` | Clear old tool outputs beyond the 40K recency window |
| `compaction.tail_turns` | `2` | Keep the most recent user turns and their responses verbatim when possible |
| `compaction.preserve_recent_tokens` | 25% of usable context, clamped between 2,000 and 8,000 tokens | Token budget for the verbatim recent tail |
| `compaction.reserved` | `min(20,000, model_max_output_tokens)` | Token headroom kept free for the next turn — also defines the compaction trigger point |
## Configuration
@@ -159,6 +167,8 @@ Compaction is configured in your `kilo.jsonc` file:
"compaction": {
"auto": true, // Enable or disable automatic compaction
"prune": true, // Enable pruning of old tool outputs beyond the recency window
"tail_turns": 2, // Recent user turns to keep verbatim during compaction
"preserve_recent_tokens": 8000, // Maximum token budget for the recent tail
"reserved": 20000, // Token buffer kept free; smaller = later trigger, larger = earlier trigger
},
}
@@ -168,6 +178,8 @@ Compaction is configured in your `kilo.jsonc` file:
|---|---|---|---|
| `compaction.auto` | boolean | `true` | Enable or disable automatic compaction when the usable window is reached |
| `compaction.prune` | boolean | `true` | Enable pruning of old tool outputs outside the 40K token recency window |
| `compaction.tail_turns` | number | `2` | Number of recent user turns, including following assistant and tool responses, to keep verbatim during compaction |
| `compaction.preserve_recent_tokens` | number | 25% of usable context, clamped between 2,000 and 8,000 tokens | Maximum token budget for recent turns kept verbatim after compaction |
| `compaction.reserved` | number | `min(20000, model_max_output)` | Token headroom reserved for the next turn. Applies only to models that advertise a separate input limit; models with a single context window use their full output cap as the reserve instead. |
### Use a different model for compaction
@@ -151,7 +151,7 @@ permission:
read: allow
```
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `list`, `task`, `webfetch`, `websearch`, `codesearch`, `todowrite`, `todoread`, and more.
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `task`, `webfetch`, `websearch`, `codesearch`, `todowrite`, `todoread`, and more.
### `model`
@@ -387,7 +387,7 @@ permission:
read: allow
```
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `list`, `task`, `webfetch`, `websearch`, `codesearch`, `todowrite`, `todoread`, and more.
Known permission types include: `read`, `edit`, `bash`, `glob`, `grep`, `task`, `webfetch`, `websearch`, `codesearch`, `todowrite`, `todoread`, and more.
### `model`
@@ -44,7 +44,6 @@ The Auto Approve tab lists the following tool-specific permissions. Some tools a
| `edit` | Editing existing files |
| `glob` | File pattern matching / searching by name |
| `grep` | Searching file contents by regex |
| `list` | Listing directory contents |
| `task` | Launching sub-agents |
| `skill` | Loading specialized skills |
| `lsp` | Language server protocol operations |
@@ -109,7 +108,6 @@ Permissions are configured under the `permission` key in `kilo.jsonc`. The follo
| `edit` | Editing existing files |
| `glob` | File pattern matching / searching by name |
| `grep` | Searching file contents by regex |
| `list` | Listing directory contents |
| `task` | Launching sub-agents |
| `skill` | Loading specialized skills |
| `lsp` | Language server protocol operations |
@@ -171,6 +171,7 @@ Available experimental toggles include:
- **LSP integration** — expose language server diagnostics to the agent
- **Paste summary** — summarize large clipboard pastes before including them
- **Batch tool** — allow the agent to batch multiple tool calls in one step
- **OpenTelemetry** — enable Kilo telemetry and optional OTLP export when configured
Advanced options not exposed in the UI can be configured via the `experimental` key in `kilo.jsonc`:
@@ -179,6 +180,7 @@ Advanced options not exposed in the UI can be configured via the `experimental`
"experimental": {
"codebase_search": true,
"batch_tool": false,
"openTelemetry": true,
"disable_paste_summary": false,
"mcp_timeout": 30000
}
@@ -190,7 +192,9 @@ Refer to the auto-generated `$schema` in your `kilo.jsonc` for the full list of
{% /tab %}
{% tab label="CLI" %}
The CLI does not currently expose the same experimental feature toggles as the **VSCode (Legacy)** version. Configuration of model behavior, file editing strategies, and other advanced options is handled directly in the JSONC config files. Refer to the auto-generated `$schema` in your `kilo.jsonc` for the full list of available options.
The CLI does not currently expose the same experimental feature toggles as the **VSCode (Legacy)** version. Configuration of model behavior, file editing strategies, telemetry, and other advanced options is handled directly in the JSONC config files. Refer to the auto-generated `$schema` in your `kilo.jsonc` for the full list of available options.
Telemetry is enabled by default. Set `experimental.openTelemetry` to `false` in `kilo.jsonc` to opt out. If `OTEL_EXPORTER_OTLP_ENDPOINT` is set in the environment, the CLI also exports OpenTelemetry traces and logs to that OTLP HTTP endpoint.
{% /tab %}
{% tab label="VSCode (Legacy)" %}