Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 58 additions & 10 deletions packages/kilo-docs/pages/automate/agent-manager.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions packages/kilo-docs/pages/automate/integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ Once approved:
- GitHub will show a **Connected** status.
- Your Kilo workspace can now access GitHub repositories securely.

### 5. Choose the GitHub AI model

The GitHub integration panel includes an **AI Model** selector that sets which model Kilo uses when it responds to `@kilocode-bot` mentions on GitHub issues and pull requests. A personal integration has one selector. An organization integration shows a selector for each connected GitHub installation, so you can give each installation its own model. Changing an organization's model requires permission to manage organization billing.

---

## Connecting GitLab
Expand Down
17 changes: 17 additions & 0 deletions packages/kilo-docs/pages/automate/tools/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ These tools help manage the conversation and task flow:
- `todoread` - Reads the current session TODO list
- `plan` - Enters structured planning mode
- `skill` - Invokes a reusable skill (Markdown instruction module)
- `schedule_wakeup` - Schedules a future turn for the current session
- `cancel_wakeup` - Lists or cancels the current session's scheduled wakeups
- `agent_manager` - Starts Agent Manager local or worktree sessions in VS Code
- `board_post` / `board_read` - Exchange messages on the experimental Kilo Swarm board

Expand Down Expand Up @@ -147,6 +149,21 @@ For example, a primary agent can start independent background research with a ca

Background subagents are available when the server exposes the background capability. Do not poll for progress or duplicate work in the same files. If Kilo returns a `task_id` after a failed or interrupted child, use it to resume that child when the current session and permissions allow it. A child can create more task children only when its configured depth and `task` permission allow it.

### Scheduled wakeups

In the CLI and VS Code extension, the agent can defer its own continuation with `schedule_wakeup` instead of holding a turn open:

- The agent gives a prompt to resume with and exactly one of `delay` (for example `30s`, `5m`, `2h`, `1d`; a bare number is seconds) or `when` (an absolute ISO-8601 date-time).
- A delay under 10 seconds is raised to 10 seconds, a time more than 7 days away is pulled back to 7 days, and a time at or before now is rejected.
- One session holds at most 10 pending wakeups.
- When the wakeup fires, the session resumes with the scheduled prompt marked `[scheduled wakeup]`, and a note that no user is present.
- Wakeups are stored and re-armed when the project is opened again, so they survive a restart. An overdue wakeup fires when the project opens.
- A wakeup that fires while the session is paused is logged as unresumable instead of resuming.

`cancel_wakeup` lists the session's pending wakeups with their id, due time, and reason (or the scheduled prompt when no reason was given) and cancels one by id. Cancelling an id that already fired or was cancelled reports it without failing.

This is for waiting on something outside a blocking command, such as a build, deploy, or CI window, or a later check-in on a slowly changing task. For short waits, use a blocking shell command with a raised `timeout` instead.

### Kilo Swarm board tools

Kilo Swarm is an optional shared board for one main session and its `task` descendants, including nested descendants. Enable it in **Settings > Experimental** or set `experimental.shared_agent_board` to `true` in `kilo.jsonc`. The board is not shared by unrelated sessions, even when they use the same repository or worktree.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ Type `@` in the TUI to get file autocomplete suggestions, or mention file paths
- URLs → Opens in browser
- Messages → Expand/collapse details
- Code blocks → Copy button appears
- Mermaid code blocks → Fenced `mermaid` blocks render as diagrams after the message finishes streaming. The source remains copyable, and invalid Mermaid syntax stays visible in a contained error state.
- Mermaid code blocks → In VS Code and JetBrains, fenced `mermaid` blocks render as diagrams after the message finishes streaming. The source remains copyable, and invalid Mermaid syntax stays visible in a contained error state. The terminal cannot render Mermaid, so Ask mode in the CLI uses plain-text or ASCII diagrams instead; explicitly requesting Mermaid source still returns it.
- Charts → In VS Code, asking for a chart, graph, or plot renders an inline chart in the conversation. Supported types include bar, line, scatter, pie, doughnut, radar, bubble, and polar area. Diagrams and flowcharts still render as Mermaid.

**Status signals:**
Expand Down Expand Up @@ -140,6 +140,8 @@ When Kilo Code needs more information to complete a task, it asks a follow-up qu
2. **Options Displayed** - Selectable options are presented that you can choose from
3. **Selection** - Pick an option or type a custom response

For single-select questions, the agent can mark one option as the default answer. That option starts selected and focused, so pressing `Enter` confirms it. You can still choose another option, and a default never submits on its own or takes focus from the message composer.

**Benefits:**

- **Speed** - Quickly respond without typing full answers
Expand Down
15 changes: 15 additions & 0 deletions packages/kilo-docs/pages/code-with-ai/agents/context-mentions.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,12 @@ Type `@` in the chat input to get autocomplete suggestions. You can mention:
| **Terminal** | In the sidebar, include the active VS Code terminal output. In Agent Manager, include the focused terminal for the selected session or worktree, including embedded **Run** and **Setup** tabs. | `@terminal` |
| **Git Changes** | Attach uncommitted working-tree diffs and new files | `@git-changes` |
| **Past chats** | Add a previous session's chat history as context | `@` → **Past chats** → pick a session |
| **Model** | Reference a model for a subagent or Agent Manager session | `@anthropic/claude-sonnet-4.6` |

Selecting a suggestion inserts the mention and highlights it in the input. File contents, terminal output, and git changes are attached as context when you send the message.

The query can contain spaces, so files and folders whose names include spaces stay reachable — type `@my report.txt`. Files, past chats, and entries such as **Terminal**, **Git changes**, and **Browse files...** are ranked together by how well they match the query, so the best match appears first whatever kind of item it is. Past chats are also matched by title directly in the list.

Terminal context is limited to 500 lines or 50,000 characters. Longer output is truncated. If no terminal content is available, Kilo reports that terminal content is unavailable instead of attaching an empty file.

### Referencing Past Chats
Expand All @@ -37,6 +40,12 @@ Choosing **Past chats** from the `@` menu opens a searchable picker of sessions

Very long chat histories are truncated, keeping the beginning and end, so a single mention cannot fill the context window.

### Referencing a Model

Choosing **Model** from the `@` menu opens the model picker. Picking a model inserts an `@provider/model` token into the prompt, for example `@anthropic/claude-sonnet-4.6`.

Selecting a model this way does not change the model used by the current session. The token is plain inline text so the agent can read the exact model key — useful for telling a `task` subagent or an Agent Manager session which model to use. The token moves and deletes as a single unit, and it is never sent as a file or rendered as a clickable file link.

### Drag and Drop

You can also add file mentions by dragging and dropping:
Expand All @@ -46,8 +55,14 @@ You can also add file mentions by dragging and dropping:
| **Explorer / Editor tabs** | Drag a file or folder from VS Code's Explorer or an editor tab into the chat input | Inserts an `@/relative/path` mention |
| **Multiple files** | Drag several files at once | Inserts space-separated `@` mentions |
| **Agent Manager diff headers** | Drag a file header from the Agent Manager's diff panel into chat | Inserts an `@file` mention |
| **Session tabs** | Drag a session tab from the chat tab strip into the chat input | Inserts a mention for that session |
| **Worktree cards** | Drag a worktree card from the Agent Manager sidebar into the chat input | Inserts an `@` worktree mention that carries the worktree's directory, branch, and session IDs |
| **Terminal tabs** | Drag a terminal tab into the chat input | Inserts an `@terminal` mention for that terminal |
| **Document tabs** | Drag an open tab from the Agent Manager Documents inspector into the chat input | Inserts an `@file` mention for that document |
| **Images** | Hold **Shift** while dragging an image file from your OS file manager into the chat input | Attaches the image |

While a mention drag is over the prompt, the prompt highlights to show it is the drop target. The inserted mention ends with a trailing space so you can keep typing.

{% callout type="info" %}
VS Code requires holding **Shift** when dragging files from outside the editor (e.g. Finder or Windows Explorer) into a webview. This applies to image drops — file drops from within VS Code (Explorer, editor tabs) work without Shift.
{% /callout %}
Expand Down
9 changes: 9 additions & 0 deletions packages/kilo-docs/pages/code-with-ai/agents/goals.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@ To treat a control word as the objective, separate it with `--`:

The `--` delimiter sets the literal objective `pause` instead of pausing the current goal. The VS Code goal composer adds this delimiter for you.

{% /tab %}
{% tab label="Mobile" %}

Select `/goal` in the composer with no objective to start goal-compose mode, then enter the objective. The next message you send forwards `/goal <objective>`. To set a goal without compose mode, type `/goal <objective>` and send it directly.

Goals require a connected CLI that advertises the `goal` command. A session whose CLI does not support it shows an upgrade message instead of sending.

{% /tab %}
{% /tabs %}

Expand All @@ -50,6 +57,8 @@ An objective can be up to 10,000 characters.

The CLI and VS Code also show a goal control next to the composer. Select it to pause, resume, or clear the goal. When a goal is complete, the control label is **Restart goal** instead of **Resume**.

In the mobile app, a session with a goal shows a fixed goal section under the session header. The section shows the status and objective, plus the CLI's reason when it provides one; tap it to **Edit** the objective, **Pause** or **Resume**, or **Remove** the goal. Editing sends `/goal <objective>`, and the other actions send `/goal pause`, `/goal resume`, and `/goal clear`.

## Goal statuses

| Status | Meaning |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ While the specifics change constantly, some principles stay consistent:
- Set per-agent defaults and a global default in the **Settings** panel (Models tab), or directly in the `kilo.jsonc` config file.
- **Model precedence:** Session override → Last picked per agent → Per-agent config → Global config → [Auto Free](/docs/code-with-ai/agents/auto-model#tiers) (note: Auto Free may route to providers that log prompts — see the Auto Model page for details).
- The model selector remembers the last model you picked for each agent, so switching agents restores your previous choice. A manual pick always beats config settings.
- When you're signed in to an organization, Kilo checks the selected model against the models your organization makes available. If that model is unavailable, it uses the organization's default model for the session instead of falling back to an unrelated public model. Automatic fallbacks don't overwrite your saved preference, so switching back to your personal account restores your choice.

{% /tab %}
{% tab label="CLI" %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ There are several ways to switch agents:
| **Description** | An experienced technical leader and planner who helps design systems and create implementation plans |
| **Tool Access** | Read-only tools plus restricted file editing (plan files in `.kilo/plans/` only) |
| **Ideal For** | System design, high-level planning, and architecture discussions |
| **Special Features** | Similar to the legacy extension's "Architect" mode, with a planning-focused approach |
| **Special Features** | Similar to the legacy extension's "Architect" mode, with a planning-focused approach. In VS Code, the saved plan opens in the editor when it is ready for review. |

### debug

Expand Down
25 changes: 23 additions & 2 deletions packages/kilo-docs/pages/code-with-ai/platforms/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ The `kilo console` command and its browser interface are deprecated and will be
| Command | Aliases | Description |
|---|---|---|
| `/status` | - | View status |
| `/about` | - | Show version, channel, runtime, config path, project root, connected providers, and default model; press `c` to copy a diagnostic block |
| `/themes` | - | Switch theme |
| `/help` | - | Show help |
| `/reload` | - | Reload every instance of the project from disk (config, skills, agents, and commands) |
Expand Down Expand Up @@ -246,7 +247,9 @@ There is no slash command or command-palette toggle for notifications or sounds.

The CLI's interactive mode supports slash commands for common operations. The main commands are documented above in the [Interactive Slash Commands](#interactive-slash-commands) section.

Use `/diff` to review working-tree changes. From the diff viewer, switch the source to the current branch compared with the main branch or to changes from the last assistant turn. Use `/move` to move the current session to another project directory.
Use `/about` to open the About dialog, either from the command palette (under **Kilo**) or as a slash command. It shows the CLI version and channel, runtime and platform, configuration and project paths, connected providers, and the default model, with links to the docs, GitHub, issues, and Discord. Press `c` to copy a diagnostic block for bug reports.

Use `/diff` to review working-tree changes. From the diff viewer, switch the source to the current branch compared with the main branch, to changes from the last assistant turn, or to changes from the last commit (`HEAD` vs `HEAD~1`). Use `/move` to move the current session to another project directory.

The `diff_open` and `session_move` TUI keybindings run the same actions and are unbound by default. Set them under `keybinds` in `tui.jsonc`:

Expand Down Expand Up @@ -565,10 +568,26 @@ Selecting an "Always run" option will:

Kilo only saves the pattern you select. Approving a specific command does not approve redirected variants or broader command patterns unless that broader option is shown and selected.

### Rejecting with Feedback

Select **Reject**, or press `Esc`, to open a rejection message field instead of rejecting immediately. Type what the agent should do differently, then press `Enter` to reject with that feedback. Press `Esc` to cancel and return to the approval prompt.

The feedback is optional. Leave the field empty and press `Enter` to reject without feedback. With feedback, the agent can revise its proposal and ask for approval again; an empty rejection is a plain denial.

### Pasting Large Text

Pasting a large block of text (five or more lines, or over 800 characters) into the prompt collapses it into a placeholder such as `[Pasted ~6 lines]` to keep the prompt readable. To view or edit the pasted text, paste the same text again — the matching placeholder expands in place.

### Answering Questions

When `kilo run` asks a question with selectable options, the footer shows the available keys. For multiple-choice questions:

- `Space` toggles the focused option.
- `Enter` advances to the next question, or to the review and confirm step on the last question.
- `1`–`9` toggle an option directly, and `↑`/`↓` move the focus. `Tab` and `Shift+Tab` switch between questions.

For single-select questions, `Enter` submits the answer. When the agent defines a default answer, that option starts selected and `Enter` confirms it. `Esc` dismisses the question.

## Autonomous Mode (Non-Interactive)

Autonomous mode allows Kilo Code to run in automated environments like CI/CD pipelines without requiring user interaction.
Expand Down Expand Up @@ -603,7 +622,9 @@ This instructs the AI to proceed without user input.

- `0`: Success (task completed)
- `124`: Timeout (task exceeded time limit)
- `1`: Error (initialization or execution failure)
- `1`: Error (initialization, execution, or request failure)

A run that completes without producing any assistant output also exits `1`, so an empty run is not mistaken for a successful one. Kilo prints `run ended without an assistant message; the model returned no output` to stderr, or emits it as a final `error` record when you use `--format json`. A run that produces assistant output still exits `0`. If the prompt request itself fails, that error is reported instead and the empty-output diagnostic is not added.

Without `--auto`, a non-interactive run cannot prompt for approval and auto-rejects any permission request it receives. If a run auto-rejected at least one request, it exits `1` with a stderr diagnostic naming the cause, since the task likely did not complete. Pass `--auto` for autonomous use.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ Compaction is configured in your `kilo.jsonc` file:

### Use a different model for compaction

Summarization can use a cheaper or larger-context model than your main agent. Configure a dedicated compaction agent:
Summarization can use a cheaper or larger-context model than your main agent. In the VS Code extension, select the **Compaction model** under **Settings → Models**, next to the other per-purpose model selectors. To configure it in `kilo.jsonc`, set a dedicated compaction agent:

```jsonc
{
Expand Down
8 changes: 8 additions & 0 deletions packages/kilo-docs/pages/customize/custom-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ For instructions that apply across all your projects, place an `AGENTS.md` file

Project-level instructions are loaded before global instructions and apply to every session.

{% callout type="note" %}
After the experimental [Claude Code Migration](/docs/getting-started/settings#claude-code-migration) runs, Kilo stops loading global `~/.claude/CLAUDE.md` instructions. Project-level `CLAUDE.md` files keep working.
{% /callout %}

### Per-Directory Instructions

You can place `AGENTS.md` files in any subdirectory of your project. These are loaded dynamically — when the agent's Read tool accesses a file in that directory, the corresponding `AGENTS.md` is discovered and its contents are injected into the conversation as `<system-reminder>` tags.
Expand Down Expand Up @@ -123,6 +127,10 @@ For instructions that apply across all your projects, place an `AGENTS.md` file

Project-level instructions are loaded before global instructions and apply to every session.

{% callout type="note" %}
After the experimental [Claude Code Migration](/docs/getting-started/settings#claude-code-migration) runs, Kilo stops loading global `~/.claude/CLAUDE.md` instructions. Project-level `CLAUDE.md` files keep working.
{% /callout %}

### Per-Directory Instructions

You can place `AGENTS.md` files in any subdirectory of your project. These are loaded dynamically — when the agent's Read tool accesses a file in that directory, the corresponding `AGENTS.md` is discovered and its contents are injected into the conversation as `<system-reminder>` tags.
Expand Down
4 changes: 4 additions & 0 deletions packages/kilo-docs/pages/customize/custom-subagents.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,10 @@ Once configured, subagents can be used in two ways:

Primary agents with full tool access can automatically invoke subagents via the Task tool when the subagent's `description` matches the task at hand. Write clear, descriptive `description` values to help primary agents select the right subagent. The deprecated Orchestrator agent is not required.

### Per-task model selection

By default, a `task` subagent uses the model configured on the subagent or inherited from the parent agent. When [Task Subagent Model Selection](/docs/getting-started/settings#task-subagent-model-selection) is enabled, the orchestrating agent can choose a model, provider, and reasoning `variant` for an individual task instead. The agent can search the available models and supported variants with the `agent_manager_models` tool, and invalid selections fail before the child session starts. This experimental setting is off by default.

### Manual Invocation via @ Mentions

You can manually invoke any subagent by typing `@agent-name` in your message:
Expand Down
Loading