mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-08-28 19:11:03 +08:00
chore: enforce minimal markdown table formatting
Prettier pads markdown table cells for column alignment, which turns any content change into a table-wide realignment diff. Markdown was only in prettierignore for packages/kilo-vscode/; the root formatter still repadded docs elsewhere (e.g. TESTING.md, kilo-docs, AGENTS.md). Adds *.md to the root .prettierignore, documents the convention in AGENTS.md, and adds script/check-md-table-padding.ts + a workflow to enforce it. Existing padded tables in Kilo-owned docs have been rewritten via the script's --fix mode.
This commit is contained in:
@@ -38,13 +38,13 @@ If a docs page references a generated VS Code visual-regression screenshot, reco
|
||||
|
||||
Image attributes:
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
| --------- | ------ | -------- | ------------------------------------------- |
|
||||
| `src` | String | Yes | The image source URL |
|
||||
| `alt` | String | Yes | Alternative text for the image |
|
||||
| `width` | String | No | Width of the image (e.g., '500px', '80%') |
|
||||
| `height` | String | No | Height of the image (e.g., '300px', 'auto') |
|
||||
| `caption` | String | No | Caption displayed below the image |
|
||||
| Attribute | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `src` | String | Yes | The image source URL |
|
||||
| `alt` | String | Yes | Alternative text for the image |
|
||||
| `width` | String | No | Width of the image (e.g., '500px', '80%') |
|
||||
| `height` | String | No | Height of the image (e.g., '300px', 'auto') |
|
||||
| `caption` | String | No | Caption displayed below the image |
|
||||
|
||||
### Callouts
|
||||
|
||||
@@ -58,11 +58,11 @@ You can report any bugs or feedback by chatting with us in our [Discord server](
|
||||
|
||||
Callout attributes:
|
||||
|
||||
| Attribute | Type | Default | Description |
|
||||
| ----------- | ------- | ------- | ------------------------------------------------- |
|
||||
| `title` | String | - | Optional custom title for the callout |
|
||||
| `type` | String | "note" | One of: generic, note, tip, info, warning, danger |
|
||||
| `collapsed` | Boolean | false | When true, the callout starts collapsed |
|
||||
| Attribute | Type | Default | Description |
|
||||
|---|---|---|---|
|
||||
| `title` | String | - | Optional custom title for the callout |
|
||||
| `type` | String | "note" | One of: generic, note, tip, info, warning, danger |
|
||||
| `collapsed` | Boolean | false | When true, the callout starts collapsed |
|
||||
|
||||
### Codicons
|
||||
|
||||
|
||||
@@ -40,11 +40,11 @@ The Kilo Code dev container is pre-configured with named volumes to preserve you
|
||||
|
||||
## Storage Locations
|
||||
|
||||
| Data Type | Container Path |
|
||||
| ------------ | ------------------------------------------------------------------------- |
|
||||
| Threads | `/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code/tasks/` |
|
||||
| Settings | `/root/.vscode-remote/data/User/settings/` |
|
||||
| Cache | `/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code/cache/` |
|
||||
| Data Type | Container Path |
|
||||
|---|---|
|
||||
| Threads | `/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code/tasks/` |
|
||||
| Settings | `/root/.vscode-remote/data/User/settings/` |
|
||||
| Cache | `/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code/cache/` |
|
||||
| Vector Store | `/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code/vector/` |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -259,15 +259,15 @@ In-line ghost-text completions with tab to complete. Works alongside the agent m
|
||||
|
||||
## Feature Mapping
|
||||
|
||||
| Cline Feature | Kilo Equivalent | Notes |
|
||||
| ------------------ | ---------------------------------- | ------------------------------------------------------------------------------- |
|
||||
| Plan mode | Orchestrator, Architect, Ask modes | Architect plans, Ask explains, Orchestrate distributes tasks across other modes |
|
||||
| Act mode | Code mode | Implementation |
|
||||
| Plan/Act toggle | Mode dropdown | More granular control |
|
||||
| Checkpoints | Sessions + Checkpoints | Sessions preserve mode + context |
|
||||
| Background editing | Fast Apply | Sequential but instant |
|
||||
| Single agent | Five specialized modes | Purpose-built for each task |
|
||||
| Local only | Multi-platform | IDE, CLI, web, mobile |
|
||||
| Cline Feature | Kilo Equivalent | Notes |
|
||||
|---|---|---|
|
||||
| Plan mode | Orchestrator, Architect, Ask modes | Architect plans, Ask explains, Orchestrate distributes tasks across other modes |
|
||||
| Act mode | Code mode | Implementation |
|
||||
| Plan/Act toggle | Mode dropdown | More granular control |
|
||||
| Checkpoints | Sessions + Checkpoints | Sessions preserve mode + context |
|
||||
| Background editing | Fast Apply | Sequential but instant |
|
||||
| Single agent | Five specialized modes | Purpose-built for each task |
|
||||
| Local only | Multi-platform | IDE, CLI, web, mobile |
|
||||
|
||||
---
|
||||
|
||||
|
||||
+134
-134
@@ -2,176 +2,176 @@
|
||||
|
||||
### Get Started
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
| ------------------------------ | ----------------------------------------------------------------------- |
|
||||
| Introduction / Overview | `index`, `getting-started/concepts` |
|
||||
| Installation | `getting-started/installing` |
|
||||
| Quickstart | `getting-started/your-first-task` |
|
||||
| Setup & Authentication | `getting-started/setting-up`, `getting-started/connecting-api-provider` |
|
||||
| AI Providers | `basic-usage/connecting-providers`, `providers/*` (all of them) |
|
||||
| Settings | `basic-usage/settings-management` |
|
||||
| Adding Credits | `basic-usage/adding-credits` |
|
||||
| FAQ | Keep if it exists |
|
||||
| Migrating from Cursor/Windsurf | `advanced-usage/migrating-from-cursor-windsurf` |
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| Introduction / Overview | `index`, `getting-started/concepts` |
|
||||
| Installation | `getting-started/installing` |
|
||||
| Quickstart | `getting-started/your-first-task` |
|
||||
| Setup & Authentication | `getting-started/setting-up`, `getting-started/connecting-api-provider` |
|
||||
| AI Providers | `basic-usage/connecting-providers`, `providers/*` (all of them) |
|
||||
| Settings | `basic-usage/settings-management` |
|
||||
| Adding Credits | `basic-usage/adding-credits` |
|
||||
| FAQ | Keep if it exists |
|
||||
| Migrating from Cursor/Windsurf | `advanced-usage/migrating-from-cursor-windsurf` |
|
||||
|
||||
---
|
||||
|
||||
### Code with AI
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
| ----------------------------------- | -------------------------------------------------------------------------- |
|
||||
| **Platforms** (subheader) | |
|
||||
| VS Code Extension | Needs new page (or pull from install) |
|
||||
| JetBrains Extension | Needs new page |
|
||||
| CLI | `cli` |
|
||||
| Cloud Agent | `advanced-usage/cloud-agent` (partial) |
|
||||
| Mobile Apps | Needs new page |
|
||||
| Slack | `slack` |
|
||||
| **Working with Agents** (subheader) | |
|
||||
| The Chat Interface | `basic-usage/the-chat-interface` |
|
||||
| Context & Mentions | `basic-usage/context-mentions` |
|
||||
| Using Modes | `basic-usage/using-modes` |
|
||||
| Orchestrator Mode | `basic-usage/orchestrator-mode` |
|
||||
| Model Selection | `basic-usage/model-selection-guide` |
|
||||
| **Features** (subheader) | |
|
||||
| Autocomplete | `basic-usage/autocomplete/index`, `basic-usage/autocomplete/mistral-setup` |
|
||||
| Code Actions | `features/code-actions` |
|
||||
| Browser Use | `features/browser-use` |
|
||||
| Git Commit Generation | `basic-usage/git-commit-generation` |
|
||||
| Checkpoints | `features/checkpoints` |
|
||||
| Enhance Prompt | `features/enhance-prompt` |
|
||||
| Fast Edits | `features/fast-edits` |
|
||||
| Task Todo List | `basic-usage/task-todo-list` |
|
||||
| **Context & Indexing** (subheader) | |
|
||||
| Codebase Indexing | `features/codebase-indexing` |
|
||||
| Large Projects | `advanced-usage/large-projects` |
|
||||
| **Customization** (subheader) | |
|
||||
| Custom Modes | `agent-behavior/custom-modes` |
|
||||
| Custom Rules | `agent-behavior/custom-rules` |
|
||||
| Custom Instructions | `agent-behavior/custom-instructions` |
|
||||
| agents.md | `agent-behavior/agents-md` |
|
||||
| Workflows | `agent-behavior/workflows` |
|
||||
| Skills | `agent-behavior/skills` |
|
||||
| Prompt Engineering | `agent-behavior/prompt-engineering` |
|
||||
| **App Builder** (subheader) | |
|
||||
| App Builder | `advanced-usage/appbuilder` |
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| **Platforms** (subheader) | |
|
||||
| VS Code Extension | Needs new page (or pull from install) |
|
||||
| JetBrains Extension | Needs new page |
|
||||
| CLI | `cli` |
|
||||
| Cloud Agent | `advanced-usage/cloud-agent` (partial) |
|
||||
| Mobile Apps | Needs new page |
|
||||
| Slack | `slack` |
|
||||
| **Working with Agents** (subheader) | |
|
||||
| The Chat Interface | `basic-usage/the-chat-interface` |
|
||||
| Context & Mentions | `basic-usage/context-mentions` |
|
||||
| Using Modes | `basic-usage/using-modes` |
|
||||
| Orchestrator Mode | `basic-usage/orchestrator-mode` |
|
||||
| Model Selection | `basic-usage/model-selection-guide` |
|
||||
| **Features** (subheader) | |
|
||||
| Autocomplete | `basic-usage/autocomplete/index`, `basic-usage/autocomplete/mistral-setup` |
|
||||
| Code Actions | `features/code-actions` |
|
||||
| Browser Use | `features/browser-use` |
|
||||
| Git Commit Generation | `basic-usage/git-commit-generation` |
|
||||
| Checkpoints | `features/checkpoints` |
|
||||
| Enhance Prompt | `features/enhance-prompt` |
|
||||
| Fast Edits | `features/fast-edits` |
|
||||
| Task Todo List | `basic-usage/task-todo-list` |
|
||||
| **Context & Indexing** (subheader) | |
|
||||
| Codebase Indexing | `features/codebase-indexing` |
|
||||
| Large Projects | `advanced-usage/large-projects` |
|
||||
| **Customization** (subheader) | |
|
||||
| Custom Modes | `agent-behavior/custom-modes` |
|
||||
| Custom Rules | `agent-behavior/custom-rules` |
|
||||
| Custom Instructions | `agent-behavior/custom-instructions` |
|
||||
| agents.md | `agent-behavior/agents-md` |
|
||||
| Workflows | `agent-behavior/workflows` |
|
||||
| Skills | `agent-behavior/skills` |
|
||||
| Prompt Engineering | `agent-behavior/prompt-engineering` |
|
||||
| **App Builder** (subheader) | |
|
||||
| App Builder | `advanced-usage/appbuilder` |
|
||||
|
||||
---
|
||||
|
||||
### Collaborate
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
| ------------------------------------- | --------------------------------------------------- |
|
||||
| Sessions & Sharing | `advanced-usage/sessions` |
|
||||
| **Kilo for Teams** (subheader) | |
|
||||
| About Plans | `plans/about` |
|
||||
| Getting Started with Teams | `plans/getting-started` |
|
||||
| Dashboard | `plans/dashboard` |
|
||||
| Team Management | `plans/team-management` |
|
||||
| Custom Modes (Org) | `plans/custom-modes` |
|
||||
| Billing | `plans/billing` |
|
||||
| Analytics | `plans/analytics` |
|
||||
| **AI Adoption Dashboard** (subheader) | |
|
||||
| Overview | `plans/adoption-dashboard/overview` |
|
||||
| Understanding Your Score | `plans/adoption-dashboard/understanding-your-score` |
|
||||
| Improving Your Score | `plans/adoption-dashboard/improving-your-score` |
|
||||
| For Team Leads | `plans/adoption-dashboard/for-team-leads` |
|
||||
| **Enterprise** (subheader) | |
|
||||
| SSO | `plans/enterprise/SSO` |
|
||||
| Model Access Controls | `plans/enterprise/model-access` |
|
||||
| Audit Logs | `plans/enterprise/audit-logs` |
|
||||
| Migration | `plans/migration` |
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| Sessions & Sharing | `advanced-usage/sessions` |
|
||||
| **Kilo for Teams** (subheader) | |
|
||||
| About Plans | `plans/about` |
|
||||
| Getting Started with Teams | `plans/getting-started` |
|
||||
| Dashboard | `plans/dashboard` |
|
||||
| Team Management | `plans/team-management` |
|
||||
| Custom Modes (Org) | `plans/custom-modes` |
|
||||
| Billing | `plans/billing` |
|
||||
| Analytics | `plans/analytics` |
|
||||
| **AI Adoption Dashboard** (subheader) | |
|
||||
| Overview | `plans/adoption-dashboard/overview` |
|
||||
| Understanding Your Score | `plans/adoption-dashboard/understanding-your-score` |
|
||||
| Improving Your Score | `plans/adoption-dashboard/improving-your-score` |
|
||||
| For Team Leads | `plans/adoption-dashboard/for-team-leads` |
|
||||
| **Enterprise** (subheader) | |
|
||||
| SSO | `plans/enterprise/SSO` |
|
||||
| Model Access Controls | `plans/enterprise/model-access` |
|
||||
| Audit Logs | `plans/enterprise/audit-logs` |
|
||||
| Migration | `plans/migration` |
|
||||
|
||||
---
|
||||
|
||||
### Automate
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
| ------------------------------ | ------------------------------------- |
|
||||
| Integrations Overview | `advanced-usage/integrations` |
|
||||
| Code Reviews | `advanced-usage/code-reviews` |
|
||||
| Agent Manager | `advanced-usage/agent-manager` |
|
||||
| **Extending Kilo** (subheader) | |
|
||||
| Local Models | `advanced-usage/local-models` |
|
||||
| Shell Integration | `features/shell-integration` |
|
||||
| Auto-launch Configuration | `features/auto-launch-configuration` |
|
||||
| **MCP** (subheader) | |
|
||||
| MCP Overview | `features/mcp/overview` |
|
||||
| Using MCP in Kilo Code | `features/mcp/using-mcp-in-kilo-code` |
|
||||
| Using MCP in CLI | `features/mcp/using-mcp-in-cli` |
|
||||
| What is MCP | `features/mcp/what-is-mcp` |
|
||||
| Server Transports | `features/mcp/server-transports` |
|
||||
| MCP vs API | `features/mcp/mcp-vs-api` |
|
||||
| **Tools (subheader)** | |
|
||||
| How Tools Work | `basic-usage/how-tools-work` |
|
||||
| Tool Details | ALL of Tool reference |
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| Integrations Overview | `advanced-usage/integrations` |
|
||||
| Code Reviews | `advanced-usage/code-reviews` |
|
||||
| Agent Manager | `advanced-usage/agent-manager` |
|
||||
| **Extending Kilo** (subheader) | |
|
||||
| Local Models | `advanced-usage/local-models` |
|
||||
| Shell Integration | `features/shell-integration` |
|
||||
| Auto-launch Configuration | `features/auto-launch-configuration` |
|
||||
| **MCP** (subheader) | |
|
||||
| MCP Overview | `features/mcp/overview` |
|
||||
| Using MCP in Kilo Code | `features/mcp/using-mcp-in-kilo-code` |
|
||||
| Using MCP in CLI | `features/mcp/using-mcp-in-cli` |
|
||||
| What is MCP | `features/mcp/what-is-mcp` |
|
||||
| Server Transports | `features/mcp/server-transports` |
|
||||
| MCP vs API | `features/mcp/mcp-vs-api` |
|
||||
| **Tools (subheader)** | |
|
||||
| How Tools Work | `basic-usage/how-tools-work` |
|
||||
| Tool Details | ALL of Tool reference |
|
||||
|
||||
---
|
||||
|
||||
### Deploy & Secure
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
| ---------------- | ----------------------------------------------------------------------- |
|
||||
| Deploy | `advanced-usage/deploy` |
|
||||
| Managed Indexing | `advanced-usage/managed-indexing` |
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| Deploy | `advanced-usage/deploy` |
|
||||
| Managed Indexing | `advanced-usage/managed-indexing` |
|
||||
| Security Reviews | `contributing/architecture/security-reviews` (move out of contributing) |
|
||||
|
||||
---
|
||||
|
||||
### Contributing
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
| ---------------------------- | -------------------------------------------------------------- |
|
||||
| Contributing Overview | `contributing/index` |
|
||||
| Development Environment | `contributing/development-environment` |
|
||||
| **Architecture** (subheader) | |
|
||||
| Architecture Overview | `contributing/architecture/index` |
|
||||
| Annual Billing | `contributing/architecture/annual-billing` |
|
||||
| Enterprise MCP Controls | `contributing/architecture/enterprise-mcp-controls` |
|
||||
| Onboarding Improvements | `contributing/architecture/onboarding-engagement-improvements` |
|
||||
| Organization Modes Library | `contributing/architecture/organization-modes-library` |
|
||||
| Track Repo URL | `contributing/architecture/track-repo-url` |
|
||||
| Vercel AI Gateway | `contributing/architecture/vercel-ai-gateway` |
|
||||
| Voice Transcription | `contributing/architecture/voice-transcription` |
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| Contributing Overview | `contributing/index` |
|
||||
| Development Environment | `contributing/development-environment` |
|
||||
| **Architecture** (subheader) | |
|
||||
| Architecture Overview | `contributing/architecture/index` |
|
||||
| Annual Billing | `contributing/architecture/annual-billing` |
|
||||
| Enterprise MCP Controls | `contributing/architecture/enterprise-mcp-controls` |
|
||||
| Onboarding Improvements | `contributing/architecture/onboarding-engagement-improvements` |
|
||||
| Organization Modes Library | `contributing/architecture/organization-modes-library` |
|
||||
| Track Repo URL | `contributing/architecture/track-repo-url` |
|
||||
| Vercel AI Gateway | `contributing/architecture/vercel-ai-gateway` |
|
||||
| Voice Transcription | `contributing/architecture/voice-transcription` |
|
||||
|
||||
---
|
||||
|
||||
## Pages to Add (Don't Exist Yet)
|
||||
|
||||
| Section | New Page Needed |
|
||||
| --------------- | --------------------------------------- |
|
||||
| Get Started | "Choosing Your Surface" (decision tree) |
|
||||
| Code with AI | VS Code dedicated page |
|
||||
| Code with AI | JetBrains dedicated page |
|
||||
| Code with AI | Web App dedicated page |
|
||||
| Code with AI | Mobile Apps (iOS/Android) |
|
||||
| Collaborate | Team Workspaces overview |
|
||||
| Collaborate | Permissions & Roles |
|
||||
| Automate | Triage Agent |
|
||||
| Automate | Auto-fix Agent |
|
||||
| Automate | GitHub Actions guide |
|
||||
| Automate | Webhooks & Triggers |
|
||||
| Deploy & Secure | Security Scanning Agent |
|
||||
| Deploy & Secure | Environment Configuration |
|
||||
| Deploy & Secure | Secrets Management |
|
||||
| Contributing | Roadmap |
|
||||
| Contributing | Community / Discord |
|
||||
| Section | New Page Needed |
|
||||
|---|---|
|
||||
| Get Started | "Choosing Your Surface" (decision tree) |
|
||||
| Code with AI | VS Code dedicated page |
|
||||
| Code with AI | JetBrains dedicated page |
|
||||
| Code with AI | Web App dedicated page |
|
||||
| Code with AI | Mobile Apps (iOS/Android) |
|
||||
| Collaborate | Team Workspaces overview |
|
||||
| Collaborate | Permissions & Roles |
|
||||
| Automate | Triage Agent |
|
||||
| Automate | Auto-fix Agent |
|
||||
| Automate | GitHub Actions guide |
|
||||
| Automate | Webhooks & Triggers |
|
||||
| Deploy & Secure | Security Scanning Agent |
|
||||
| Deploy & Secure | Environment Configuration |
|
||||
| Deploy & Secure | Secrets Management |
|
||||
| Contributing | Roadmap |
|
||||
| Contributing | Community / Discord |
|
||||
|
||||
---
|
||||
|
||||
## Pages to Remove from Nav / Condense
|
||||
|
||||
| Page | Recommendation |
|
||||
| ------------------------------------- | -------------------------------------------------------- |
|
||||
| ☑️ `features/system-notifications` | Fold into Settings or remove |
|
||||
| ❎ `features/more-features` | Remove |
|
||||
| ☑️ `features/suggested-responses` | Fold into Chat Interface |
|
||||
| ☑️ `features/auto-approving-actions` | Fold into Settings |
|
||||
| ☑️ `advanced-usage/auto-cleanup` | Fold into Settings |
|
||||
| ❎ `features/model-temperature` | Remove |
|
||||
| ☑️ `advanced-usage/rate-limits-costs` | Fold into Adding Credits or AI Providers |
|
||||
| ❎ `features/footgun-prompting` | Remove |
|
||||
| ☑️ `tips-and-tricks` | Could become a blog post or fold relevant bits elsewhere |
|
||||
| Page | Recommendation |
|
||||
|---|---|
|
||||
| ☑️ `features/system-notifications` | Fold into Settings or remove |
|
||||
| ❎ `features/more-features` | Remove |
|
||||
| ☑️ `features/suggested-responses` | Fold into Chat Interface |
|
||||
| ☑️ `features/auto-approving-actions` | Fold into Settings |
|
||||
| ☑️ `advanced-usage/auto-cleanup` | Fold into Settings |
|
||||
| ❎ `features/model-temperature` | Remove |
|
||||
| ☑️ `advanced-usage/rate-limits-costs` | Fold into Adding Credits or AI Providers |
|
||||
| ❎ `features/footgun-prompting` | Remove |
|
||||
| ☑️ `tips-and-tricks` | Could become a blog post or fold relevant bits elsewhere |
|
||||
|
||||
---
|
||||
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
<!-- Auto-generated by script/generate-cli-docs.ts — do not edit manually -->
|
||||
|
||||
| Command | Description |
|
||||
| --- | --- |
|
||||
|---|---|
|
||||
| `kilo acp` | start ACP (Agent Client Protocol) server |
|
||||
| `kilo mcp` | manage MCP (Model Context Protocol) servers |
|
||||
| `kilo [project]` | start kilo tui |
|
||||
|
||||
@@ -73,13 +73,13 @@ Then set your default model:
|
||||
|
||||
Kilo Code supports the following models through Groq:
|
||||
|
||||
| Model ID | Provider | Context Window | Notes |
|
||||
| ----------------------------- | ----------- | -------------- | ------------------------------------- |
|
||||
| `moonshotai/kimi-k2-instruct` | Moonshot AI | 128K tokens | Optimized max_tokens limit configured |
|
||||
| `llama-3.3-70b-versatile` | Meta | 128K tokens | High-performance Llama model |
|
||||
| `llama-3.1-70b-versatile` | Meta | 128K tokens | Versatile reasoning capabilities |
|
||||
| `llama-3.1-8b-instant` | Meta | 128K tokens | Fast inference for quick tasks |
|
||||
| `mixtral-8x7b-32768` | Mistral AI | 32K tokens | Mixture of experts architecture |
|
||||
| Model ID | Provider | Context Window | Notes |
|
||||
|---|---|---|---|
|
||||
| `moonshotai/kimi-k2-instruct` | Moonshot AI | 128K tokens | Optimized max_tokens limit configured |
|
||||
| `llama-3.3-70b-versatile` | Meta | 128K tokens | High-performance Llama model |
|
||||
| `llama-3.1-70b-versatile` | Meta | 128K tokens | Versatile reasoning capabilities |
|
||||
| `llama-3.1-8b-instant` | Meta | 128K tokens | Fast inference for quick tasks |
|
||||
| `mixtral-8x7b-32768` | Mistral AI | 32K tokens | Mixture of experts architecture |
|
||||
|
||||
**Note:** Model availability may change. Refer to the [Groq documentation](https://console.groq.com/docs/models) for the latest model list and specifications.
|
||||
|
||||
|
||||
@@ -43,12 +43,12 @@ Route requests through unified APIs with additional features:
|
||||
|
||||
## Choosing a Provider
|
||||
|
||||
| Priority | Recommended Provider |
|
||||
| --------------- | --------------------------------------------------- |
|
||||
| Ease of use | [Kilo Code (built-in)](/docs/ai-providers/kilocode) |
|
||||
| Best value | Zhipu AI or Mistral |
|
||||
| Privacy/Offline | Ollama or LM Studio |
|
||||
| Enterprise | AWS Bedrock or Google Vertex |
|
||||
| Priority | Recommended Provider |
|
||||
|---|---|
|
||||
| Ease of use | [Kilo Code (built-in)](/docs/ai-providers/kilocode) |
|
||||
| Best value | Zhipu AI or Mistral |
|
||||
| Privacy/Offline | Ollama or LM Studio |
|
||||
| Enterprise | AWS Bedrock or Google Vertex |
|
||||
|
||||
## Why Use Multiple Providers?
|
||||
|
||||
|
||||
@@ -174,18 +174,18 @@ Merge the most foundational one first. Then, in each remaining worktree, ask the
|
||||
|
||||
## Cheatsheet
|
||||
|
||||
| Situation | Where |
|
||||
| ------------------------------------------------------ | ----------------------------- |
|
||||
| Small, interactive task | Sidebar |
|
||||
| Long task, want to do something else meanwhile | New worktree (`Cmd+N`) |
|
||||
| Two or three approaches, pick the winner | Multi-version (`Cmd+Shift+N`) |
|
||||
| Sidebar task outgrew the sidebar | Continue in Worktree |
|
||||
| Separate conversation on the same branch | New tab (`Cmd+T`) |
|
||||
| Long conversation, want a fresh context on same branch | New tab, summarize |
|
||||
| Run the app to verify | Run script (`Cmd+E`) |
|
||||
| One-off git or shell commands | Terminal (`Cmd+/`) |
|
||||
| Team review | Push + `gh pr create` |
|
||||
| Ship without ceremony | Apply to local |
|
||||
| Situation | Where |
|
||||
|---|---|
|
||||
| Small, interactive task | Sidebar |
|
||||
| Long task, want to do something else meanwhile | New worktree (`Cmd+N`) |
|
||||
| Two or three approaches, pick the winner | Multi-version (`Cmd+Shift+N`) |
|
||||
| Sidebar task outgrew the sidebar | Continue in Worktree |
|
||||
| Separate conversation on the same branch | New tab (`Cmd+T`) |
|
||||
| Long conversation, want a fresh context on same branch | New tab, summarize |
|
||||
| Run the app to verify | Run script (`Cmd+E`) |
|
||||
| One-off git or shell commands | Terminal (`Cmd+/`) |
|
||||
| Team review | Push + `gh pr create` |
|
||||
| Ship without ceremony | Apply to local |
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
@@ -57,15 +57,15 @@ You can also import a PR directly from the advanced new worktree dialog: open th
|
||||
|
||||
The badge color reflects the most important signal, evaluated in priority order:
|
||||
|
||||
| State | Color | Condition |
|
||||
| ----------------- | ---------------- | ------------------------------------------------------------ |
|
||||
| Draft | Gray | PR is in draft state |
|
||||
| Merged | Purple | PR has been merged |
|
||||
| Closed | Red | PR was closed without merging |
|
||||
| Checks failing | Red | Any CI check has failed |
|
||||
| Changes requested | Yellow | A reviewer requested changes |
|
||||
| Checks pending | Yellow (pulsing) | CI checks are still running |
|
||||
| Open (default) | Green | PR is open, no failing or pending checks, no blocking review |
|
||||
| State | Color | Condition |
|
||||
|---|---|---|
|
||||
| Draft | Gray | PR is in draft state |
|
||||
| Merged | Purple | PR has been merged |
|
||||
| Closed | Red | PR was closed without merging |
|
||||
| Checks failing | Red | Any CI check has failed |
|
||||
| Changes requested | Yellow | A reviewer requested changes |
|
||||
| Checks pending | Yellow (pulsing) | CI checks are still running |
|
||||
| Open (default) | Green | PR is open, no failing or pending checks, no blocking review |
|
||||
|
||||
When checks are pending on an open PR, the badge pulses to indicate activity.
|
||||
|
||||
@@ -187,10 +187,10 @@ The run button lets you start your project (dev server, build, tests, etc.) dire
|
||||
|
||||
Create a script file in `.kilo/` using the appropriate filename for your platform:
|
||||
|
||||
| Platform | Filename (checked in order) |
|
||||
| ------------- | ---------------------------------------------------------------------- |
|
||||
| macOS / Linux | `.kilo/run-script`, `.kilo/run-script.sh` |
|
||||
| Windows | `.kilo/run-script.ps1`, `.kilo/run-script.cmd`, `.kilo/run-script.bat` |
|
||||
| Platform | Filename (checked in order) |
|
||||
|---|---|
|
||||
| macOS / Linux | `.kilo/run-script`, `.kilo/run-script.sh` |
|
||||
| Windows | `.kilo/run-script.ps1`, `.kilo/run-script.cmd`, `.kilo/run-script.bat` |
|
||||
|
||||
For example, on macOS / Linux create `.kilo/run-script`:
|
||||
|
||||
@@ -209,10 +209,10 @@ If no run script exists yet, clicking the run button opens a template file for y
|
||||
|
||||
Two extra variables are injected into the script's environment:
|
||||
|
||||
| Variable | Value |
|
||||
| --------------- | --------------------------------------------------------------------- |
|
||||
| Variable | Value |
|
||||
|---|---|
|
||||
| `WORKTREE_PATH` | Working directory of the selected worktree (or repo root for "local") |
|
||||
| `REPO_PATH` | Repository root |
|
||||
| `REPO_PATH` | Repository root |
|
||||
|
||||
### Using the run button
|
||||
|
||||
@@ -226,22 +226,22 @@ Agent Manager state is persisted in `.kilo/agent-manager.json`. Sessions, worktr
|
||||
|
||||
## Keyboard Shortcuts (Agent Manager Panel)
|
||||
|
||||
| Shortcut (macOS) | Shortcut (Windows/Linux) | Action |
|
||||
| ------------------------ | ------------------------- | ------------------------------------------------ |
|
||||
| `Cmd+Shift+M` | `Ctrl+Shift+M` | Open / focus Agent Manager (works from anywhere) |
|
||||
| `Cmd+N` | `Ctrl+N` | New worktree |
|
||||
| `Cmd+Shift+N` | `Ctrl+Shift+N` | New worktree (advanced options) |
|
||||
| `Cmd+Shift+O` | `Ctrl+Shift+O` | Import/open worktree |
|
||||
| `Cmd+Shift+W` | `Ctrl+Shift+W` | Close current worktree |
|
||||
| `Cmd+T` | `Ctrl+T` | New tab (session) in worktree |
|
||||
| `Cmd+W` | `Ctrl+W` | Close current tab |
|
||||
| `Cmd+Alt+Up` / `Down` | `Ctrl+Alt+Up` / `Down` | Previous / next worktree |
|
||||
| `Cmd+Alt+Left` / `Right` | `Ctrl+Alt+Left` / `Right` | Previous / next tab in worktree |
|
||||
| `Cmd+/` | `Ctrl+/` | Focus terminal for current session |
|
||||
| `Cmd+D` | `Ctrl+D` | Toggle diff panel |
|
||||
| `Cmd+E` | `Ctrl+E` | Run / stop run script |
|
||||
| `Cmd+Shift+/` | `Ctrl+Shift+/` | Show keyboard shortcuts |
|
||||
| `Cmd+1` … `Cmd+9` | `Ctrl+1` … `Ctrl+9` | Jump to worktree/session by index |
|
||||
| Shortcut (macOS) | Shortcut (Windows/Linux) | Action |
|
||||
|---|---|---|
|
||||
| `Cmd+Shift+M` | `Ctrl+Shift+M` | Open / focus Agent Manager (works from anywhere) |
|
||||
| `Cmd+N` | `Ctrl+N` | New worktree |
|
||||
| `Cmd+Shift+N` | `Ctrl+Shift+N` | New worktree (advanced options) |
|
||||
| `Cmd+Shift+O` | `Ctrl+Shift+O` | Import/open worktree |
|
||||
| `Cmd+Shift+W` | `Ctrl+Shift+W` | Close current worktree |
|
||||
| `Cmd+T` | `Ctrl+T` | New tab (session) in worktree |
|
||||
| `Cmd+W` | `Ctrl+W` | Close current tab |
|
||||
| `Cmd+Alt+Up` / `Down` | `Ctrl+Alt+Up` / `Down` | Previous / next worktree |
|
||||
| `Cmd+Alt+Left` / `Right` | `Ctrl+Alt+Left` / `Right` | Previous / next tab in worktree |
|
||||
| `Cmd+/` | `Ctrl+/` | Focus terminal for current session |
|
||||
| `Cmd+D` | `Ctrl+D` | Toggle diff panel |
|
||||
| `Cmd+E` | `Ctrl+E` | Run / stop run script |
|
||||
| `Cmd+Shift+/` | `Ctrl+Shift+/` | Show keyboard shortcuts |
|
||||
| `Cmd+1` … `Cmd+9` | `Ctrl+1` … `Ctrl+9` | Jump to worktree/session by index |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
||||
@@ -23,12 +23,12 @@ When an issue arrives, Auto-Triage compares it against every previously-triaged
|
||||
|
||||
An AI model of your choice reads the full title and body and assigns one of four classifications:
|
||||
|
||||
| Classification | Meaning |
|
||||
| -------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **bug** | Existing, documented functionality is broken. Includes issues with stack traces, error messages, or clear reproduction steps. |
|
||||
| **feature** | A request for new functionality or an enhancement to existing behaviour. |
|
||||
| **question** | The reporter is asking for help, clarification, or pointing to a gap in documentation. |
|
||||
| **unclear** | The issue does not contain enough information to determine intent. |
|
||||
| Classification | Meaning |
|
||||
|---|---|
|
||||
| **bug** | Existing, documented functionality is broken. Includes issues with stack traces, error messages, or clear reproduction steps. |
|
||||
| **feature** | A request for new functionality or an enhancement to existing behaviour. |
|
||||
| **question** | The reporter is asking for help, clarification, or pointing to a gap in documentation. |
|
||||
| **unclear** | The issue does not contain enough information to determine intent. |
|
||||
|
||||
Along with the classification, the model produces a confidence score (0–1), a short summary of what the reporter wants, and its reasoning.
|
||||
|
||||
@@ -76,17 +76,17 @@ All settings are found under **Auto-Triage -> Config**.
|
||||
|
||||
### Repository scope
|
||||
|
||||
| Setting | Description |
|
||||
| ----------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| Setting | Description |
|
||||
|---|---|
|
||||
| **Repository selection mode** | `all` — triage every accessible repository. `selected` — triage only the repositories you pick from the list. |
|
||||
|
||||
### Label filters
|
||||
|
||||
These settings let you control which issues Auto-Triage processes, using labels already on the issue at the time it is opened.
|
||||
|
||||
| Setting | Description |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Skip labels** | If an issue carries **any** of these labels when it is opened, Auto-Triage will ignore it entirely. Useful for issues you handle manually, e.g. `wontfix` or `on-hold`. |
|
||||
| Setting | Description |
|
||||
|---|---|
|
||||
| **Skip labels** | If an issue carries **any** of these labels when it is opened, Auto-Triage will ignore it entirely. Useful for issues you handle manually, e.g. `wontfix` or `on-hold`. |
|
||||
| **Required labels** | If set, Auto-Triage will only process issues that carry **all** of these labels. Useful for opt-in triage flows, e.g. requiring a `needs-triage` label before Auto-Triage runs. |
|
||||
|
||||
> **Note:** Skip labels and required labels are also excluded from the set of labels the AI can apply. This keeps gating labels strictly under your control.
|
||||
@@ -99,13 +99,13 @@ The model used for classification.
|
||||
|
||||
## Ticket statuses
|
||||
|
||||
| Status | Meaning |
|
||||
| ------------- | ------------------------------------------------------------------------------------------ |
|
||||
| **pending** | Queued and waiting for a processing slot. |
|
||||
| **analyzing** | The AI is actively processing the issue. |
|
||||
| **actioned** | Triage completed. Labels applied, duplicate comment posted if applicable. |
|
||||
| **failed** | Something went wrong. The error is shown in the ticket. You can retry. |
|
||||
| **skipped** | The issue did not meet the configured requirements (wrong repo, skip label present, etc.). |
|
||||
| Status | Meaning |
|
||||
|---|---|
|
||||
| **pending** | Queued and waiting for a processing slot. |
|
||||
| **analyzing** | The AI is actively processing the issue. |
|
||||
| **actioned** | Triage completed. Labels applied, duplicate comment posted if applicable. |
|
||||
| **failed** | Something went wrong. The error is shown in the ticket. You can retry. |
|
||||
| **skipped** | The issue did not meet the configured requirements (wrong repo, skip label present, etc.). |
|
||||
|
||||
---
|
||||
|
||||
@@ -113,9 +113,9 @@ The model used for classification.
|
||||
|
||||
Auto-Triage uses two reserved labels for tracking. You should create these in your GitHub repositories before enabling the feature:
|
||||
|
||||
| Label | Meaning |
|
||||
| ---------------- | ----------------------------------------------------------------------------- |
|
||||
| `kilo-triaged` | Applied to every issue that completes triage successfully. |
|
||||
| Label | Meaning |
|
||||
|---|---|
|
||||
| `kilo-triaged` | Applied to every issue that completes triage successfully. |
|
||||
| `kilo-duplicate` | Applied alongside `kilo-triaged` when the issue is identified as a duplicate. |
|
||||
|
||||
These labels are managed by Kilo and should not be added to your **skip labels** list.
|
||||
|
||||
@@ -21,12 +21,12 @@ Connect your GitHub account via the [Integrations page](/docs/automate/integrati
|
||||
|
||||
The GitHub App requests the following permissions:
|
||||
|
||||
| Permission | Access | Purpose |
|
||||
| ------------------- | ------------ | -------------------------------- |
|
||||
| Pull requests | Read & Write | Post review comments |
|
||||
| Repository contents | Read | Analyze code |
|
||||
| Issues | Read & Write | Post summary comments, reactions |
|
||||
| Metadata | Read | List repositories |
|
||||
| Permission | Access | Purpose |
|
||||
|---|---|---|
|
||||
| Pull requests | Read & Write | Post review comments |
|
||||
| Repository contents | Read | Analyze code |
|
||||
| Issues | Read & Write | Post summary comments, reactions |
|
||||
| Metadata | Read | List repositories |
|
||||
|
||||
### Step 2: Configure the Review Agent
|
||||
|
||||
@@ -47,14 +47,14 @@ The GitHub App requests the following permissions:
|
||||
|
||||
Once configured, the Review Agent automatically runs when:
|
||||
|
||||
| PR Event | Triggers Review |
|
||||
| ------------------------ | --------------- |
|
||||
| PR opened | ✅ Yes |
|
||||
| New commits pushed to PR | ✅ Yes |
|
||||
| PR reopened | ✅ Yes |
|
||||
| Draft PR marked ready | ✅ Yes |
|
||||
| Draft PR opened | ❌ Skipped |
|
||||
| PR closed | ❌ No |
|
||||
| PR Event | Triggers Review |
|
||||
|---|---|
|
||||
| PR opened | ✅ Yes |
|
||||
| New commits pushed to PR | ✅ Yes |
|
||||
| PR reopened | ✅ Yes |
|
||||
| Draft PR marked ready | ✅ Yes |
|
||||
| Draft PR opened | ❌ Skipped |
|
||||
| PR closed | ❌ No |
|
||||
|
||||
## What to Expect
|
||||
|
||||
|
||||
@@ -46,14 +46,14 @@ When you select repositories, Kilo **automatically creates webhooks** on each pr
|
||||
|
||||
Once configured, the Review Agent automatically runs when:
|
||||
|
||||
| MR Event | Triggers Review |
|
||||
| ------------------------ | --------------- |
|
||||
| MR opened | ✅ Yes |
|
||||
| New commits pushed to MR | ✅ Yes |
|
||||
| MR reopened | ✅ Yes |
|
||||
| Draft or WIP MR opened | ❌ Skipped |
|
||||
| MR closed | ❌ No |
|
||||
| MR merged | ❌ No |
|
||||
| MR Event | Triggers Review |
|
||||
|---|---|
|
||||
| MR opened | ✅ Yes |
|
||||
| New commits pushed to MR | ✅ Yes |
|
||||
| MR reopened | ✅ Yes |
|
||||
| Draft or WIP MR opened | ❌ Skipped |
|
||||
| MR closed | ❌ No |
|
||||
| MR merged | ❌ No |
|
||||
|
||||
## What to Expect
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ Kilo's **Code Reviews** feature automatically analyzes your pull or merge reques
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Integration Type | Details |
|
||||
| -------- | ---------------- | ------------------------------ |
|
||||
| GitHub | GitHub App | [GitHub Setup Guide](./github) |
|
||||
| GitLab | OAuth or PAT | [GitLab Setup Guide](./gitlab) |
|
||||
| Platform | Integration Type | Details |
|
||||
|---|---|---|
|
||||
| GitHub | GitHub App | [GitHub Setup Guide](./github) |
|
||||
| GitLab | OAuth or PAT | [GitLab Setup Guide](./gitlab) |
|
||||
|
||||
## Prerequisites
|
||||
|
||||
|
||||
@@ -44,11 +44,11 @@ Add an array of plugin specifiers to your config file:
|
||||
|
||||
Each entry can be:
|
||||
|
||||
| Form | Loaded from |
|
||||
| -------------------------------------- | ---------------------------------------------------------------- |
|
||||
| `"package-name"` | Latest version from npm |
|
||||
| `"package-name@1.2.3"` | Pinned version from npm |
|
||||
| `["package-name", { options }]` | npm package with options passed to the plugin function |
|
||||
| Form | Loaded from |
|
||||
|---|---|
|
||||
| `"package-name"` | Latest version from npm |
|
||||
| `"package-name@1.2.3"` | Pinned version from npm |
|
||||
| `["package-name", { options }]` | npm package with options passed to the plugin function |
|
||||
| `"./path/plugin.ts"` / `"file:///..."` | Local file (relative to the config file or absolute `file:` URL) |
|
||||
|
||||
Config files live in the same locations as the rest of your CLI configuration — see the [CLI configuration reference](/docs/code-with-ai/platforms/cli#configuration).
|
||||
@@ -136,15 +136,15 @@ export default { id: "hello", server: hello }
|
||||
|
||||
The plugin function receives a context object:
|
||||
|
||||
| Field | Description |
|
||||
| ------------------------ | ----------------------------------------------------------------- |
|
||||
| `project` | Current project metadata. |
|
||||
| `directory` | Current working directory for this session. |
|
||||
| `worktree` | Git worktree root for this session. |
|
||||
| `client` | A Kilo SDK client (`@kilocode/sdk`) for calling the local server. |
|
||||
| `$` | [Bun's shell API](https://bun.com/docs/runtime/shell). |
|
||||
| `serverUrl` | URL of the local Kilo server. |
|
||||
| `experimental_workspace` | Register workspace adaptors (used by Agent Manager). |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `project` | Current project metadata. |
|
||||
| `directory` | Current working directory for this session. |
|
||||
| `worktree` | Git worktree root for this session. |
|
||||
| `client` | A Kilo SDK client (`@kilocode/sdk`) for calling the local server. |
|
||||
| `$` | [Bun's shell API](https://bun.com/docs/runtime/shell). |
|
||||
| `serverUrl` | URL of the local Kilo server. |
|
||||
| `experimental_workspace` | Register workspace adaptors (used by Agent Manager). |
|
||||
|
||||
The function returns a `Hooks` object. Any second argument is the options object passed via config (e.g. the `{ apiKey: "..." }` from `["my-plugin", { apiKey: "..." }]`).
|
||||
|
||||
@@ -234,49 +234,49 @@ Every hook is optional. Return only the ones you care about.
|
||||
|
||||
### Lifecycle
|
||||
|
||||
| Hook | Description |
|
||||
| -------- | --------------------------------------------------------------------------------- |
|
||||
| Hook | Description |
|
||||
|---|---|
|
||||
| `config` | Receives the fully-resolved config at startup. Read-only — useful for inspection. |
|
||||
| `event` | Called for **every** event on the internal bus (see [Events](#events)). |
|
||||
| `event` | Called for **every** event on the internal bus (see [Events](#events)). |
|
||||
|
||||
### Tools
|
||||
|
||||
| Hook | Description |
|
||||
| --------------------- | ----------------------------------------------------------------------------------------------- |
|
||||
| `tool` | Map of tool name → [tool definition](#custom-tools). Added tools are callable by the model. |
|
||||
| `tool.execute.before` | Fires before a tool runs; you can mutate `output.args`. |
|
||||
| `tool.execute.after` | Fires after a tool returns; you can rewrite `output.title`, `output.output`, `output.metadata`. |
|
||||
| `tool.definition` | Mutate a tool's `description` and `parameters` before they are sent to the model. |
|
||||
| Hook | Description |
|
||||
|---|---|
|
||||
| `tool` | Map of tool name → [tool definition](#custom-tools). Added tools are callable by the model. |
|
||||
| `tool.execute.before` | Fires before a tool runs; you can mutate `output.args`. |
|
||||
| `tool.execute.after` | Fires after a tool returns; you can rewrite `output.title`, `output.output`, `output.metadata`. |
|
||||
| `tool.definition` | Mutate a tool's `description` and `parameters` before they are sent to the model. |
|
||||
|
||||
### Chat
|
||||
|
||||
| Hook | Description |
|
||||
| ------------------------ | ---------------------------------------------------------------------------- |
|
||||
| `chat.message` | Fires when a new user message arrives. Inspect or modify `parts`. |
|
||||
| `chat.params` | Mutate `temperature`, `topP`, `topK`, `maxOutputTokens`, provider `options`. |
|
||||
| `chat.headers` | Add or replace HTTP headers on the LLM API call. |
|
||||
| `permission.ask` | Auto-allow or auto-deny permission prompts. |
|
||||
| `command.execute.before` | Intercept slash command execution; mutate the resulting `parts`. |
|
||||
| `shell.env` | Inject environment variables into every shell command Kilo runs. |
|
||||
| Hook | Description |
|
||||
|---|---|
|
||||
| `chat.message` | Fires when a new user message arrives. Inspect or modify `parts`. |
|
||||
| `chat.params` | Mutate `temperature`, `topP`, `topK`, `maxOutputTokens`, provider `options`. |
|
||||
| `chat.headers` | Add or replace HTTP headers on the LLM API call. |
|
||||
| `permission.ask` | Auto-allow or auto-deny permission prompts. |
|
||||
| `command.execute.before` | Intercept slash command execution; mutate the resulting `parts`. |
|
||||
| `shell.env` | Inject environment variables into every shell command Kilo runs. |
|
||||
|
||||
### Providers & auth
|
||||
|
||||
| Hook | Description |
|
||||
| ---------- | ------------------------------------------------------------------------------------ |
|
||||
| `auth` | Register an auth method (OAuth or API key) for a provider, with interactive prompts. |
|
||||
| `provider` | Dynamically supply a model catalog for a provider (useful for BYO-model gateways). |
|
||||
| Hook | Description |
|
||||
|---|---|
|
||||
| `auth` | Register an auth method (OAuth or API key) for a provider, with interactive prompts. |
|
||||
| `provider` | Dynamically supply a model catalog for a provider (useful for BYO-model gateways). |
|
||||
|
||||
### Experimental
|
||||
|
||||
These hooks live behind the `experimental.` prefix and may change between releases.
|
||||
|
||||
| Hook | Description |
|
||||
| -------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| `experimental.chat.messages.transform` | Rewrite the full message history before it is sent to the model. |
|
||||
| `experimental.chat.system.transform` | Modify the system prompt array. |
|
||||
| `experimental.session.compacting` | Inject extra context (`output.context`) or replace the compaction prompt entirely (`output.prompt`). |
|
||||
| `experimental.compaction.autocontinue` | Disable the synthetic "continue" turn that follows compaction. |
|
||||
| `experimental.text.complete` | Post-process final text parts (e.g. append signatures, redact secrets). |
|
||||
| Hook | Description |
|
||||
|---|---|
|
||||
| `experimental.chat.messages.transform` | Rewrite the full message history before it is sent to the model. |
|
||||
| `experimental.chat.system.transform` | Modify the system prompt array. |
|
||||
| `experimental.session.compacting` | Inject extra context (`output.context`) or replace the compaction prompt entirely (`output.prompt`). |
|
||||
| `experimental.compaction.autocontinue` | Disable the synthetic "continue" turn that follows compaction. |
|
||||
| `experimental.text.complete` | Post-process final text parts (e.g. append signatures, redact secrets). |
|
||||
|
||||
### Events
|
||||
|
||||
|
||||
@@ -391,10 +391,10 @@ When using the Kilo Code VS Code extension with the Agent Manager, each agent se
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
| --------------------------- | ---------------------------- |
|
||||
| Shortcut | Action |
|
||||
|---|---|
|
||||
| <kbd>Cmd</kbd>+<kbd>/</kbd> | Focus the session's terminal |
|
||||
| <kbd>Cmd</kbd>+<kbd>.</kbd> | Cycle agent mode |
|
||||
| <kbd>Cmd</kbd>+<kbd>.</kbd> | Cycle agent mode |
|
||||
|
||||
### Terminal Context Menu Actions
|
||||
|
||||
|
||||
@@ -21,24 +21,24 @@ Describe what you want to accomplish in natural language, and Kilo Code will:
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
| 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` |
|
||||
| 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` |
|
||||
| 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` |
|
||||
| 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` |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
| Category | Purpose | Tool Names |
|
||||
| :------- | :----------------------------------------- | :----------------------------------------------------------------------- |
|
||||
| Read | Access file content and code structure | `read_file`, `search_files`, `list_files`, `list_code_definition_names` |
|
||||
| Edit | Create or modify files and code | `apply_diff`, `delete_file`, `write_to_file` |
|
||||
| Execute | Run commands and perform system operations | `execute_command` |
|
||||
| Browser | Interact with web content | `browser_action` |
|
||||
| Workflow | Manage task flow and context | `ask_followup_question`, `attempt_completion`, `switch_mode`, `new_task` |
|
||||
| Category | Purpose | Tool Names |
|
||||
|:---|:---|:---|
|
||||
| Read | Access file content and code structure | `read_file`, `search_files`, `list_files`, `list_code_definition_names` |
|
||||
| Edit | Create or modify files and code | `apply_diff`, `delete_file`, `write_to_file` |
|
||||
| Execute | Run commands and perform system operations | `execute_command` |
|
||||
| Browser | Interact with web content | `browser_action` |
|
||||
| Workflow | Manage task flow and context | `ask_followup_question`, `attempt_completion`, `switch_mode`, `new_task` |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
@@ -101,15 +101,15 @@ Every tool use is subject to a permission check. The default action for any tool
|
||||
|
||||
**Default permissions by tool:**
|
||||
|
||||
| Tool(s) | Default |
|
||||
| :------------------------------------------- | :----------------------------------------------- |
|
||||
| `read`, `glob`, `grep`, `list` | `ask` |
|
||||
| `edit`, `write`, `multiedit`, `apply_patch` | `ask` |
|
||||
| `bash` | `ask` (per-command) |
|
||||
| `external_directory` | `ask` (when accessing paths outside the project) |
|
||||
| `task` | `ask` |
|
||||
| `webfetch`, `websearch`, `codesearch` | `ask` |
|
||||
| `todowrite`, `todoread`, `question`, `skill` | `ask` |
|
||||
| Tool(s) | Default |
|
||||
|:---|:---|
|
||||
| `read`, `glob`, `grep`, `list` | `ask` |
|
||||
| `edit`, `write`, `multiedit`, `apply_patch` | `ask` |
|
||||
| `bash` | `ask` (per-command) |
|
||||
| `external_directory` | `ask` (when accessing paths outside the project) |
|
||||
| `task` | `ask` |
|
||||
| `webfetch`, `websearch`, `codesearch` | `ask` |
|
||||
| `todowrite`, `todoread`, `question`, `skill` | `ask` |
|
||||
|
||||
No tools are auto-approved out of the box. You must explicitly grant `allow` in your config, or approve them at runtime.
|
||||
|
||||
@@ -154,44 +154,44 @@ This safety mechanism ensures you maintain control over which files are modified
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
| Tool Name | Description | Category |
|
||||
| :------------ | :----------------------------------------------------- | :------- |
|
||||
| `read` | Reads file contents with line numbers | Read |
|
||||
| `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 |
|
||||
| `webfetch` | Fetches a URL | Web |
|
||||
| `websearch` | Searches the web (Kilo/OpenRouter users) | Web |
|
||||
| `codesearch` | Semantic code search (Kilo/OpenRouter users) | Web |
|
||||
| `question` | Asks you a clarifying question with selectable options | Workflow |
|
||||
| `task` | Spawns a sub-agent session | Workflow |
|
||||
| `todowrite` | Creates and updates a session TODO list | Workflow |
|
||||
| `todoread` | Reads the current session TODO list | Workflow |
|
||||
| `plan` | Enters structured planning mode | Workflow |
|
||||
| `skill` | Invokes a reusable skill (Markdown instruction module) | Workflow |
|
||||
| Tool Name | Description | Category |
|
||||
|:---|:---|:---|
|
||||
| `read` | Reads file contents with line numbers | Read |
|
||||
| `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 |
|
||||
| `webfetch` | Fetches a URL | Web |
|
||||
| `websearch` | Searches the web (Kilo/OpenRouter users) | Web |
|
||||
| `codesearch` | Semantic code search (Kilo/OpenRouter users) | Web |
|
||||
| `question` | Asks you a clarifying question with selectable options | Workflow |
|
||||
| `task` | Spawns a sub-agent session | Workflow |
|
||||
| `todowrite` | Creates and updates a session TODO list | Workflow |
|
||||
| `todoread` | Reads the current session TODO list | Workflow |
|
||||
| `plan` | Enters structured planning mode | Workflow |
|
||||
| `skill` | Invokes a reusable skill (Markdown instruction module) | Workflow |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
| Tool Name | Description | Category |
|
||||
| :--------------------------- | :-------------------------------------------------- | :------- |
|
||||
| `read_file` | Reads the content of a file with line numbers | Read |
|
||||
| `search_files` | Searches for text or regex patterns across files | Read |
|
||||
| `list_files` | Lists files and directories in a specified location | Read |
|
||||
| `list_code_definition_names` | Lists code definitions like classes and functions | Read |
|
||||
| `write_to_file` | Creates new files or overwrites existing ones | Edit |
|
||||
| `apply_diff` | Makes precise changes to specific parts of a file | Edit |
|
||||
| `delete_file` | Removes files from the workspace | Edit |
|
||||
| `execute_command` | Runs commands in the VS Code terminal | Execute |
|
||||
| `browser_action` | Performs actions in a headless browser | Browser |
|
||||
| `ask_followup_question` | Asks you a clarifying question | Workflow |
|
||||
| `attempt_completion` | Indicates the task is complete | Workflow |
|
||||
| `switch_mode` | Changes to a different operational mode | Workflow |
|
||||
| `new_task` | Creates a new subtask with a specific starting mode | Workflow |
|
||||
| Tool Name | Description | Category |
|
||||
|:---|:---|:---|
|
||||
| `read_file` | Reads the content of a file with line numbers | Read |
|
||||
| `search_files` | Searches for text or regex patterns across files | Read |
|
||||
| `list_files` | Lists files and directories in a specified location | Read |
|
||||
| `list_code_definition_names` | Lists code definitions like classes and functions | Read |
|
||||
| `write_to_file` | Creates new files or overwrites existing ones | Edit |
|
||||
| `apply_diff` | Makes precise changes to specific parts of a file | Edit |
|
||||
| `delete_file` | Removes files from the workspace | Edit |
|
||||
| `execute_command` | Runs commands in the VS Code terminal | Execute |
|
||||
| `browser_action` | Performs actions in a headless browser | Browser |
|
||||
| `ask_followup_question` | Asks you a clarifying question | Workflow |
|
||||
| `attempt_completion` | Indicates the task is complete | Workflow |
|
||||
| `switch_mode` | Changes to a different operational mode | Workflow |
|
||||
| `new_task` | Creates a new subtask with a specific starting mode | Workflow |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -9,10 +9,10 @@ Kilo Integrations lets you connect your GitHub or GitLab account (soon Bitbucket
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Integration Type | Details |
|
||||
| -------- | ---------------- | ---------------------------------- |
|
||||
| GitHub | GitHub App | [GitHub Setup](#connecting-github) |
|
||||
| GitLab | OAuth or PAT | [GitLab Setup](#connecting-gitlab) |
|
||||
| Platform | Integration Type | Details |
|
||||
|---|---|---|
|
||||
| GitHub | GitHub App | [GitHub Setup](#connecting-github) |
|
||||
| GitLab | OAuth or PAT | [GitLab Setup](#connecting-gitlab) |
|
||||
|
||||
## What You Can Do With Integrations
|
||||
|
||||
|
||||
@@ -9,14 +9,14 @@ Comparing REST APIs to the Model Context Protocol (MCP) is a category error. The
|
||||
|
||||
## Architectural Differences
|
||||
|
||||
| Feature | MCP | REST APIs |
|
||||
| -------------------- | ---------------------------------------------------- | ------------------------------------------------- |
|
||||
| State Management | **Stateful** - maintains context across interactions | **Stateless** - each request is independent |
|
||||
| Connection Type | Persistent, bidirectional connections | One-way request/response |
|
||||
| Communication Style | JSON-RPC based with ongoing sessions | HTTP-based with discrete requests |
|
||||
| Context Handling | Context is intrinsic to the protocol | Context must be manually managed |
|
||||
| Tool Discovery | Runtime discovery of available tools | Design-time integration requiring prior knowledge |
|
||||
| Integration Approach | Runtime integration with dynamic capabilities | Design-time integration requiring code changes |
|
||||
| Feature | MCP | REST APIs |
|
||||
|---|---|---|
|
||||
| State Management | **Stateful** - maintains context across interactions | **Stateless** - each request is independent |
|
||||
| Connection Type | Persistent, bidirectional connections | One-way request/response |
|
||||
| Communication Style | JSON-RPC based with ongoing sessions | HTTP-based with discrete requests |
|
||||
| Context Handling | Context is intrinsic to the protocol | Context must be manually managed |
|
||||
| Tool Discovery | Runtime discovery of available tools | Design-time integration requiring prior knowledge |
|
||||
| Integration Approach | Runtime integration with dynamic capabilities | Design-time integration requiring code changes |
|
||||
|
||||
## Different Layers, Different Purposes
|
||||
|
||||
|
||||
@@ -180,19 +180,19 @@ Some scenarios benefit from a hybrid approach:
|
||||
|
||||
## Choosing Between STDIO and SSE
|
||||
|
||||
| Consideration | STDIO | SSE |
|
||||
| -------------------- | ------------------------ | ----------------------------------- |
|
||||
| **Location** | Local machine only | Local or remote |
|
||||
| **Clients** | Single client | Multiple clients |
|
||||
| **Performance** | Lower latency | Higher latency (network overhead) |
|
||||
| **Setup Complexity** | Simpler | More complex (requires HTTP server) |
|
||||
| **Security** | Inherently secure | Requires explicit security measures |
|
||||
| **Network Access** | Not needed | Required |
|
||||
| **Scalability** | Limited to local machine | Can distribute across network |
|
||||
| **Deployment** | Per-user installation | Centralized installation |
|
||||
| **Updates** | Distributed updates | Centralized updates |
|
||||
| **Resource Usage** | Uses client resources | Uses server resources |
|
||||
| **Dependencies** | Client-side dependencies | Server-side dependencies |
|
||||
| Consideration | STDIO | SSE |
|
||||
|---|---|---|
|
||||
| **Location** | Local machine only | Local or remote |
|
||||
| **Clients** | Single client | Multiple clients |
|
||||
| **Performance** | Lower latency | Higher latency (network overhead) |
|
||||
| **Setup Complexity** | Simpler | More complex (requires HTTP server) |
|
||||
| **Security** | Inherently secure | Requires explicit security measures |
|
||||
| **Network Access** | Not needed | Required |
|
||||
| **Scalability** | Limited to local machine | Can distribute across network |
|
||||
| **Deployment** | Per-user installation | Centralized installation |
|
||||
| **Updates** | Distributed updates | Centralized updates |
|
||||
| **Resource Usage** | Uses client resources | Uses server resources |
|
||||
| **Dependencies** | Client-side dependencies | Server-side dependencies |
|
||||
|
||||
## Configuring Transports in Kilo Code
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@ MCP servers add to your context, so be careful with which ones you enable. Certa
|
||||
|
||||
The CLI accepts several config filenames. The recommended file is `kilo.json`:
|
||||
|
||||
| Scope | Recommended Path | Also supported |
|
||||
| ----------- | ------------------------------------ | --------------------------- |
|
||||
| **Global** | `~/.config/kilo/kilo.json` | `kilo.jsonc`, `config.json` |
|
||||
| **Project** | `./kilo.json` or `./.kilo/kilo.json` | `kilo.jsonc` |
|
||||
| Scope | Recommended Path | Also supported |
|
||||
|---|---|---|
|
||||
| **Global** | `~/.config/kilo/kilo.json` | `kilo.jsonc`, `config.json` |
|
||||
| **Project** | `./kilo.json` or `./.kilo/kilo.json` | `kilo.jsonc` |
|
||||
|
||||
Project-level configuration takes precedence over global settings.
|
||||
|
||||
@@ -63,13 +63,13 @@ Local MCP servers run on your machine and communicate via standard input/output.
|
||||
|
||||
#### Local Server Options
|
||||
|
||||
| Option | Type | Required | Description |
|
||||
| ------------- | ------- | -------- | -------------------------------------------------------------------- |
|
||||
| `type` | String | Yes | Must be `"local"`. |
|
||||
| `command` | Array | Yes | Command and arguments to run the MCP server. |
|
||||
| `environment` | Object | No | Environment variables to set when running the server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 5000. |
|
||||
| Option | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `type` | String | Yes | Must be `"local"`. |
|
||||
| `command` | Array | Yes | Command and arguments to run the MCP server. |
|
||||
| `environment` | Object | No | Environment variables to set when running the server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 5000. |
|
||||
|
||||
### Remote Servers
|
||||
|
||||
@@ -92,22 +92,22 @@ Remote MCP servers are accessed over HTTP/HTTPS. Set `type` to `"remote"`.
|
||||
|
||||
#### Remote Server Options
|
||||
|
||||
| Option | Type | Required | Description |
|
||||
| --------- | ------- | -------- | -------------------------------------------------------------------- |
|
||||
| `type` | String | Yes | Must be `"remote"`. |
|
||||
| `url` | String | Yes | URL of the remote MCP server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `headers` | Object | No | HTTP headers to send with requests. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 5000. |
|
||||
| Option | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `type` | String | Yes | Must be `"remote"`. |
|
||||
| `url` | String | Yes | URL of the remote MCP server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `headers` | Object | No | HTTP headers to send with requests. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 5000. |
|
||||
|
||||
## Managing MCP Servers
|
||||
|
||||
You can manage MCP servers from the CLI:
|
||||
|
||||
| Command | Description |
|
||||
| --------------- | ------------------------------- |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `kilo mcp list` | List all configured MCP servers |
|
||||
| `kilo mcp add` | Add an MCP server |
|
||||
| `kilo mcp add` | Add an MCP server |
|
||||
| `kilo mcp auth` | Authenticate with an MCP server |
|
||||
|
||||
Inside the interactive TUI, use the `/mcps` slash command to toggle MCP servers on or off.
|
||||
|
||||
@@ -76,20 +76,20 @@ Remote servers support OAuth 2.0 authentication. If the server supports it, Kilo
|
||||
|
||||
The CLI accepts several config filenames. The recommended file is `kilo.json`:
|
||||
|
||||
| Scope | Recommended Path | Also supported |
|
||||
| ----------- | ------------------------------------ | -------------------------------------------------------------- |
|
||||
| **Global** | `~/.config/kilo/kilo.json` | `kilo.jsonc`, `opencode.json`, `opencode.jsonc`, `config.json` |
|
||||
| **Project** | `./kilo.json` or `./.kilo/kilo.json` | `kilo.jsonc`, `opencode.jsonc`, `opencode.json` |
|
||||
| Scope | Recommended Path | Also supported |
|
||||
|---|---|---|
|
||||
| **Global** | `~/.config/kilo/kilo.json` | `kilo.jsonc`, `opencode.json`, `opencode.jsonc`, `config.json` |
|
||||
| **Project** | `./kilo.json` or `./.kilo/kilo.json` | `kilo.jsonc`, `opencode.jsonc`, `opencode.json` |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
MCP server configurations can be managed at two levels: **global** (applies across all workspaces) and **project-level** (specific to a single project). Project-level configuration takes precedence over global settings.
|
||||
|
||||
| Scope | Path | Description |
|
||||
| ----------- | -------------------- | --------------------------------------------------------------- |
|
||||
| **Global** | `mcp_settings.json` | Accessible via VS Code settings. Applies across all workspaces. |
|
||||
| **Project** | `.kilocode/mcp.json` | In your project root. Auto-detected by Kilo Code. |
|
||||
| Scope | Path | Description |
|
||||
|---|---|---|
|
||||
| **Global** | `mcp_settings.json` | Accessible via VS Code settings. Applies across all workspaces. |
|
||||
| **Project** | `.kilocode/mcp.json` | In your project root. Auto-detected by Kilo Code. |
|
||||
|
||||
Project-level configs can be committed to version control to share with your team.
|
||||
|
||||
@@ -196,13 +196,13 @@ In the VS Code extension, open **Settings → MCP**, click **Add Server**, and c
|
||||
|
||||
#### Local Server Options
|
||||
|
||||
| Option | Type | Required | Description |
|
||||
| ------------- | ------- | -------- | --------------------------------------------------------------------- |
|
||||
| `type` | String | Yes | Must be `"local"`. |
|
||||
| `command` | Array | Yes | Command and arguments to run the MCP server. |
|
||||
| `environment` | Object | No | Environment variables to set when running the server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 30000. |
|
||||
| Option | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `type` | String | Yes | Must be `"local"`. |
|
||||
| `command` | Array | Yes | Command and arguments to run the MCP server. |
|
||||
| `environment` | Object | No | Environment variables to set when running the server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 30000. |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
@@ -260,13 +260,13 @@ In the VS Code extension, open **Settings → MCP**, click **Add Server**, and c
|
||||
|
||||
#### Remote Server Options
|
||||
|
||||
| Option | Type | Required | Description |
|
||||
| --------- | ------- | -------- | --------------------------------------------------------------------- |
|
||||
| `type` | String | Yes | Must be `"remote"`. |
|
||||
| `url` | String | Yes | URL of the remote MCP server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `headers` | Object | No | HTTP headers to send with requests. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 30000. |
|
||||
| Option | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `type` | String | Yes | Must be `"remote"`. |
|
||||
| `url` | String | Yes | URL of the remote MCP server. |
|
||||
| `enabled` | Boolean | No | Enable or disable the MCP server on startup. |
|
||||
| `headers` | Object | No | HTTP headers to send with requests. |
|
||||
| `timeout` | Number | No | Timeout in ms for fetching tools from the MCP server. Default: 30000. |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
@@ -339,13 +339,13 @@ The extension also supports the `{env:VARIABLE_NAME}` syntax in config files to
|
||||
|
||||
### CLI Commands
|
||||
|
||||
| Command | Description |
|
||||
| ----------------- | ------------------------------- |
|
||||
| `kilo mcp list` | List all configured MCP servers |
|
||||
| `kilo mcp add` | Add an MCP server |
|
||||
| `kilo mcp auth` | Authenticate with an MCP server |
|
||||
| `kilo mcp logout` | Log out from an MCP server |
|
||||
| `kilo mcp debug` | Debug an MCP server connection |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `kilo mcp list` | List all configured MCP servers |
|
||||
| `kilo mcp add` | Add an MCP server |
|
||||
| `kilo mcp auth` | Authenticate with an MCP server |
|
||||
| `kilo mcp logout` | Log out from an MCP server |
|
||||
| `kilo mcp debug` | Debug an MCP server connection |
|
||||
|
||||
### Enabling or Disabling a Server
|
||||
|
||||
@@ -513,20 +513,20 @@ In the VS Code extension, open **Settings → MCP**, click **Add Server**, and c
|
||||
|
||||
Use `cmd` as the command and pass the package command as arguments:
|
||||
|
||||
| Field | Value |
|
||||
| ------------- | ----------------------------------------------------------- |
|
||||
| **Name** | `puppeteer` |
|
||||
| **Command** | `cmd` |
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| **Name** | `puppeteer` |
|
||||
| **Command** | `cmd` |
|
||||
| **Arguments** | `/c`, `npx`, `-y`, `@modelcontextprotocol/server-puppeteer` |
|
||||
|
||||
### macOS and Linux
|
||||
|
||||
Use the executable directly:
|
||||
|
||||
| Field | Value |
|
||||
| ------------- | ---------------------------------------------- |
|
||||
| **Name** | `puppeteer` |
|
||||
| **Command** | `npx` |
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| **Name** | `puppeteer` |
|
||||
| **Command** | `npx` |
|
||||
| **Arguments** | `-y`, `@modelcontextprotocol/server-puppeteer` |
|
||||
|
||||
{% /tab %}
|
||||
|
||||
@@ -16,15 +16,15 @@ Kilo Code implements a sophisticated tool system that allows AI models to intera
|
||||
|
||||
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 |
|
||||
| **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 |
|
||||
| **MCP Group** | External tool integration | MCP server tools (namespaced as `{server}_{tool}`) | Specialized functionality via MCP |
|
||||
| **Workflow Group** | Sub-agents and task management | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill` | Context switching and task organization |
|
||||
| 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 |
|
||||
| **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 |
|
||||
| **MCP Group** | External tool integration | MCP server tools (namespaced as `{server}_{tool}`) | Specialized functionality via MCP |
|
||||
| **Workflow Group** | Sub-agents and task management | `question`, `task`, `todowrite`, `todoread`, `plan`, `skill` | Context switching and task organization |
|
||||
|
||||
### Always Available Tools
|
||||
|
||||
@@ -99,14 +99,14 @@ These tools help manage the conversation and task flow:
|
||||
|
||||
Tools are organized into logical groups based on their functionality:
|
||||
|
||||
| Category | Purpose | Tools | Common Use |
|
||||
| ------------------ | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
|
||||
| **Read Group** | File system reading and searching | [read_file](/docs/automate/tools/read-file), [search_files](/docs/automate/tools/search-files), [list_files](/docs/automate/tools/list-files), [list_code_definition_names](/docs/automate/tools/list-code-definition-names) | Code exploration and analysis |
|
||||
| **Edit Group** | File system modifications | [apply_diff](/docs/automate/tools/apply-diff), [delete_file](/docs/automate/tools/delete-file), [write_to_file](/docs/automate/tools/write-to-file) | Code changes and file manipulation |
|
||||
| **Browser Group** | Web automation | [browser_action](/docs/automate/tools/browser-action) | Web testing and interaction |
|
||||
| **Command Group** | System command execution | [execute_command](/docs/automate/tools/execute-command) | Running scripts, building projects |
|
||||
| **MCP Group** | External tool integration | [use_mcp_tool](/docs/automate/tools/use-mcp-tool), [access_mcp_resource](/docs/automate/tools/access-mcp-resource) | Specialized functionality through external servers |
|
||||
| **Workflow Group** | Mode and task management | [switch_mode](/docs/automate/tools/switch-mode), [new_task](/docs/automate/tools/new-task), [ask_followup_question](/docs/automate/tools/ask-followup-question), [attempt_completion](/docs/automate/tools/attempt-completion), [update_todo_list](/docs/automate/tools/update-todo-list) | Context switching and task organization |
|
||||
| Category | Purpose | Tools | Common Use |
|
||||
|---|---|---|---|
|
||||
| **Read Group** | File system reading and searching | [read_file](/docs/automate/tools/read-file), [search_files](/docs/automate/tools/search-files), [list_files](/docs/automate/tools/list-files), [list_code_definition_names](/docs/automate/tools/list-code-definition-names) | Code exploration and analysis |
|
||||
| **Edit Group** | File system modifications | [apply_diff](/docs/automate/tools/apply-diff), [delete_file](/docs/automate/tools/delete-file), [write_to_file](/docs/automate/tools/write-to-file) | Code changes and file manipulation |
|
||||
| **Browser Group** | Web automation | [browser_action](/docs/automate/tools/browser-action) | Web testing and interaction |
|
||||
| **Command Group** | System command execution | [execute_command](/docs/automate/tools/execute-command) | Running scripts, building projects |
|
||||
| **MCP Group** | External tool integration | [use_mcp_tool](/docs/automate/tools/use-mcp-tool), [access_mcp_resource](/docs/automate/tools/access-mcp-resource) | Specialized functionality through external servers |
|
||||
| **Workflow Group** | Mode and task management | [switch_mode](/docs/automate/tools/switch-mode), [new_task](/docs/automate/tools/new-task), [ask_followup_question](/docs/automate/tools/ask-followup-question), [attempt_completion](/docs/automate/tools/attempt-completion), [update_todo_list](/docs/automate/tools/update-todo-list) | Context switching and task organization |
|
||||
|
||||
### Always Available Tools
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@ description: "Smart model routing that automatically selects the optimal AI mode
|
||||
|
||||
Auto Model is a smart model routing system that automatically selects the optimal AI model based on the Kilo Code mode you're using. It comes in multiple tiers so you can balance cost and capability to fit your needs.
|
||||
|
||||
| Tier | Best For | Pricing |
|
||||
| -------------------- | ------------------------------------------------- | ------- |
|
||||
| `kilo-auto/frontier` | Maximum capability with the best available models | Paid |
|
||||
| `kilo-auto/balanced` | Strong performance at a lower cost | Paid |
|
||||
| `kilo-auto/free` | The best free models available | Free |
|
||||
| Tier | Best For | Pricing |
|
||||
|---|---|---|
|
||||
| `kilo-auto/frontier` | Maximum capability with the best available models | Paid |
|
||||
| `kilo-auto/balanced` | Strong performance at a lower cost | Paid |
|
||||
| `kilo-auto/free` | The best free models available | Free |
|
||||
|
||||
## How It Works
|
||||
|
||||
|
||||
@@ -137,12 +137,12 @@ Reference files and other context directly in your message using `@`:
|
||||
|
||||
## Common Mistakes to Avoid
|
||||
|
||||
| Instead of this... | Try this |
|
||||
| --------------------------------- | ----------------------------------------------------------------------------------- |
|
||||
| "Fix the code" | "Fix the bug in `calculateTotal` that returns incorrect results" |
|
||||
| Assuming Kilo knows context | Use `@` to reference specific files |
|
||||
| Multiple unrelated tasks | Submit one focused request at a time |
|
||||
| Technical jargon overload | Clear, straightforward language works best |
|
||||
| Instead of this... | Try this |
|
||||
|---|---|
|
||||
| "Fix the code" | "Fix the bug in `calculateTotal` that returns incorrect results" |
|
||||
| Assuming Kilo knows context | Use `@` to reference specific files |
|
||||
| Multiple unrelated tasks | Submit one focused request at a time |
|
||||
| Technical jargon overload | Clear, straightforward language works best |
|
||||
| Using chat for tiny code changes. | Use [autocomplete](/docs/code-with-ai/features/autocomplete) for inline completions |
|
||||
|
||||
**Why it matters:** Kilo Code works best when you communicate like you're talking to a smart teammate who needs clear direction.
|
||||
|
||||
@@ -20,11 +20,11 @@ When you describe a task, the agent uses its tools — `read`, `grep`, `glob`, a
|
||||
|
||||
Type `@` in the chat input to get autocomplete suggestions. You can mention:
|
||||
|
||||
| Mention | Description | Example |
|
||||
| ---------------- | ----------------------------------------------------- | --------------- |
|
||||
| **File** | Attach a file's contents to your message | `@src/utils.ts` |
|
||||
| **Terminal** | Include your active VS Code terminal output | `@terminal` |
|
||||
| **Git Changes** | Attach uncommitted working-tree diffs and new files | `@git-changes` |
|
||||
| Mention | Description | Example |
|
||||
|---|---|---|
|
||||
| **File** | Attach a file's contents to your message | `@src/utils.ts` |
|
||||
| **Terminal** | Include your active VS Code terminal output | `@terminal` |
|
||||
| **Git Changes** | Attach uncommitted working-tree diffs and new files | `@git-changes` |
|
||||
|
||||
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.
|
||||
|
||||
@@ -32,12 +32,12 @@ Selecting a suggestion inserts the mention and highlights it in the input. File
|
||||
|
||||
You can also add file mentions by dragging and dropping:
|
||||
|
||||
| Source | How | Result |
|
||||
| ------------------------------ | ----------------------------------------------------------------------------------------- | ------------------------------------ |
|
||||
| **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 |
|
||||
| **Images** | Hold **Shift** while dragging an image file from your OS file manager into the chat input | Attaches the image |
|
||||
| Source | How | Result |
|
||||
|---|---|---|
|
||||
| **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 |
|
||||
| **Images** | Hold **Shift** while dragging an image file from your OS file manager into the chat input | Attaches the image |
|
||||
|
||||
{% 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.
|
||||
@@ -53,23 +53,23 @@ Selected code and editor diagnostics (errors/warnings) are not included automati
|
||||
|
||||
Rather than attaching file contents up front, the agent reads files on demand during its work:
|
||||
|
||||
| Tool | Purpose | Example |
|
||||
| -------- | --------------------------------------------- | ------------------------------------------- |
|
||||
| **read** | Read the contents of a specific file | Agent reads `src/utils.ts` to understand it |
|
||||
| **glob** | Find files matching a pattern | Agent searches for `**/*.test.ts` |
|
||||
| **grep** | Search file contents for a pattern | Agent searches for `function handleError` |
|
||||
| **bash** | Run shell commands including `git` operations | Agent runs `git diff` or `git log` |
|
||||
| Tool | Purpose | Example |
|
||||
|---|---|---|
|
||||
| **read** | Read the contents of a specific file | Agent reads `src/utils.ts` to understand it |
|
||||
| **glob** | Find files matching a pattern | Agent searches for `**/*.test.ts` |
|
||||
| **grep** | Search file contents for a pattern | Agent searches for `function handleError` |
|
||||
| **bash** | Run shell commands including `git` operations | Agent runs `git diff` or `git log` |
|
||||
|
||||
This means the agent can explore your entire project as needed, rather than being limited to files you explicitly mention.
|
||||
|
||||
## Best Practices
|
||||
|
||||
| Practice | Description |
|
||||
| ------------------------------ | -------------------------------------------------------------------------------------------------- |
|
||||
| **Describe the task clearly** | The agent finds context on its own — focus on _what_ you want done rather than _where_ the code is |
|
||||
| **Mention files when helpful** | If you know the exact file, mention its path to save the agent a search step |
|
||||
| **Keep editor tabs relevant** | Open tabs are passed as context, so keep relevant files open |
|
||||
| **Trust the agent's tools** | The agent can search, read, and explore your codebase — let it do the discovery work |
|
||||
| Practice | Description |
|
||||
|---|---|
|
||||
| **Describe the task clearly** | The agent finds context on its own — focus on _what_ you want done rather than _where_ the code is |
|
||||
| **Mention files when helpful** | If you know the exact file, mention its path to save the agent a search step |
|
||||
| **Keep editor tabs relevant** | Open tabs are passed as context, so keep relevant files open |
|
||||
| **Trust the agent's tools** | The agent can search, read, and explore your codebase — let it do the discovery work |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
@@ -93,23 +93,23 @@ In the terminal-based TUI, you can provide context in several ways:
|
||||
|
||||
Rather than attaching file contents up front, the agent reads files on demand during its work:
|
||||
|
||||
| Tool | Purpose | Example |
|
||||
| -------- | --------------------------------------------- | ------------------------------------------- |
|
||||
| **read** | Read the contents of a specific file | Agent reads `src/utils.ts` to understand it |
|
||||
| **glob** | Find files matching a pattern | Agent searches for `**/*.test.ts` |
|
||||
| **grep** | Search file contents for a pattern | Agent searches for `function handleError` |
|
||||
| **bash** | Run shell commands including `git` operations | Agent runs `git diff` or `git log` |
|
||||
| Tool | Purpose | Example |
|
||||
|---|---|---|
|
||||
| **read** | Read the contents of a specific file | Agent reads `src/utils.ts` to understand it |
|
||||
| **glob** | Find files matching a pattern | Agent searches for `**/*.test.ts` |
|
||||
| **grep** | Search file contents for a pattern | Agent searches for `function handleError` |
|
||||
| **bash** | Run shell commands including `git` operations | Agent runs `git diff` or `git log` |
|
||||
|
||||
This means the agent can explore your entire project as needed, rather than being limited to files you explicitly mention.
|
||||
|
||||
## Best Practices
|
||||
|
||||
| Practice | Description |
|
||||
| ------------------------------ | -------------------------------------------------------------------------------------------------- |
|
||||
| **Describe the task clearly** | The agent finds context on its own — focus on _what_ you want done rather than _where_ the code is |
|
||||
| **Mention files when helpful** | If you know the exact file, mention its path to save the agent a search step |
|
||||
| **Use `kilo run -f`** | Pass key files with `-f` when using `kilo run` for immediate context |
|
||||
| **Trust the agent's tools** | The agent can search, read, and explore your codebase — let it do the discovery work |
|
||||
| Practice | Description |
|
||||
|---|---|
|
||||
| **Describe the task clearly** | The agent finds context on its own — focus on _what_ you want done rather than _where_ the code is |
|
||||
| **Mention files when helpful** | If you know the exact file, mention its path to save the agent a search step |
|
||||
| **Use `kilo run -f`** | Pass key files with `-f` when using `kilo run` for immediate context |
|
||||
| **Trust the agent's tools** | The agent can search, read, and explore your codebase — let it do the discovery work |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
@@ -122,84 +122,84 @@ Context mentions are a powerful way to provide Kilo Code with specific informati
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-1.png" alt="File mention example showing a file being referenced with @ and its contents appearing in the conversation" width="600" caption="File mentions add actual code content into the conversation for direct reference and analysis." /%}
|
||||
|
||||
| Mention Type | Format | Description | Example Usage |
|
||||
| --------------- | ---------------------- | ------------------------------------------- | ---------------------------------------- |
|
||||
| **File** | `@/path/to/file.ts` | Includes file contents in request context | "Explain the function in @/src/utils.ts" |
|
||||
| **Folder** | `@/path/to/folder/` | Provides directory structure in tree format | "What files are in @/src/components/?" |
|
||||
| **Problems** | `@problems` | Includes VS Code Problems panel diagnostics | "@problems Fix all errors in my code" |
|
||||
| **Terminal** | `@terminal` | Includes recent terminal command and output | "Fix the errors shown in @terminal" |
|
||||
| **Git Commit** | `@a1b2c3d` | References specific commit by hash | "What changed in commit @a1b2c3d?" |
|
||||
| **Git Changes** | `@git-changes` | Shows uncommitted changes | "Suggest a message for @git-changes" |
|
||||
| **URL** | `@https://example.com` | Imports website content | "Summarize @https://docusaurus.io/" |
|
||||
| Mention Type | Format | Description | Example Usage |
|
||||
|---|---|---|---|
|
||||
| **File** | `@/path/to/file.ts` | Includes file contents in request context | "Explain the function in @/src/utils.ts" |
|
||||
| **Folder** | `@/path/to/folder/` | Provides directory structure in tree format | "What files are in @/src/components/?" |
|
||||
| **Problems** | `@problems` | Includes VS Code Problems panel diagnostics | "@problems Fix all errors in my code" |
|
||||
| **Terminal** | `@terminal` | Includes recent terminal command and output | "Fix the errors shown in @terminal" |
|
||||
| **Git Commit** | `@a1b2c3d` | References specific commit by hash | "What changed in commit @a1b2c3d?" |
|
||||
| **Git Changes** | `@git-changes` | Shows uncommitted changes | "Suggest a message for @git-changes" |
|
||||
| **URL** | `@https://example.com` | Imports website content | "Summarize @https://docusaurus.io/" |
|
||||
|
||||
### File Mentions
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-1.png" alt="File mention example showing a file being referenced with @ and its contents appearing in the conversation" width="600" caption="File mentions incorporate source code with line numbers for precise references." /%}
|
||||
|
||||
| Capability | Details |
|
||||
| --------------- | --------------------------------------------------------------- |
|
||||
| **Format** | `@/path/to/file.ts` (always start with `/` from workspace root) |
|
||||
| **Provides** | Complete file contents with line numbers |
|
||||
| **Supports** | Text files, PDFs, and DOCX files (with text extraction) |
|
||||
| **Works in** | Initial requests, feedback responses, and follow-up messages |
|
||||
| **Limitations** | Very large files may be truncated; binary files not supported |
|
||||
| Capability | Details |
|
||||
|---|---|
|
||||
| **Format** | `@/path/to/file.ts` (always start with `/` from workspace root) |
|
||||
| **Provides** | Complete file contents with line numbers |
|
||||
| **Supports** | Text files, PDFs, and DOCX files (with text extraction) |
|
||||
| **Works in** | Initial requests, feedback responses, and follow-up messages |
|
||||
| **Limitations** | Very large files may be truncated; binary files not supported |
|
||||
|
||||
### Folder Mentions
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-2.png" alt="Folder mention example showing directory contents being referenced in the chat" width="600" caption="Folder mentions display directory structure in a readable tree format." /%}
|
||||
|
||||
| Capability | Details |
|
||||
| ------------ | ------------------------------------------------------ |
|
||||
| **Format** | `@/path/to/folder/` (note trailing slash) |
|
||||
| **Provides** | Hierarchical tree display with ├── and └── prefixes |
|
||||
| **Includes** | Immediate child files and directories (not recursive) |
|
||||
| **Best for** | Understanding project structure |
|
||||
| **Tip** | Use with file mentions to check specific file contents |
|
||||
| Capability | Details |
|
||||
|---|---|
|
||||
| **Format** | `@/path/to/folder/` (note trailing slash) |
|
||||
| **Provides** | Hierarchical tree display with ├── and └── prefixes |
|
||||
| **Includes** | Immediate child files and directories (not recursive) |
|
||||
| **Best for** | Understanding project structure |
|
||||
| **Tip** | Use with file mentions to check specific file contents |
|
||||
|
||||
### Problems Mention
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-3.png" alt="Problems mention example showing VS Code problems panel being referenced with @problems" width="600" caption="Problems mentions import diagnostics directly from VS Code's problems panel." /%}
|
||||
|
||||
| Capability | Details |
|
||||
| ------------ | ----------------------------------------------------- |
|
||||
| **Format** | `@problems` |
|
||||
| Capability | Details |
|
||||
|---|---|
|
||||
| **Format** | `@problems` |
|
||||
| **Provides** | All errors and warnings from VS Code's problems panel |
|
||||
| **Includes** | File paths, line numbers, and diagnostic messages |
|
||||
| **Groups** | Problems organized by file for better clarity |
|
||||
| **Best for** | Fixing errors without manual copying |
|
||||
| **Includes** | File paths, line numbers, and diagnostic messages |
|
||||
| **Groups** | Problems organized by file for better clarity |
|
||||
| **Best for** | Fixing errors without manual copying |
|
||||
|
||||
### Terminal Mention
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-4.png" alt="Terminal mention example showing terminal output being included in Kilo Code's context" width="600" caption="Terminal mentions capture recent command output for debugging and analysis." /%}
|
||||
|
||||
| Capability | Details |
|
||||
| -------------- | -------------------------------------------------- |
|
||||
| **Format** | `@terminal` |
|
||||
| **Captures** | Last command and its complete output |
|
||||
| **Preserves** | Terminal state (doesn't clear the terminal) |
|
||||
| **Limitation** | Limited to visible terminal buffer content |
|
||||
| **Best for** | Debugging build errors or analyzing command output |
|
||||
| Capability | Details |
|
||||
|---|---|
|
||||
| **Format** | `@terminal` |
|
||||
| **Captures** | Last command and its complete output |
|
||||
| **Preserves** | Terminal state (doesn't clear the terminal) |
|
||||
| **Limitation** | Limited to visible terminal buffer content |
|
||||
| **Best for** | Debugging build errors or analyzing command output |
|
||||
|
||||
### Git Mentions
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-5.png" alt="Git commit mention example showing commit details being analyzed by Kilo Code" width="600" caption="Git mentions provide commit details and diffs for context-aware version analysis." /%}
|
||||
|
||||
| Type | Format | Provides | Limitations |
|
||||
| ------------------- | -------------- | --------------------------------------------------- | ------------------------------ |
|
||||
| **Commit** | `@a1b2c3d` | Commit message, author, date, and complete diff | Only works in Git repositories |
|
||||
| Type | Format | Provides | Limitations |
|
||||
|---|---|---|---|
|
||||
| **Commit** | `@a1b2c3d` | Commit message, author, date, and complete diff | Only works in Git repositories |
|
||||
| **Working Changes** | `@git-changes` | `git status` output and diff of uncommitted changes | Only works in Git repositories |
|
||||
|
||||
### URL Mentions
|
||||
|
||||
{% image src="/docs/img/context-mentions/context-mentions-6.png" alt="URL mention example showing website content being converted to Markdown in the chat" width="600" caption="URL mentions import external web content and convert it to readable Markdown format." /%}
|
||||
|
||||
| Capability | Details |
|
||||
| -------------- | ------------------------------------------------ |
|
||||
| **Format** | `@https://example.com` |
|
||||
| **Processing** | Uses headless browser to fetch content |
|
||||
| **Cleaning** | Removes scripts, styles, and navigation elements |
|
||||
| **Output** | Converts content to Markdown for readability |
|
||||
| **Limitation** | Complex pages may not convert perfectly |
|
||||
| Capability | Details |
|
||||
|---|---|
|
||||
| **Format** | `@https://example.com` |
|
||||
| **Processing** | Uses headless browser to fetch content |
|
||||
| **Cleaning** | Removes scripts, styles, and navigation elements |
|
||||
| **Output** | Converts content to Markdown for readability |
|
||||
| **Limitation** | Complex pages may not convert perfectly |
|
||||
|
||||
## How to Use Mentions
|
||||
|
||||
@@ -217,14 +217,14 @@ The dropdown automatically suggests:
|
||||
|
||||
## Best Practices
|
||||
|
||||
| Practice | Description |
|
||||
| -------------------------- | -------------------------------------------------------------------------------- |
|
||||
| **Use specific paths** | Reference exact files rather than describing them |
|
||||
| **Use relative paths** | Always start from workspace root: `@/src/file.ts` not `@C:/Projects/src/file.ts` |
|
||||
| **Verify references** | Ensure paths and commit hashes are correct |
|
||||
| **Click mentions** | Click mentions in chat history to open files or view content |
|
||||
| **Eliminate copy-pasting** | Use mentions instead of manually copying code or errors |
|
||||
| **Combine mentions** | "Fix @problems in @/src/component.ts using the pattern from commit @a1b2c3d" |
|
||||
| Practice | Description |
|
||||
|---|---|
|
||||
| **Use specific paths** | Reference exact files rather than describing them |
|
||||
| **Use relative paths** | Always start from workspace root: `@/src/file.ts` not `@C:/Projects/src/file.ts` |
|
||||
| **Verify references** | Ensure paths and commit hashes are correct |
|
||||
| **Click mentions** | Click mentions in chat history to open files or view content |
|
||||
| **Eliminate copy-pasting** | Use mentions instead of manually copying code or errors |
|
||||
| **Combine mentions** | "Fix @problems in @/src/component.ts using the pattern from commit @a1b2c3d" |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -76,30 +76,30 @@ The `model` key uses the format `provider_id/model_id`, where:
|
||||
|
||||
All fields are optional. When a model ID matches one already in the built-in catalog, your values are merged on top of the defaults — you only need to specify what you want to override.
|
||||
|
||||
| Field | Type | Description |
|
||||
| ------------- | --------- | ----------------------------------------------------------------------------- |
|
||||
| `name` | `string` | Display name shown in the model picker |
|
||||
| `id` | `string` | API-facing model ID sent to the provider. Defaults to the config key |
|
||||
| `tool_call` | `boolean` | Whether the model supports tool/function calling |
|
||||
| `reasoning` | `boolean` | Whether the model supports extended thinking |
|
||||
| `temperature` | `boolean` | Whether the model supports the temperature parameter |
|
||||
| `attachment` | `boolean` | Whether the model supports file attachments |
|
||||
| `modalities` | `object` | Optional. Supported input and output types: `{ input, output }` |
|
||||
| `limit` | `object` | Token limits: `{ context, output, input? }` |
|
||||
| `cost` | `object` | Pricing per million tokens: `{ input, output, cache_read?, cache_write? }` |
|
||||
| `options` | `object` | Arbitrary provider-specific model options |
|
||||
| `headers` | `object` | Custom HTTP headers to include in requests |
|
||||
| `provider` | `object` | Override `{ npm?, api? }` — the AI SDK package or base API URL for this model |
|
||||
| `variants` | `object` | Named variant configurations (e.g., different reasoning efforts) |
|
||||
| Field | Type | Description |
|
||||
|---|---|---|
|
||||
| `name` | `string` | Display name shown in the model picker |
|
||||
| `id` | `string` | API-facing model ID sent to the provider. Defaults to the config key |
|
||||
| `tool_call` | `boolean` | Whether the model supports tool/function calling |
|
||||
| `reasoning` | `boolean` | Whether the model supports extended thinking |
|
||||
| `temperature` | `boolean` | Whether the model supports the temperature parameter |
|
||||
| `attachment` | `boolean` | Whether the model supports file attachments |
|
||||
| `modalities` | `object` | Optional. Supported input and output types: `{ input, output }` |
|
||||
| `limit` | `object` | Token limits: `{ context, output, input? }` |
|
||||
| `cost` | `object` | Pricing per million tokens: `{ input, output, cache_read?, cache_write? }` |
|
||||
| `options` | `object` | Arbitrary provider-specific model options |
|
||||
| `headers` | `object` | Custom HTTP headers to include in requests |
|
||||
| `provider` | `object` | Override `{ npm?, api? }` — the AI SDK package or base API URL for this model |
|
||||
| `variants` | `object` | Named variant configurations (e.g., different reasoning efforts) |
|
||||
|
||||
### Modalities (modalities)
|
||||
|
||||
The `modalities` object declares which content types the model can receive and produce. It is optional — omit it to use defaults from the catalog or fallback to text-only. When `modalities` is provided, both `input` and `output` arrays are required. Each array can include `text`, `image`, `audio`, `video`, or `pdf`.
|
||||
|
||||
| Sub-field | Type | Required | Description |
|
||||
| --------- | ------- | ---------------- | ------------------------------------------------ |
|
||||
| `input` | `array` | Yes (if present) | Content types the model accepts from the user |
|
||||
| `output` | `array` | Yes (if present) | Content types the model can generate in response |
|
||||
| Sub-field | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `input` | `array` | Yes (if present) | Content types the model accepts from the user |
|
||||
| `output` | `array` | Yes (if present) | Content types the model can generate in response |
|
||||
|
||||
For a standard text model that can also inspect images, use:
|
||||
|
||||
@@ -116,11 +116,11 @@ If `modalities` is omitted and the model ID matches a models.dev catalog entry f
|
||||
|
||||
The `limit` object controls how Kilo manages the model's context window and output length. These values are specified in **tokens**.
|
||||
|
||||
| Sub-field | Type | Required | Description |
|
||||
| --------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `context` | `number` | No | The model's total context window size (e.g., `131072` for a 128K model). Used to determine when conversation history should be compacted to stay within the window. |
|
||||
| `output` | `number` | No | The maximum number of tokens the model can generate in a single response. Sent to the provider as `max_tokens` or equivalent. Capped at 32,000 by default. |
|
||||
| `input` | `number` | No | An optional stricter input limit. Some providers enforce an input token ceiling that is lower than the full context window. When set, compaction triggers against this value instead of `context`. |
|
||||
| Sub-field | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `context` | `number` | No | The model's total context window size (e.g., `131072` for a 128K model). Used to determine when conversation history should be compacted to stay within the window. |
|
||||
| `output` | `number` | No | The maximum number of tokens the model can generate in a single response. Sent to the provider as `max_tokens` or equivalent. Capped at 32,000 by default. |
|
||||
| `input` | `number` | No | An optional stricter input limit. Some providers enforce an input token ceiling that is lower than the full context window. When set, compaction triggers against this value instead of `context`. |
|
||||
|
||||
```jsonc
|
||||
"limit": {
|
||||
@@ -336,10 +336,10 @@ You can also set options that apply to all models from a provider:
|
||||
}
|
||||
```
|
||||
|
||||
| Option | Type | Description |
|
||||
| --------- | ----------------- | ------------------------------------------------------ |
|
||||
| `apiKey` | `string` | API key (supports `{env:VAR}` syntax) |
|
||||
| `baseURL` | `string` | Override the provider's base API URL |
|
||||
| Option | Type | Description |
|
||||
|---|---|---|
|
||||
| `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 |
|
||||
|
||||
## Filtering Available Models
|
||||
|
||||
@@ -58,18 +58,18 @@ Four ways to switch modes:
|
||||
|
||||
Users often confuse `/newtask` and `/smol`. Here's the key difference:
|
||||
|
||||
| Command | Purpose | When to Use |
|
||||
| ---------- | ----------------------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| `/newtask` | Creates a new task with context from the current task | When you want to start something new while carrying over context |
|
||||
| `/smol` | Condenses your current context window | When your conversation is getting too long and you want to summarize it |
|
||||
| Command | Purpose | When to Use |
|
||||
|---|---|---|
|
||||
| `/newtask` | Creates a new task with context from the current task | When you want to start something new while carrying over context |
|
||||
| `/smol` | Condenses your current context window | When your conversation is getting too long and you want to summarize it |
|
||||
|
||||
3. **Toggle command/Keyboard shortcut:** Use the keyboard shortcut below, applicable to your operating system. Each press cycles through the available modes in sequence, wrapping back to the first mode after reaching the end.
|
||||
|
||||
| Operating System | Shortcut |
|
||||
| ---------------- | -------- |
|
||||
| macOS | ⌘ + . |
|
||||
| Windows | Ctrl + . |
|
||||
| Linux | Ctrl + . |
|
||||
|---|---|
|
||||
| macOS | ⌘ + . |
|
||||
| Windows | Ctrl + . |
|
||||
| Linux | Ctrl + . |
|
||||
|
||||
You can hold `shift` to move backwards through the list of modes, for example ⌘ + shift + on macOS.
|
||||
|
||||
@@ -87,48 +87,48 @@ You can hold `shift` to move backwards through the list of modes, for example
|
||||
|
||||
### code (Default)
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A skilled software engineer with expertise in programming languages, design patterns, and best practices |
|
||||
| **Tool Access** | Full access to all tools: `read`, `edit`, `glob`, `grep`, `bash`, `task`, `webfetch`, plus tools from MCP servers |
|
||||
| **Ideal For** | Writing code, implementing features, debugging, and general development |
|
||||
| **Special Features** | No tool restrictions — full flexibility for all coding tasks |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A skilled software engineer with expertise in programming languages, design patterns, and best practices |
|
||||
| **Tool Access** | Full access to all tools: `read`, `edit`, `glob`, `grep`, `bash`, `task`, `webfetch`, plus tools from MCP servers |
|
||||
| **Ideal For** | Writing code, implementing features, debugging, and general development |
|
||||
| **Special Features** | No tool restrictions — full flexibility for all coding tasks |
|
||||
|
||||
### ask
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A knowledgeable technical assistant focused on answering questions without changing your codebase |
|
||||
| **Tool Access** | Read-only tools only (cannot edit files or run commands) |
|
||||
| **Ideal For** | Code explanation, concept exploration, and technical learning |
|
||||
| **Special Features** | Optimized for informative responses without modifying your project |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A knowledgeable technical assistant focused on answering questions without changing your codebase |
|
||||
| **Tool Access** | Read-only tools only (cannot edit files or run commands) |
|
||||
| **Ideal For** | Code explanation, concept exploration, and technical learning |
|
||||
| **Special Features** | Optimized for informative responses without modifying your project |
|
||||
|
||||
### plan
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| **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 |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **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 |
|
||||
|
||||
### debug
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ----------------------------------------------------------------------------------- |
|
||||
| **Description** | An expert problem solver specializing in systematic troubleshooting and diagnostics |
|
||||
| **Tool Access** | Full access to all tools |
|
||||
| **Ideal For** | Tracking down bugs, diagnosing errors, and resolving complex issues |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | An expert problem solver specializing in systematic troubleshooting and diagnostics |
|
||||
| **Tool Access** | Full access to all tools |
|
||||
| **Ideal For** | Tracking down bugs, diagnosing errors, and resolving complex issues |
|
||||
| **Special Features** | Uses a methodical approach of analyzing, narrowing possibilities, and fixing issues |
|
||||
|
||||
### orchestrator (Deprecated)
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized agents |
|
||||
| **Tool Access** | Limited access to create new tasks and coordinate workflows |
|
||||
| **Ideal For** | Breaking down complex projects into manageable subtasks assigned to specialized agents |
|
||||
| **Special Features** | Delegates work to other agents; also has access to the **explore** subagent for codebase exploration |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized agents |
|
||||
| **Tool Access** | Limited access to create new tasks and coordinate workflows |
|
||||
| **Ideal For** | Breaking down complex projects into manageable subtasks assigned to specialized agents |
|
||||
| **Special Features** | Delegates work to other agents; also has access to the **explore** subagent for codebase exploration |
|
||||
|
||||
{% callout type="warning" %}
|
||||
Orchestrator is deprecated and will be removed in a future release. Agents with full tool access (Code, Plan, Debug) now support subagents natively — there's no need for a dedicated orchestrator. See [Orchestrator Mode (Deprecated)](/docs/code-with-ai/agents/orchestrator-mode) for migration details.
|
||||
@@ -143,48 +143,48 @@ The VSCode extension and CLI do not include a built-in Review agent. Code review
|
||||
|
||||
### code (Default)
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A skilled software engineer with expertise in programming languages, design patterns, and best practices |
|
||||
| **Tool Access** | Full access to all tools: `read`, `edit`, `glob`, `grep`, `bash`, `task`, `webfetch`, plus tools from MCP servers |
|
||||
| **Ideal For** | Writing code, implementing features, debugging, and general development |
|
||||
| **Special Features** | No tool restrictions — full flexibility for all coding tasks |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A skilled software engineer with expertise in programming languages, design patterns, and best practices |
|
||||
| **Tool Access** | Full access to all tools: `read`, `edit`, `glob`, `grep`, `bash`, `task`, `webfetch`, plus tools from MCP servers |
|
||||
| **Ideal For** | Writing code, implementing features, debugging, and general development |
|
||||
| **Special Features** | No tool restrictions — full flexibility for all coding tasks |
|
||||
|
||||
### ask
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A knowledgeable technical assistant focused on answering questions without changing your codebase |
|
||||
| **Tool Access** | Read-only tools only (cannot edit files or run commands) |
|
||||
| **Ideal For** | Code explanation, concept exploration, and technical learning |
|
||||
| **Special Features** | Optimized for informative responses without modifying your project |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A knowledgeable technical assistant focused on answering questions without changing your codebase |
|
||||
| **Tool Access** | Read-only tools only (cannot edit files or run commands) |
|
||||
| **Ideal For** | Code explanation, concept exploration, and technical learning |
|
||||
| **Special Features** | Optimized for informative responses without modifying your project |
|
||||
|
||||
### plan
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| **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 |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **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 |
|
||||
|
||||
### debug
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ----------------------------------------------------------------------------------- |
|
||||
| **Description** | An expert problem solver specializing in systematic troubleshooting and diagnostics |
|
||||
| **Tool Access** | Full access to all tools |
|
||||
| **Ideal For** | Tracking down bugs, diagnosing errors, and resolving complex issues |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | An expert problem solver specializing in systematic troubleshooting and diagnostics |
|
||||
| **Tool Access** | Full access to all tools |
|
||||
| **Ideal For** | Tracking down bugs, diagnosing errors, and resolving complex issues |
|
||||
| **Special Features** | Uses a methodical approach of analyzing, narrowing possibilities, and fixing issues |
|
||||
|
||||
### orchestrator (Deprecated)
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized agents |
|
||||
| **Tool Access** | Limited access to create new tasks and coordinate workflows |
|
||||
| **Ideal For** | Breaking down complex projects into manageable subtasks assigned to specialized agents |
|
||||
| **Special Features** | Delegates work to other agents; also has access to the **explore** subagent for codebase exploration |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized agents |
|
||||
| **Tool Access** | Limited access to create new tasks and coordinate workflows |
|
||||
| **Ideal For** | Breaking down complex projects into manageable subtasks assigned to specialized agents |
|
||||
| **Special Features** | Delegates work to other agents; also has access to the **explore** subagent for codebase exploration |
|
||||
|
||||
{% callout type="warning" %}
|
||||
Orchestrator is deprecated and will be removed in a future release. Agents with full tool access (Code, Plan, Debug) now support subagents natively — there's no need for a dedicated orchestrator. See [Orchestrator Mode (Deprecated)](/docs/code-with-ai/agents/orchestrator-mode) for migration details.
|
||||
@@ -199,38 +199,38 @@ The VSCode extension and CLI do not include a built-in Review agent. Code review
|
||||
|
||||
### Code Mode (Default)
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A skilled software engineer with expertise in programming languages, design patterns, and best practices |
|
||||
| **Tool Access** | Full access to all tool groups: `read`, `edit`, `browser`, `command`, `mcp` |
|
||||
| **Ideal For** | Writing code, implementing features, debugging, and general development |
|
||||
| **Special Features** | No tool restrictions—full flexibility for all coding tasks |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A skilled software engineer with expertise in programming languages, design patterns, and best practices |
|
||||
| **Tool Access** | Full access to all tool groups: `read`, `edit`, `browser`, `command`, `mcp` |
|
||||
| **Ideal For** | Writing code, implementing features, debugging, and general development |
|
||||
| **Special Features** | No tool restrictions—full flexibility for all coding tasks |
|
||||
|
||||
### Ask Mode
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A knowledgeable technical assistant focused on answering questions without changing your codebase |
|
||||
| **Tool Access** | Limited access: `read`, `browser`, `mcp` only (cannot edit files or run commands) |
|
||||
| **Ideal For** | Code explanation, concept exploration, and technical learning |
|
||||
| **Special Features** | Optimized for informative responses without modifying your project |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A knowledgeable technical assistant focused on answering questions without changing your codebase |
|
||||
| **Tool Access** | Limited access: `read`, `browser`, `mcp` only (cannot edit files or run commands) |
|
||||
| **Ideal For** | Code explanation, concept exploration, and technical learning |
|
||||
| **Special Features** | Optimized for informative responses without modifying your project |
|
||||
|
||||
### Architect Mode
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | An experienced technical leader and planner who helps design systems and create implementation plans |
|
||||
| **Tool Access** | Access to `read`, `browser`, `mcp`, and restricted `edit` (markdown files only) |
|
||||
| **Ideal For** | System design, high-level planning, and architecture discussions |
|
||||
| **Special Features** | Follows a structured approach from information gathering to detailed planning |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | An experienced technical leader and planner who helps design systems and create implementation plans |
|
||||
| **Tool Access** | Access to `read`, `browser`, `mcp`, and restricted `edit` (markdown files only) |
|
||||
| **Ideal For** | System design, high-level planning, and architecture discussions |
|
||||
| **Special Features** | Follows a structured approach from information gathering to detailed planning |
|
||||
|
||||
### Debug Mode
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ----------------------------------------------------------------------------------- |
|
||||
| **Description** | An expert problem solver specializing in systematic troubleshooting and diagnostics |
|
||||
| **Tool Access** | Full access to all tool groups: `read`, `edit`, `browser`, `command`, `mcp` |
|
||||
| **Ideal For** | Tracking down bugs, diagnosing errors, and resolving complex issues |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | An expert problem solver specializing in systematic troubleshooting and diagnostics |
|
||||
| **Tool Access** | Full access to all tool groups: `read`, `edit`, `browser`, `command`, `mcp` |
|
||||
| **Ideal For** | Tracking down bugs, diagnosing errors, and resolving complex issues |
|
||||
| **Special Features** | Uses a methodical approach of analyzing, narrowing possibilities, and fixing issues |
|
||||
|
||||
{% callout type="tip" %}
|
||||
@@ -239,21 +239,21 @@ The VSCode extension and CLI do not include a built-in Review agent. Code review
|
||||
|
||||
### Orchestrator Mode
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | A strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes |
|
||||
| **Tool Access** | Limited access to create new tasks and coordinate workflows |
|
||||
| **Ideal For** | Breaking down complex projects into manageable subtasks assigned to specialized modes |
|
||||
| **Special Features** | Uses the new_task tool to delegate work to other modes |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | A strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes |
|
||||
| **Tool Access** | Limited access to create new tasks and coordinate workflows |
|
||||
| **Ideal For** | Breaking down complex projects into manageable subtasks assigned to specialized modes |
|
||||
| **Special Features** | Uses the new_task tool to delegate work to other modes |
|
||||
|
||||
### Review Mode
|
||||
|
||||
| Aspect | Details |
|
||||
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Description** | An expert code reviewer specializing in analyzing changes to provide structured feedback on quality, security, and best practices |
|
||||
| **Tool Access** | Access to `read`, `browser`, `mcp`, and when permitted, `edit` |
|
||||
| **Ideal For** | Catching issues early, enforcing code standards, accelerating PR turnaround |
|
||||
| **Special Features** | Code review before committing, surfacing feedback across performance, security, style, and test coverage |
|
||||
| Aspect | Details |
|
||||
|---|---|
|
||||
| **Description** | An expert code reviewer specializing in analyzing changes to provide structured feedback on quality, security, and best practices |
|
||||
| **Tool Access** | Access to `read`, `browser`, `mcp`, and when permitted, `edit` |
|
||||
| **Ideal For** | Catching issues early, enforcing code standards, accelerating PR turnaround |
|
||||
| **Special Features** | Code review before committing, surfacing feedback across performance, security, style, and test coverage |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -86,16 +86,16 @@ Key characteristics:
|
||||
|
||||
### Available Browser Tools
|
||||
|
||||
| Tool | Description | When to Use |
|
||||
| -------------------- | ----------------------------------- | ------------------------------------- |
|
||||
| `browser_navigate` | Navigates to a URL | Opening a web page |
|
||||
| `browser_click` | Clicks an element on the page | Interacting with buttons, links, etc. |
|
||||
| `browser_type` | Types text into an input element | Filling forms, search boxes |
|
||||
| `browser_screenshot` | Captures a screenshot of the page | Inspecting visual state |
|
||||
| `browser_scroll` | Scrolls the page or a specific area | Viewing content above or below |
|
||||
| `browser_hover` | Hovers over an element | Revealing tooltips or menus |
|
||||
| `browser_select` | Selects an option from a dropdown | Choosing from select elements |
|
||||
| `browser_drag` | Drags an element to a target | Drag-and-drop interactions |
|
||||
| Tool | Description | When to Use |
|
||||
|---|---|---|
|
||||
| `browser_navigate` | Navigates to a URL | Opening a web page |
|
||||
| `browser_click` | Clicks an element on the page | Interacting with buttons, links, etc. |
|
||||
| `browser_type` | Types text into an input element | Filling forms, search boxes |
|
||||
| `browser_screenshot` | Captures a screenshot of the page | Inspecting visual state |
|
||||
| `browser_scroll` | Scrolls the page or a specific area | Viewing content above or below |
|
||||
| `browser_hover` | Hovers over an element | Revealing tooltips or menus |
|
||||
| `browser_select` | Selects an option from a dropdown | Choosing from select elements |
|
||||
| `browser_drag` | Drags an element to a target | Drag-and-drop interactions |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
@@ -111,14 +111,14 @@ Key characteristics:
|
||||
|
||||
### Available Browser Actions
|
||||
|
||||
| Action | Description | When to Use |
|
||||
| ------------- | ------------------------------ | ------------------------------------- |
|
||||
| `launch` | Opens a browser at a URL | Starting a new browser session |
|
||||
| `click` | Clicks at specific coordinates | Interacting with buttons, links, etc. |
|
||||
| `type` | Types text into active element | Filling forms, search boxes |
|
||||
| `scroll_down` | Scrolls down by one page | Viewing content below the fold |
|
||||
| `scroll_up` | Scrolls up by one page | Returning to previous content |
|
||||
| `close` | Closes the browser | Ending a browser session |
|
||||
| Action | Description | When to Use |
|
||||
|---|---|---|
|
||||
| `launch` | Opens a browser at a URL | Starting a new browser session |
|
||||
| `click` | Clicks at specific coordinates | Interacting with buttons, links, etc. |
|
||||
| `type` | Types text into active element | Filling forms, search boxes |
|
||||
| `scroll_down` | Scrolls down by one page | Viewing content below the fold |
|
||||
| `scroll_up` | Scrolls up by one page | Returning to previous content |
|
||||
| `close` | Closes the browser | Ending a browser session |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -67,73 +67,73 @@ For detailed help on every command and subcommand, see the [CLI Command Referenc
|
||||
|
||||
### Global Options
|
||||
|
||||
| Flag | Description |
|
||||
| ----------------- | ----------------------------------- |
|
||||
| `--help`, `-h` | Show help |
|
||||
| `--version`, `-v` | Show version number |
|
||||
| `--print-logs` | Print logs to stderr |
|
||||
| `--log-level` | Log level: DEBUG, INFO, WARN, ERROR |
|
||||
| Flag | Description |
|
||||
|---|---|
|
||||
| `--help`, `-h` | Show help |
|
||||
| `--version`, `-v` | Show version number |
|
||||
| `--print-logs` | Print logs to stderr |
|
||||
| `--log-level` | Log level: DEBUG, INFO, WARN, ERROR |
|
||||
|
||||
### Interactive Slash Commands
|
||||
|
||||
#### Session Commands
|
||||
|
||||
| Command | Aliases | Description |
|
||||
| ------------- | ---------------------- | ------------------------- |
|
||||
| `/sessions` | `/resume`, `/continue` | Switch session |
|
||||
| `/new` | `/clear` | New session |
|
||||
| `/share` | - | Share session |
|
||||
| `/unshare` | - | Unshare session |
|
||||
| `/rename` | - | Rename session |
|
||||
| `/timeline` | - | Jump to message |
|
||||
| `/fork` | - | Fork from message |
|
||||
| `/compact` | `/summarize` | Compact/summarize session |
|
||||
| `/undo` | - | Undo previous message |
|
||||
| `/redo` | - | Redo message |
|
||||
| `/copy` | - | Copy session transcript |
|
||||
| `/export` | - | Export session transcript |
|
||||
| `/timestamps` | `/toggle-timestamps` | Show/hide timestamps |
|
||||
| `/thinking` | `/toggle-thinking` | Show/hide thinking blocks |
|
||||
| Command | Aliases | Description |
|
||||
|---|---|---|
|
||||
| `/sessions` | `/resume`, `/continue` | Switch session |
|
||||
| `/new` | `/clear` | New session |
|
||||
| `/share` | - | Share session |
|
||||
| `/unshare` | - | Unshare session |
|
||||
| `/rename` | - | Rename session |
|
||||
| `/timeline` | - | Jump to message |
|
||||
| `/fork` | - | Fork from message |
|
||||
| `/compact` | `/summarize` | Compact/summarize session |
|
||||
| `/undo` | - | Undo previous message |
|
||||
| `/redo` | - | Redo message |
|
||||
| `/copy` | - | Copy session transcript |
|
||||
| `/export` | - | Export session transcript |
|
||||
| `/timestamps` | `/toggle-timestamps` | Show/hide timestamps |
|
||||
| `/thinking` | `/toggle-thinking` | Show/hide thinking blocks |
|
||||
|
||||
#### Agent & Model Commands
|
||||
|
||||
| Command | Description |
|
||||
| --------- | ------------ |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `/models` | Switch model |
|
||||
| `/agents` | Switch agent |
|
||||
| `/mcps` | Toggle MCPs |
|
||||
| `/mcps` | Toggle MCPs |
|
||||
|
||||
#### Provider Commands
|
||||
|
||||
| Command | Description |
|
||||
| ---------- | ------------------------------------------------------------------------- |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `/connect` | Connect/add a provider - entry point for new users to add API credentials |
|
||||
|
||||
#### System Commands
|
||||
|
||||
| Command | Aliases | Description |
|
||||
| --------- | ------------- | -------------------- |
|
||||
| `/status` | - | View status |
|
||||
| `/themes` | - | Switch theme |
|
||||
| `/help` | - | Show help |
|
||||
| `/editor` | - | Open external editor |
|
||||
| `/exit` | `/quit`, `/q` | Exit the app |
|
||||
| Command | Aliases | Description |
|
||||
|---|---|---|
|
||||
| `/status` | - | View status |
|
||||
| `/themes` | - | Switch theme |
|
||||
| `/help` | - | Show help |
|
||||
| `/editor` | - | Open external editor |
|
||||
| `/exit` | `/quit`, `/q` | Exit the app |
|
||||
|
||||
#### Kilo Gateway Commands (when connected)
|
||||
|
||||
| Command | Aliases | Description |
|
||||
| ---------- | ------------------------ | ----------------------------------------- |
|
||||
| `/profile` | `/me`, `/whoami` | View your Kilo Gateway profile |
|
||||
| `/teams` | `/team`, `/org`, `/orgs` | Switch between Kilo Gateway teams |
|
||||
| `/remote` | - | Toggle remote mode for Cloud Agent access |
|
||||
| Command | Aliases | Description |
|
||||
|---|---|---|
|
||||
| `/profile` | `/me`, `/whoami` | View your Kilo Gateway profile |
|
||||
| `/teams` | `/team`, `/org`, `/orgs` | Switch between Kilo Gateway teams |
|
||||
| `/remote` | - | Toggle remote mode for Cloud Agent access |
|
||||
|
||||
#### Built-in Commands
|
||||
|
||||
| Command | Description |
|
||||
| --------------------------- | -------------------------------------------- |
|
||||
| `/init` | Create/update AGENTS.md file for the project |
|
||||
| `/local-review` | Review code changes |
|
||||
| `/local-review-uncommitted` | Review uncommitted changes |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `/init` | Create/update AGENTS.md file for the project |
|
||||
| `/local-review` | Review code changes |
|
||||
| `/local-review-uncommitted` | Review uncommitted changes |
|
||||
|
||||
## Local Code Reviews
|
||||
|
||||
@@ -141,9 +141,9 @@ Review your code locally before pushing — catch issues early without waiting f
|
||||
|
||||
### Commands
|
||||
|
||||
| Command | Description |
|
||||
| --------------------------- | ---------------------------------------------- |
|
||||
| `/local-review` | Review current branch changes vs base branch |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `/local-review` | Review current branch changes vs base branch |
|
||||
| `/local-review-uncommitted` | Review uncommitted changes (staged + unstaged) |
|
||||
|
||||
## Config Reference
|
||||
@@ -278,10 +278,10 @@ The Kilo CLI is a fork of [OpenCode](https://opencode.ai) and supports the same
|
||||
|
||||
### Config File Location (Kilo CLI 1.0)
|
||||
|
||||
| Scope | Path |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------- |
|
||||
| **Global** | `~/.config/kilo/opencode.json` or `opencode.jsonc` (Windows: config dir may vary; same filenames) |
|
||||
| **Project** | `./opencode.json` or `./.opencode/` in project root |
|
||||
| Scope | Path |
|
||||
|---|---|
|
||||
| **Global** | `~/.config/kilo/opencode.json` or `opencode.jsonc` (Windows: config dir may vary; same filenames) |
|
||||
| **Project** | `./opencode.json` or `./.opencode/` in project root |
|
||||
|
||||
Project-level configuration takes precedence over global settings.
|
||||
|
||||
|
||||
@@ -20,10 +20,10 @@ Kilo for Slack brings the power of Kilo Code directly into your Slack workspace.
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Integration Type | Details |
|
||||
| -------- | ---------------- | ------------------------------------------------------------------- |
|
||||
| GitHub | GitHub App | [GitHub Setup Guide](/docs/automate/integrations#connecting-github) |
|
||||
| GitLab | OAuth or PAT | [GitLab Setup Guide](/docs/automate/integrations#connecting-gitlab) |
|
||||
| Platform | Integration Type | Details |
|
||||
|---|---|---|
|
||||
| GitHub | GitHub App | [GitHub Setup Guide](/docs/automate/integrations#connecting-github) |
|
||||
| GitLab | OAuth or PAT | [GitLab Setup Guide](/docs/automate/integrations#connecting-gitlab) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -32,12 +32,12 @@ Use these panels to diagnose specific issues and identify targeted actions.
|
||||
|
||||
Switch between time filters to understand different patterns:
|
||||
|
||||
| Filter | Best For |
|
||||
| -------------- | ------------------------------------------------ |
|
||||
| **Past Week** | Recent changes, sprint-level trends |
|
||||
| Filter | Best For |
|
||||
|---|---|
|
||||
| **Past Week** | Recent changes, sprint-level trends |
|
||||
| **Past Month** | Adoption initiative tracking, onboarding results |
|
||||
| **Past Year** | Long-term trends, seasonal patterns |
|
||||
| **All** | Historical baseline, major milestones |
|
||||
| **Past Year** | Long-term trends, seasonal patterns |
|
||||
| **All** | Historical baseline, major milestones |
|
||||
|
||||
---
|
||||
|
||||
@@ -99,12 +99,12 @@ Low Frequency suggests AI hasn't become a daily habit.
|
||||
|
||||
Use the score tiers as milestones:
|
||||
|
||||
| Current Tier | Reasonable Next Goal |
|
||||
| --------------- | ---------------------------- |
|
||||
| 0–20 (Minimal) | Reach 30–40 within 4–6 weeks |
|
||||
| 21–50 (Early) | Reach 55–65 within 4–6 weeks |
|
||||
| Current Tier | Reasonable Next Goal |
|
||||
|---|---|
|
||||
| 0–20 (Minimal) | Reach 30–40 within 4–6 weeks |
|
||||
| 21–50 (Early) | Reach 55–65 within 4–6 weeks |
|
||||
| 51–75 (Growing) | Reach 75–80 within 6–8 weeks |
|
||||
| 76–90 (Strong) | Maintain and optimize |
|
||||
| 76–90 (Strong) | Maintain and optimize |
|
||||
|
||||
**Tip:** Focus on one dimension at a time rather than trying to improve everything at once.
|
||||
|
||||
@@ -224,14 +224,14 @@ Additional views for comparing multiple teams within an organization are planned
|
||||
|
||||
## Quick Reference: Dashboard Actions
|
||||
|
||||
| What You Want to Know | Where to Look |
|
||||
| ---------------------------- | ------------------------------------------- |
|
||||
| Overall adoption level | Main score display |
|
||||
| Which dimension needs work | Trend indicators (look for negative trends) |
|
||||
| Specific improvement actions | Click dimension → detail panel |
|
||||
| Historical patterns | Timeline chart with time filter |
|
||||
| Your personal usage | Toggle "Only my usage" |
|
||||
| Week-over-week change | Metric cards at bottom |
|
||||
| What You Want to Know | Where to Look |
|
||||
|---|---|
|
||||
| Overall adoption level | Main score display |
|
||||
| Which dimension needs work | Trend indicators (look for negative trends) |
|
||||
| Specific improvement actions | Click dimension → detail panel |
|
||||
| Historical patterns | Timeline chart with time filter |
|
||||
| Your personal usage | Toggle "Only my usage" |
|
||||
| Week-over-week change | Metric cards at bottom |
|
||||
|
||||
## Next Steps
|
||||
|
||||
|
||||
@@ -100,12 +100,12 @@ Most teams start with Code mode and stop there. But Kilo's other modes unlock ad
|
||||
|
||||
**Action:** Introduce your team to specialized modes:
|
||||
|
||||
| Mode | Use Case |
|
||||
| ---------------- | -------------------------------------------------------- |
|
||||
| Mode | Use Case |
|
||||
|---|---|
|
||||
| **Orchestrator** | Delegate and execute subtasks over long-horizon projects |
|
||||
| **Architect** | Design and plan before implementation |
|
||||
| **Debug** | Systematic error diagnosis |
|
||||
| **Ask** | Quick questions and explanations |
|
||||
| **Architect** | Design and plan before implementation |
|
||||
| **Debug** | Systematic error diagnosis |
|
||||
| **Ask** | Quick questions and explanations |
|
||||
|
||||
This increases efficacy and improves trust in AI-facilitated tasking.
|
||||
|
||||
@@ -138,23 +138,23 @@ Other ways to spread usage:
|
||||
|
||||
### Patterns That Drive Adoption
|
||||
|
||||
| Pattern | Why It Works |
|
||||
| -------------------------------- | -------------------------------------------------- |
|
||||
| **Pair AI with existing tools** | Developers don't have to learn new workflows |
|
||||
| **Start with quick wins** | Autocomplete and commit messages build confidence |
|
||||
| **Champion-led adoption** | Enthusiastic team members model effective usage |
|
||||
| **Weekly check-ins on AI usage** | Keeps AI top-of-mind without being prescriptive |
|
||||
| **Celebrate retained code** | Recognize when AI contributions ship to production |
|
||||
| Pattern | Why It Works |
|
||||
|---|---|
|
||||
| **Pair AI with existing tools** | Developers don't have to learn new workflows |
|
||||
| **Start with quick wins** | Autocomplete and commit messages build confidence |
|
||||
| **Champion-led adoption** | Enthusiastic team members model effective usage |
|
||||
| **Weekly check-ins on AI usage** | Keeps AI top-of-mind without being prescriptive |
|
||||
| **Celebrate retained code** | Recognize when AI contributions ship to production |
|
||||
|
||||
### Anti-Patterns to Avoid
|
||||
|
||||
| Anti-Pattern | Why It Fails |
|
||||
| ----------------------------------- | --------------------------------------------- |
|
||||
| **Mandating specific usage levels** | Creates resentment without changing habits |
|
||||
| **Focusing only on power users** | Neglects the majority who need onboarding |
|
||||
| **Ignoring context quality** | Leads to poor suggestions and abandoned usage |
|
||||
| **Measuring without acting** | Scores drop when no one addresses gaps |
|
||||
| **All-or-nothing adoption** | Teams need gradual, sustainable change |
|
||||
| Anti-Pattern | Why It Fails |
|
||||
|---|---|
|
||||
| **Mandating specific usage levels** | Creates resentment without changing habits |
|
||||
| **Focusing only on power users** | Neglects the majority who need onboarding |
|
||||
| **Ignoring context quality** | Leads to poor suggestions and abandoned usage |
|
||||
| **Measuring without acting** | Scores drop when no one addresses gaps |
|
||||
| **All-or-nothing adoption** | Teams need gradual, sustainable change |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -72,23 +72,23 @@ Each card displays the percentage change (e.g., "+2.3%" or "-1.5%") with a direc
|
||||
|
||||
The AI Adoption Score is composed of three weighted dimensions:
|
||||
|
||||
| Dimension | Weight | Question It Answers |
|
||||
| ------------- | ------ | ------------------------------------------------ |
|
||||
| **Frequency** | 40% | How often do developers use AI? |
|
||||
| **Depth** | 40% | How integrated is AI into actual development? |
|
||||
| **Coverage** | 20% | How broadly is AI being adopted across the team? |
|
||||
| Dimension | Weight | Question It Answers |
|
||||
|---|---|---|
|
||||
| **Frequency** | 40% | How often do developers use AI? |
|
||||
| **Depth** | 40% | How integrated is AI into actual development? |
|
||||
| **Coverage** | 20% | How broadly is AI being adopted across the team? |
|
||||
|
||||
Click on any dimension card to view detailed analysis and improvement suggestions specific to that dimension.
|
||||
|
||||
## Quick Reference: Score Tiers
|
||||
|
||||
| Score Range | Tier | Description |
|
||||
| ----------- | ------------------------ | ---------------------------------------- |
|
||||
| 0–20 | Minimal adoption | AI usage is sporadic or experimental |
|
||||
| 21–50 | Early adoption | Some developers are using AI regularly |
|
||||
| 51–75 | Growing adoption | AI is becoming part of team workflows |
|
||||
| 76–90 | Strong adoption | AI is deeply integrated into development |
|
||||
| 91–100 | AI-first engineering org | AI is central to how the team ships code |
|
||||
| Score Range | Tier | Description |
|
||||
|---|---|---|
|
||||
| 0–20 | Minimal adoption | AI usage is sporadic or experimental |
|
||||
| 21–50 | Early adoption | Some developers are using AI regularly |
|
||||
| 51–75 | Growing adoption | AI is becoming part of team workflows |
|
||||
| 76–90 | Strong adoption | AI is deeply integrated into development |
|
||||
| 91–100 | AI-first engineering org | AI is central to how the team ships code |
|
||||
|
||||
## Next Steps
|
||||
|
||||
|
||||
@@ -67,13 +67,13 @@ This dimension captures reach and rollout—how many team members are using AI a
|
||||
|
||||
Your score falls into one of five tiers:
|
||||
|
||||
| Score Range | Tier | What It Means |
|
||||
| ----------- | ------------------------ | ----------------------------------------------------------------------------------------------------------- |
|
||||
| **0–20** | Minimal adoption | AI usage is sporadic or experimental. Most developers aren't using AI tools regularly. |
|
||||
| **21–50** | Early adoption | Some developers have incorporated AI into their workflow, but it's not yet team-wide. |
|
||||
| **51–75** | Growing adoption | AI is becoming a standard part of how the team works. Most developers use it, though depth varies. |
|
||||
| **76–90** | Strong adoption | AI is deeply integrated into development workflows. Teams at this level trust and depend on AI suggestions. |
|
||||
| **91–100** | AI-first engineering org | AI is central to how the team ships code. Usage is high, broad, and deeply integrated. |
|
||||
| Score Range | Tier | What It Means |
|
||||
|---|---|---|
|
||||
| **0–20** | Minimal adoption | AI usage is sporadic or experimental. Most developers aren't using AI tools regularly. |
|
||||
| **21–50** | Early adoption | Some developers have incorporated AI into their workflow, but it's not yet team-wide. |
|
||||
| **51–75** | Growing adoption | AI is becoming a standard part of how the team works. Most developers use it, though depth varies. |
|
||||
| **76–90** | Strong adoption | AI is deeply integrated into development workflows. Teams at this level trust and depend on AI suggestions. |
|
||||
| **91–100** | AI-first engineering org | AI is central to how the team ships code. Usage is high, broad, and deeply integrated. |
|
||||
|
||||
## How Scores Are Calculated
|
||||
|
||||
|
||||
@@ -20,11 +20,11 @@ Use filters to narrow down results by action, user, or date range.
|
||||
|
||||
## Filters
|
||||
|
||||
| Filter | Description |
|
||||
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Actions** | Choose one or more events to view. Options include: <br /> - `user login` / `logout` <br /> - `user invite`, `accept invite`, `revoke invite` <br /> - `settings change` <br /> - `purchase credits` <br /> - `member remove`, `member change role` <br /> - `sso set domain`, `sso remove domain` |
|
||||
| **Actor Email** | Filter by the user who performed the action. |
|
||||
| **Start / End Date** | Specify a date and time range to view logs within that period. |
|
||||
| Filter | Description |
|
||||
|---|---|
|
||||
| **Actions** | Choose one or more events to view. Options include: <br /> - `user login` / `logout` <br /> - `user invite`, `accept invite`, `revoke invite` <br /> - `settings change` <br /> - `purchase credits` <br /> - `member remove`, `member change role` <br /> - `sso set domain`, `sso remove domain` |
|
||||
| **Actor Email** | Filter by the user who performed the action. |
|
||||
| **Start / End Date** | Specify a date and time range to view logs within that period. |
|
||||
|
||||
Multiple filters can be used together for precise auditing.
|
||||
|
||||
@@ -32,11 +32,11 @@ Multiple filters can be used together for precise auditing.
|
||||
|
||||
Each event includes:
|
||||
|
||||
| Field | Description |
|
||||
| ----------- | ------------------------------------------------------------------------------- |
|
||||
| **Time** | When the action occurred (shown in your local timezone). |
|
||||
| **Action** | The event type (e.g. `user.login`, `settings.change`). |
|
||||
| **Actor** | The user who performed the action. |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| **Time** | When the action occurred (shown in your local timezone). |
|
||||
| **Action** | The event type (e.g. `user.login`, `settings.change`). |
|
||||
| **Actor** | The user who performed the action. |
|
||||
| **Details** | Context or additional data related to the event (e.g. models added or removed). |
|
||||
|
||||
## Logged Events
|
||||
|
||||
@@ -78,14 +78,14 @@ Switch to **Kilo Teams** or **Kilo Enterprise** from other AI coding tools and e
|
||||
|
||||
### Cursor Feature Mapping
|
||||
|
||||
| Cursor Feature | Kilo Equivalent |
|
||||
| ---------------------- | -------------------------------------------------------------- |
|
||||
| AI Chat | Chat interface with multiple modes |
|
||||
| Code Generation | Code mode with advanced tools |
|
||||
| Code Editing | Fast edits and surgical modifications |
|
||||
| Codebase Understanding | Codebase indexing and search |
|
||||
| Team Management | Comprehensive team dashboard (Enterprise adds SSO, audit logs) |
|
||||
| Usage Analytics | Detailed usage and cost analytics |
|
||||
| Cursor Feature | Kilo Equivalent |
|
||||
|---|---|
|
||||
| AI Chat | Chat interface with multiple modes |
|
||||
| Code Generation | Code mode with advanced tools |
|
||||
| Code Editing | Fast edits and surgical modifications |
|
||||
| Codebase Understanding | Codebase indexing and search |
|
||||
| Team Management | Comprehensive team dashboard (Enterprise adds SSO, audit logs) |
|
||||
| Usage Analytics | Detailed usage and cost analytics |
|
||||
|
||||
## Migrating from GitHub Copilot
|
||||
|
||||
@@ -131,13 +131,13 @@ Switch to **Kilo Teams** or **Kilo Enterprise** from other AI coding tools and e
|
||||
|
||||
### GitHub Copilot Feature Comparison
|
||||
|
||||
| GitHub Copilot | Kilo | Advantage |
|
||||
| ---------------- | -------------------------------- | ----------------------------- |
|
||||
| Code suggestions | AI-powered code generation | ✅ More model choices |
|
||||
| Chat interface | Multi-mode chat system | ✅ Specialized modes |
|
||||
| Team admin | Comprehensive team management | ✅ Enterprise adds audit logs |
|
||||
| Usage insights | Detailed usage and cost tracking | ✅ Transparent pricing |
|
||||
| Model selection | 18+ AI providers and models | ✅ No vendor lock-in |
|
||||
| GitHub Copilot | Kilo | Advantage |
|
||||
|---|---|---|
|
||||
| Code suggestions | AI-powered code generation | ✅ More model choices |
|
||||
| Chat interface | Multi-mode chat system | ✅ Specialized modes |
|
||||
| Team admin | Comprehensive team management | ✅ Enterprise adds audit logs |
|
||||
| Usage insights | Detailed usage and cost tracking | ✅ Transparent pricing |
|
||||
| Model selection | 18+ AI providers and models | ✅ No vendor lock-in |
|
||||
|
||||
## Migrating from Other AI Coding Tools
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@ This means newly added models and providers are automatically available to your
|
||||
|
||||
## How It Works
|
||||
|
||||
| Scenario | Behavior |
|
||||
| ---------------------- | ------------------------------------------------------------------------------------- |
|
||||
| No blocks configured | All models and providers are available (default) |
|
||||
| Provider blocked | All current and future models from that provider are unavailable |
|
||||
| Scenario | Behavior |
|
||||
|---|---|
|
||||
| No blocks configured | All models and providers are available (default) |
|
||||
| Provider blocked | All current and future models from that provider are unavailable |
|
||||
| Specific model blocked | Only that model is unavailable; other models from the same provider remain accessible |
|
||||
|
||||
## Managing Model Access
|
||||
@@ -53,13 +53,13 @@ A status bar appears at the bottom of the page whenever you have unsaved changes
|
||||
|
||||
Use filters to find the models or providers you want to block:
|
||||
|
||||
| Filter | Tab | Description |
|
||||
| ------------------- | ------------------ | ----------------------------------------------------- |
|
||||
| **Search** | Models & Providers | Filter by name, ID, or provider slug |
|
||||
| **Enabled only** | Models & Providers | Show only currently allowed items |
|
||||
| **Trains on data** | Providers | Filter by whether the provider trains on user prompts |
|
||||
| **Retains prompts** | Providers | Filter by whether the provider retains user prompts |
|
||||
| **Location** | Providers | Filter by provider headquarters or datacenter country |
|
||||
| Filter | Tab | Description |
|
||||
|---|---|---|
|
||||
| **Search** | Models & Providers | Filter by name, ID, or provider slug |
|
||||
| **Enabled only** | Models & Providers | Show only currently allowed items |
|
||||
| **Trains on data** | Providers | Filter by whether the provider trains on user prompts |
|
||||
| **Retains prompts** | Providers | Filter by whether the provider retains user prompts |
|
||||
| **Location** | Providers | Filter by provider headquarters or datacenter country |
|
||||
|
||||
## Example Use Cases
|
||||
|
||||
|
||||
@@ -18,15 +18,15 @@ For example, Admins and Owners can extend these by creating **Custom Modes** wit
|
||||
3. Optionally select a **template** (e.g. _User Story Creator_, _Project Research_, _DevOps_).
|
||||
4. Fill in the following fields:
|
||||
|
||||
| Field | Description |
|
||||
| ---------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| **Mode Name** | Display name for the new mode (e.g. _Security Reviewer_). |
|
||||
| **Mode Slug** | A short identifier used internally (e.g. `security-reviewer`). |
|
||||
| **Role Definition** | Describe Kilo's role and personality for this mode. Shapes how it reasons and responds. |
|
||||
| **Short Description** | A brief summary shown in the mode selector. |
|
||||
| **When to Use (optional)** | Guidance for when this mode should be used. Helps the Orchestrator choose the right mode for a task. |
|
||||
| **Custom Instructions (optional)** | Add behavioral guidelines specific to this mode. |
|
||||
| **Available Tools** | Select which tools this mode can access (Read, Edit, Browser, Commands, MCP). |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| **Mode Name** | Display name for the new mode (e.g. _Security Reviewer_). |
|
||||
| **Mode Slug** | A short identifier used internally (e.g. `security-reviewer`). |
|
||||
| **Role Definition** | Describe Kilo's role and personality for this mode. Shapes how it reasons and responds. |
|
||||
| **Short Description** | A brief summary shown in the mode selector. |
|
||||
| **When to Use (optional)** | Guidance for when this mode should be used. Helps the Orchestrator choose the right mode for a task. |
|
||||
| **Custom Instructions (optional)** | Add behavioral guidelines specific to this mode. |
|
||||
| **Available Tools** | Select which tools this mode can access (Read, Edit, Browser, Commands, MCP). |
|
||||
|
||||
5. Click **Create Mode** to save.
|
||||
|
||||
|
||||
@@ -73,11 +73,11 @@ Common dashboards which offer filtering based on provider, model, and tool:
|
||||
|
||||
Implement [multi-window, multi-burn-rate alerting](https://sre.google/workbook/alerting-on-slos/) against error budgets:
|
||||
|
||||
| Window | Burn Rate | Action | Use Case |
|
||||
| ------ | --------- | ------ | ------------------ |
|
||||
| 5 min | 14.4x | Page | Major Outage |
|
||||
| 30 min | 6x | Page | Incident |
|
||||
| 6 hr | 1x | Ticket | Change in behavior |
|
||||
| Window | Burn Rate | Action | Use Case |
|
||||
|---|---|---|---|
|
||||
| 5 min | 14.4x | Page | Major Outage |
|
||||
| 30 min | 6x | Page | Incident |
|
||||
| 6 hr | 1x | Ticket | Change in behavior |
|
||||
|
||||
Paging should **only occur on Recommended Models when using the Kilo Gateway**. All other alerts should be tickets, and some may be configured to be ignored.
|
||||
|
||||
|
||||
@@ -11,12 +11,12 @@ Kilo Auto is a model routing system that automatically selects the optimal AI mo
|
||||
|
||||
Three tiers are user-facing, and one is internal:
|
||||
|
||||
| Tier ID | Audience | Pricing |
|
||||
| -------------------- | ------------------------------ | ------- |
|
||||
| `kilo-auto/frontier` | Best paid models | Paid |
|
||||
| `kilo-auto/balanced` | Strong performance, lower cost | Paid |
|
||||
| `kilo-auto/free` | Best available free models | Free |
|
||||
| `kilo-auto/small` | Internal — background tasks | Varies |
|
||||
| Tier ID | Audience | Pricing |
|
||||
|---|---|---|
|
||||
| `kilo-auto/frontier` | Best paid models | Paid |
|
||||
| `kilo-auto/balanced` | Strong performance, lower cost | Paid |
|
||||
| `kilo-auto/free` | Best available free models | Free |
|
||||
| `kilo-auto/small` | Internal — background tasks | Varies |
|
||||
|
||||
## Problem
|
||||
|
||||
@@ -84,11 +84,11 @@ For the current mode-to-model mappings, see the [Auto Model user docs](/docs/cod
|
||||
|
||||
The three user-facing tiers appear in the model selector:
|
||||
|
||||
| Display Name | Description shown to user |
|
||||
| -------------- | ---------------------------------------------------- |
|
||||
| Display Name | Description shown to user |
|
||||
|---|---|
|
||||
| Auto: Frontier | Best paid models, automatically matched to your task |
|
||||
| Auto: Balanced | Strong performance at lower cost |
|
||||
| Auto: Free | Best free models, no credits required |
|
||||
| Auto: Balanced | Strong performance at lower cost |
|
||||
| Auto: Free | Best free models, no credits required |
|
||||
|
||||
Auto: Small does not appear in the model picker. It is filtered out by the UI (see `KILO_AUTO_SMALL_IDS` in the VS Code extension).
|
||||
|
||||
@@ -140,16 +140,16 @@ The client-side chain works as follows:
|
||||
|
||||
### Key files
|
||||
|
||||
| File | Role |
|
||||
| ----------------------------------------------- | ------------------------------------------------------------------------------------- |
|
||||
| `packages/kilo-gateway/src/api/constants.ts` | Default model constants (`DEFAULT_MODEL`, `DEFAULT_FREE_MODEL`) |
|
||||
| `packages/kilo-gateway/src/api/models.ts` | Fetches models from Kilo API, parses `opencode.variants` |
|
||||
| `packages/opencode/src/provider/model-cache.ts` | Caches Kilo Gateway models with 5-min TTL |
|
||||
| `packages/opencode/src/provider/provider.ts` | Preserves variants for kilo provider; `getSmallModel()` prioritizes `kilo-auto/small` |
|
||||
| `packages/opencode/src/provider/transform.ts` | Passes through server-defined variants for Kilo Gateway models |
|
||||
| `packages/opencode/src/session/prompt.ts` | Resolves variant from agent config, attaches to user messages |
|
||||
| `packages/opencode/src/session/llm.ts` | Merges variant options into LLM call parameters |
|
||||
| `packages/opencode/src/config/config.ts` | Agent config schema includes `variant` field |
|
||||
| File | Role |
|
||||
|---|---|
|
||||
| `packages/kilo-gateway/src/api/constants.ts` | Default model constants (`DEFAULT_MODEL`, `DEFAULT_FREE_MODEL`) |
|
||||
| `packages/kilo-gateway/src/api/models.ts` | Fetches models from Kilo API, parses `opencode.variants` |
|
||||
| `packages/opencode/src/provider/model-cache.ts` | Caches Kilo Gateway models with 5-min TTL |
|
||||
| `packages/opencode/src/provider/provider.ts` | Preserves variants for kilo provider; `getSmallModel()` prioritizes `kilo-auto/small` |
|
||||
| `packages/opencode/src/provider/transform.ts` | Passes through server-defined variants for Kilo Gateway models |
|
||||
| `packages/opencode/src/session/prompt.ts` | Resolves variant from agent config, attaches to user messages |
|
||||
| `packages/opencode/src/session/llm.ts` | Merges variant options into LLM call parameters |
|
||||
| `packages/opencode/src/config/config.ts` | Agent config schema includes `variant` field |
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -160,12 +160,12 @@ The client-side chain works as follows:
|
||||
|
||||
## Risks
|
||||
|
||||
| Risk | User impact | Mitigation |
|
||||
| ------------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Free model disappears mid-session | User's next message fails | Fallback chain: primary → secondary → tertiary free model. Graceful error only if all options exhausted. |
|
||||
| Model quality variance across free/balanced tiers | Inconsistent experience compared to Frontier | Set clear expectations in UI. Curate model lists, don't just pick the cheapest. |
|
||||
| Cross-family model switching breaks context | Thinking blocks from Model A incompatible with Model B | Strip thinking blocks when the underlying model family changes between turns. Frontier stays within one family so this primarily affects Free tier (which may switch models). |
|
||||
| Users don't understand the tier differences | Wrong tier selected, poor experience | Clear descriptions in the model picker. Good defaults (Balanced for paid, Free for unpaid) so most users never need to actively choose. |
|
||||
| Risk | User impact | Mitigation |
|
||||
|---|---|---|
|
||||
| Free model disappears mid-session | User's next message fails | Fallback chain: primary → secondary → tertiary free model. Graceful error only if all options exhausted. |
|
||||
| Model quality variance across free/balanced tiers | Inconsistent experience compared to Frontier | Set clear expectations in UI. Curate model lists, don't just pick the cheapest. |
|
||||
| Cross-family model switching breaks context | Thinking blocks from Model A incompatible with Model B | Strip thinking blocks when the underlying model family changes between turns. Frontier stays within one family so this primarily affects Free tier (which may switch models). |
|
||||
| Users don't understand the tier differences | Wrong tier selected, poor experience | Clear descriptions in the model picker. Good defaults (Balanced for paid, Free for unpaid) so most users never need to actively choose. |
|
||||
|
||||
## Data and compliance
|
||||
|
||||
|
||||
@@ -131,16 +131,16 @@ opik harbor run -d terminal-bench@head -a kilo -m anthropic/claude-opus-4
|
||||
|
||||
Opik adds value beyond what the tbench.ai dashboard provides:
|
||||
|
||||
| Capability | tbench.ai Dashboard | Opik |
|
||||
| ----------------------------- | ------------------- | ---- |
|
||||
| Task-level pass/fail | Yes | Yes |
|
||||
| Aggregate leaderboard | Yes | No |
|
||||
| Asciinema replay | Yes | No |
|
||||
| Step-level trace view | No | Yes |
|
||||
| Step-level LLM judge | No | Yes |
|
||||
| Cost attribution per step | No | Yes |
|
||||
| Side-by-side trace comparison | No | Yes |
|
||||
| Root cause analysis | No | Yes |
|
||||
| Capability | tbench.ai Dashboard | Opik |
|
||||
|---|---|---|
|
||||
| Task-level pass/fail | Yes | Yes |
|
||||
| Aggregate leaderboard | Yes | No |
|
||||
| Asciinema replay | Yes | No |
|
||||
| Step-level trace view | No | Yes |
|
||||
| Step-level LLM judge | No | Yes |
|
||||
| Cost attribution per step | No | Yes |
|
||||
| Side-by-side trace comparison | No | Yes |
|
||||
| Root cause analysis | No | Yes |
|
||||
|
||||
The two dashboards are complementary: tbench.ai for high-level leaderboard comparisons, Opik for drilling into why a specific run succeeded or failed.
|
||||
|
||||
@@ -148,12 +148,12 @@ The two dashboards are complementary: tbench.ai for high-level leaderboard compa
|
||||
|
||||
Harbor's registry provides access to established benchmark datasets. The choice of dataset can vary depending on what you are evaluating:
|
||||
|
||||
| Dataset | Focus | Use Case |
|
||||
| ------------------ | -------------------------------- | -------------------------------------------------- |
|
||||
| Terminal-Bench 2.0 | CLI/terminal tasks (89 tasks) | General agent capability on hard, realistic tasks |
|
||||
| SWE-bench | Real GitHub issues in real repos | Software engineering task completion |
|
||||
| LiveCodeBench | Competitive programming problems | Code generation quality |
|
||||
| Custom task sets | Whatever you define | Targeted evaluation, marketing, regression testing |
|
||||
| Dataset | Focus | Use Case |
|
||||
|---|---|---|
|
||||
| Terminal-Bench 2.0 | CLI/terminal tasks (89 tasks) | General agent capability on hard, realistic tasks |
|
||||
| SWE-bench | Real GitHub issues in real repos | Software engineering task completion |
|
||||
| LiveCodeBench | Competitive programming problems | Code generation quality |
|
||||
| Custom task sets | Whatever you define | Targeted evaluation, marketing, regression testing |
|
||||
|
||||
#### Creating Custom Task Sets
|
||||
|
||||
@@ -277,10 +277,10 @@ opik harbor run -d kilo-refactoring@1.0 -a kilo -m anthropic/claude-opus-4
|
||||
|
||||
Harbor provides task-level judging (did the agent solve the task?). Opik adds step-level evaluation:
|
||||
|
||||
| Level | Tool | What It Tells You |
|
||||
| -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| **Task-level** | Harbor | Pass/fail, score, total time, total cost |
|
||||
| **Step-level** | Opik | At step N, the agent chose tool X when it should have used tool Y. The reasoning was flawed because of Z. This step cost $0.03 and took 4 seconds. |
|
||||
| Level | Tool | What It Tells You |
|
||||
|---|---|---|
|
||||
| **Task-level** | Harbor | Pass/fail, score, total time, total cost |
|
||||
| **Step-level** | Opik | At step N, the agent chose tool X when it should have used tool Y. The reasoning was flawed because of Z. This step cost $0.03 and took 4 seconds. |
|
||||
|
||||
Step-level evaluation is where root cause debugging happens. When a benchmark score drops between versions, you can trace back to the exact decision point that caused the regression.
|
||||
|
||||
@@ -288,13 +288,13 @@ Step-level evaluation is where root cause debugging happens. When a benchmark sc
|
||||
|
||||
This benchmarking system is complementary to, but separate from, the [Agent Observability](/docs/contributing/architecture/agent-observability) system:
|
||||
|
||||
| Concern | Benchmarking | Production Observability |
|
||||
| --------------- | ------------------------------------- | ------------------------------------- |
|
||||
| **Purpose** | Offline evaluation of agent quality | Real-time monitoring of user sessions |
|
||||
| **Data source** | Controlled benchmark tasks | Real user interactions |
|
||||
| **Tools** | Harbor, Opik, tbench.ai | PostHog, custom metrics |
|
||||
| **When** | Before release, on-demand | Continuously in production |
|
||||
| **Output** | Leaderboard scores, trace comparisons | Alerts, dashboards, SLO tracking |
|
||||
| Concern | Benchmarking | Production Observability |
|
||||
|---|---|---|
|
||||
| **Purpose** | Offline evaluation of agent quality | Real-time monitoring of user sessions |
|
||||
| **Data source** | Controlled benchmark tasks | Real user interactions |
|
||||
| **Tools** | Harbor, Opik, tbench.ai | PostHog, custom metrics |
|
||||
| **When** | Before release, on-demand | Continuously in production |
|
||||
| **Output** | Leaderboard scores, trace comparisons | Alerts, dashboards, SLO tracking |
|
||||
|
||||
## References
|
||||
|
||||
|
||||
@@ -7,17 +7,17 @@ description: "Overview of current and planned features in Kilo Code"
|
||||
|
||||
These pages document the architecture and design of current or planned features, as well as any unique development patterns.
|
||||
|
||||
| Feature | Description |
|
||||
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------- |
|
||||
| [Agent Observability](/docs/contributing/architecture/agent-observability) | Observability and monitoring for agentic systems |
|
||||
| [Auto Model Tiers](/docs/contributing/architecture/auto-model-tiers) | Multi-tier auto model routing (Frontier, Free, Open) |
|
||||
| [Benchmarking](/docs/contributing/architecture/benchmarking) | Benchmarking Kilo Code across models and agents |
|
||||
| [Enterprise MCP Controls](/docs/contributing/architecture/enterprise-mcp-controls) | Admin controls for MCP server allowlists |
|
||||
| [MCP OAuth Authorization](/docs/contributing/architecture/mcp-oauth-authorization) | OAuth 2.1-based authorization for MCP servers |
|
||||
| [Onboarding Improvements](/docs/contributing/architecture/onboarding-improvements) | User onboarding and engagement features |
|
||||
| [Organization Modes Library](/docs/contributing/architecture/organization-modes-library) | Shared modes for teams and enterprise |
|
||||
| [Agentic Security Reviews](/docs/deploy-secure/security-reviews) | AI-powered security vulnerability analysis |
|
||||
| [Track Repo URL](/docs/contributing/architecture/track-repo-url) | Usage tracking by repository/project |
|
||||
| [Voice Transcription](/docs/contributing/architecture/voice-transcription) | Live voice input for chat |
|
||||
| Feature | Description |
|
||||
|---|---|
|
||||
| [Agent Observability](/docs/contributing/architecture/agent-observability) | Observability and monitoring for agentic systems |
|
||||
| [Auto Model Tiers](/docs/contributing/architecture/auto-model-tiers) | Multi-tier auto model routing (Frontier, Free, Open) |
|
||||
| [Benchmarking](/docs/contributing/architecture/benchmarking) | Benchmarking Kilo Code across models and agents |
|
||||
| [Enterprise MCP Controls](/docs/contributing/architecture/enterprise-mcp-controls) | Admin controls for MCP server allowlists |
|
||||
| [MCP OAuth Authorization](/docs/contributing/architecture/mcp-oauth-authorization) | OAuth 2.1-based authorization for MCP servers |
|
||||
| [Onboarding Improvements](/docs/contributing/architecture/onboarding-improvements) | User onboarding and engagement features |
|
||||
| [Organization Modes Library](/docs/contributing/architecture/organization-modes-library) | Shared modes for teams and enterprise |
|
||||
| [Agentic Security Reviews](/docs/deploy-secure/security-reviews) | AI-powered security vulnerability analysis |
|
||||
| [Track Repo URL](/docs/contributing/architecture/track-repo-url) | Usage tracking by repository/project |
|
||||
| [Voice Transcription](/docs/contributing/architecture/voice-transcription) | Live voice input for chat |
|
||||
|
||||
To propose a new feature design, consider using the [Spec Template](/docs/contributing/architecture/feature-template).
|
||||
|
||||
@@ -62,16 +62,16 @@ The CLI can run in several modes:
|
||||
|
||||
Key subsystems inside the CLI:
|
||||
|
||||
| Subsystem | Purpose |
|
||||
| --------------- | ------------------------------------------------------------------------ |
|
||||
| Agent Runtime | Orchestrates AI conversations, tool calls, and multi-step task execution |
|
||||
| Tools Service | Built-in tools for file editing, shell execution, search, and more |
|
||||
| MCP Servers | Model Context Protocol support for extending with external tools |
|
||||
| LSP Client | Language Server Protocol integration for code intelligence |
|
||||
| Session Manager | Persistent session state, conversation history, and checkpoints |
|
||||
| Provider Router | Connects to 500+ AI models via direct APIs or Kilo Gateway |
|
||||
| HTTP Server | REST API + SSE streaming for client communication |
|
||||
| Config System | Project and global configuration, modes, and permissions |
|
||||
| Subsystem | Purpose |
|
||||
|---|---|
|
||||
| Agent Runtime | Orchestrates AI conversations, tool calls, and multi-step task execution |
|
||||
| Tools Service | Built-in tools for file editing, shell execution, search, and more |
|
||||
| MCP Servers | Model Context Protocol support for extending with external tools |
|
||||
| LSP Client | Language Server Protocol integration for code intelligence |
|
||||
| Session Manager | Persistent session state, conversation history, and checkpoints |
|
||||
| Provider Router | Connects to 500+ AI models via direct APIs or Kilo Gateway |
|
||||
| HTTP Server | REST API + SSE streaming for client communication |
|
||||
| Config System | Project and global configuration, modes, and permissions |
|
||||
|
||||
## Client Layer
|
||||
|
||||
@@ -144,23 +144,23 @@ Key concepts:
|
||||
|
||||
Agents operate in a hierarchy:
|
||||
|
||||
| Agent | Role |
|
||||
| -------- | ------------------------------------------------------------------------------------------- |
|
||||
| Mayor | Persistent conversational coordinator — decomposes tasks and delegates to worker agents |
|
||||
| Polecat | Worker agent — clones repo worktrees, writes code, commits, pushes, and creates PRs |
|
||||
| Agent | Role |
|
||||
|---|---|
|
||||
| Mayor | Persistent conversational coordinator — decomposes tasks and delegates to worker agents |
|
||||
| Polecat | Worker agent — clones repo worktrees, writes code, commits, pushes, and creates PRs |
|
||||
| Refinery | Code review agent — reviews polecat branches, runs quality gates, merges or requests rework |
|
||||
| Triage | Ephemeral agent that resolves ambiguous situations detected by automated patrol checks |
|
||||
| Triage | Ephemeral agent that resolves ambiguous situations detected by automated patrol checks |
|
||||
|
||||
A reconciler loop running every 5 seconds drives all state transitions: dispatching agents, transitioning beads, polling PR status, managing convoys, and recovering from failures.
|
||||
|
||||
### Supporting Services
|
||||
|
||||
| Service | Purpose |
|
||||
| -------------------- | ------------------------------------------------------------------------------------ |
|
||||
| Service | Purpose |
|
||||
|---|---|
|
||||
| Webhook Agent Ingest | Named webhook endpoints that capture HTTP requests and queue delivery to Cloud Agent |
|
||||
| AI Attribution | Tracks line-level AI-generated code attribution when users accept or reject edits |
|
||||
| Session Ingest | Ingests and stores CLI session data for analytics |
|
||||
| Observability | Telemetry pipelines for monitoring cloud services |
|
||||
| AI Attribution | Tracks line-level AI-generated code attribution when users accept or reject edits |
|
||||
| Session Ingest | Ingests and stores CLI session data for analytics |
|
||||
| Observability | Telemetry pipelines for monitoring cloud services |
|
||||
|
||||
## Key Concepts
|
||||
|
||||
@@ -255,10 +255,10 @@ The project uses:
|
||||
|
||||
## Repositories
|
||||
|
||||
| Repository | Contents |
|
||||
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [Kilo-Org/kilocode](https://github.com/Kilo-Org/kilocode) | CLI engine, VS Code extension, SDK, gateway client, telemetry, docs, UI components |
|
||||
| Cloud (private) | Web dashboard, Cloud Agent, Kilo Bot, KiloClaw, Gas Town, code review, auto triage, billing, and supporting Cloudflare Workers |
|
||||
| Repository | Contents |
|
||||
|---|---|
|
||||
| [Kilo-Org/kilocode](https://github.com/Kilo-Org/kilocode) | CLI engine, VS Code extension, SDK, gateway client, telemetry, docs, UI components |
|
||||
| Cloud (private) | Web dashboard, Cloud Agent, Kilo Bot, KiloClaw, Gas Town, code review, auto triage, billing, and supporting Cloudflare Workers |
|
||||
|
||||
## Further Reading
|
||||
|
||||
|
||||
@@ -143,39 +143,39 @@ When you start a task in Kilo Code:
|
||||
|
||||
In the new platform, AGENTS.md is loaded alongside other instruction sources. The CLI also supports `.claude/` and `.agents/` directories for compatibility with other tools.
|
||||
|
||||
| Source | Scope | Location | Priority |
|
||||
| ------------------------------------------------ | --------- | ------------------------------------------ | ---------------- |
|
||||
| **Agent prompt** | Per-agent | `agent.<name>.prompt` in config | 1 (Highest) |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Project | `instructions` key in project `kilo.jsonc` | 2 |
|
||||
| **AGENTS.md** | Project | `AGENTS.md` at project root | 3 |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Global | `instructions` key in global `kilo.jsonc` | 4 |
|
||||
| **[Skills](/docs/customize/skills)** | Both | `.kilo/skills/`, config `skills` key | Loaded on demand |
|
||||
| Source | Scope | Location | Priority |
|
||||
|---|---|---|---|
|
||||
| **Agent prompt** | Per-agent | `agent.<name>.prompt` in config | 1 (Highest) |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Project | `instructions` key in project `kilo.jsonc` | 2 |
|
||||
| **AGENTS.md** | Project | `AGENTS.md` at project root | 3 |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Global | `instructions` key in global `kilo.jsonc` | 4 |
|
||||
| **[Skills](/docs/customize/skills)** | Both | `.kilo/skills/`, config `skills` key | Loaded on demand |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
In the new platform, AGENTS.md is loaded alongside other instruction sources. The CLI also supports `.claude/` and `.agents/` directories for compatibility with other tools.
|
||||
|
||||
| Source | Scope | Location | Priority |
|
||||
| ------------------------------------------------ | --------- | ------------------------------------------ | ---------------- |
|
||||
| **Agent prompt** | Per-agent | `agent.<name>.prompt` in config | 1 (Highest) |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Project | `instructions` key in project `kilo.jsonc` | 2 |
|
||||
| **AGENTS.md** | Project | `AGENTS.md` at project root | 3 |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Global | `instructions` key in global `kilo.jsonc` | 4 |
|
||||
| **[Skills](/docs/customize/skills)** | Both | `.kilo/skills/`, config `skills` key | Loaded on demand |
|
||||
| Source | Scope | Location | Priority |
|
||||
|---|---|---|---|
|
||||
| **Agent prompt** | Per-agent | `agent.<name>.prompt` in config | 1 (Highest) |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Project | `instructions` key in project `kilo.jsonc` | 2 |
|
||||
| **AGENTS.md** | Project | `AGENTS.md` at project root | 3 |
|
||||
| **[Instructions](/docs/customize/custom-rules)** | Global | `instructions` key in global `kilo.jsonc` | 4 |
|
||||
| **[Skills](/docs/customize/skills)** | Both | `.kilo/skills/`, config `skills` key | Loaded on demand |
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
AGENTS.md works alongside Kilo Code's other configuration systems:
|
||||
|
||||
| Feature | Scope | Location | Purpose | Priority |
|
||||
| -------------------------------------------------------------- | ------- | ------------------------- | ----------------------------------------- | ----------- |
|
||||
| **[Mode-specific Custom Rules](/docs/customize/custom-rules)** | Project | `.kilocode/rules-{mode}/` | Mode-specific rules and constraints | 1 (Highest) |
|
||||
| **[Custom Rules](/docs/customize/custom-rules)** | Project | `.kilocode/rules/` | Kilo Code-specific rules and constraints | 2 |
|
||||
| **[AGENTS.md](/docs/customize/agents-md)** | Project | `AGENTS.md` | Universal standard for any AI coding tool | 3 |
|
||||
| **[Global Custom Rules](/docs/customize/custom-rules)** | Global | `~/.kilocode/rules/` | Global Kilo Code rules | 4 |
|
||||
| **[Custom Instructions](/docs/customize/custom-instructions)** | Global | IDE settings | Personal preferences across all projects | 5 (Lowest) |
|
||||
| Feature | Scope | Location | Purpose | Priority |
|
||||
|---|---|---|---|---|
|
||||
| **[Mode-specific Custom Rules](/docs/customize/custom-rules)** | Project | `.kilocode/rules-{mode}/` | Mode-specific rules and constraints | 1 (Highest) |
|
||||
| **[Custom Rules](/docs/customize/custom-rules)** | Project | `.kilocode/rules/` | Kilo Code-specific rules and constraints | 2 |
|
||||
| **[AGENTS.md](/docs/customize/agents-md)** | Project | `AGENTS.md` | Universal standard for any AI coding tool | 3 |
|
||||
| **[Global Custom Rules](/docs/customize/custom-rules)** | Global | `~/.kilocode/rules/` | Global Kilo Code rules | 4 |
|
||||
| **[Custom Instructions](/docs/customize/custom-instructions)** | Global | IDE settings | Personal preferences across all projects | 5 (Lowest) |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -56,10 +56,10 @@ You can trigger compaction at any time:
|
||||
|
||||
## Defaults
|
||||
|
||||
| Setting | Default | Effect |
|
||||
| --------------------- | -------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| `compaction.auto` | `true` | Automatically compact when the usable window is reached |
|
||||
| `compaction.prune` | `true` | Clear old tool outputs beyond the 40K recency window |
|
||||
| Setting | Default | Effect |
|
||||
|---|---|---|
|
||||
| `compaction.auto` | `true` | Automatically compact when the usable window is reached |
|
||||
| `compaction.prune` | `true` | Clear old tool outputs beyond the 40K recency window |
|
||||
| `compaction.reserved` | `min(20,000, model_max_output_tokens)` | Token headroom kept free for the next turn — also defines the compaction trigger point |
|
||||
|
||||
## Configuration
|
||||
@@ -76,11 +76,11 @@ Compaction is configured in your `kilo.jsonc` file:
|
||||
}
|
||||
```
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
| --------------------- | ------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `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.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. |
|
||||
| Option | Type | Default | Description |
|
||||
|---|---|---|---|
|
||||
| `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.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
|
||||
|
||||
@@ -100,10 +100,10 @@ If no compaction agent is set, the current session's model is used.
|
||||
|
||||
### Environment overrides
|
||||
|
||||
| Variable | Effect |
|
||||
| ------------------------------------ | ------------------------------------------------- |
|
||||
| `KILO_DISABLE_AUTOCOMPACT=1` | Forces `compaction.auto = false` |
|
||||
| `KILO_DISABLE_PRUNE=1` | Forces `compaction.prune = false` |
|
||||
| Variable | Effect |
|
||||
|---|---|
|
||||
| `KILO_DISABLE_AUTOCOMPACT=1` | Forces `compaction.auto = false` |
|
||||
| `KILO_DISABLE_PRUNE=1` | Forces `compaction.prune = false` |
|
||||
| `KILO_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | Overrides the 32,000 default output-token ceiling |
|
||||
|
||||
{% /tab %}
|
||||
@@ -144,10 +144,10 @@ You can trigger compaction at any time:
|
||||
|
||||
## Defaults
|
||||
|
||||
| Setting | Default | Effect |
|
||||
| --------------------- | -------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| `compaction.auto` | `true` | Automatically compact when the usable window is reached |
|
||||
| `compaction.prune` | `true` | Clear old tool outputs beyond the 40K recency window |
|
||||
| Setting | Default | Effect |
|
||||
|---|---|---|
|
||||
| `compaction.auto` | `true` | Automatically compact when the usable window is reached |
|
||||
| `compaction.prune` | `true` | Clear old tool outputs beyond the 40K recency window |
|
||||
| `compaction.reserved` | `min(20,000, model_max_output_tokens)` | Token headroom kept free for the next turn — also defines the compaction trigger point |
|
||||
|
||||
## Configuration
|
||||
@@ -164,11 +164,11 @@ Compaction is configured in your `kilo.jsonc` file:
|
||||
}
|
||||
```
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
| --------------------- | ------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `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.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. |
|
||||
| Option | Type | Default | Description |
|
||||
|---|---|---|---|
|
||||
| `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.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
|
||||
|
||||
@@ -188,10 +188,10 @@ If no compaction agent is set, the current session's model is used.
|
||||
|
||||
### Environment overrides
|
||||
|
||||
| Variable | Effect |
|
||||
| ------------------------------------ | ------------------------------------------------- |
|
||||
| `KILO_DISABLE_AUTOCOMPACT=1` | Forces `compaction.auto = false` |
|
||||
| `KILO_DISABLE_PRUNE=1` | Forces `compaction.prune = false` |
|
||||
| Variable | Effect |
|
||||
|---|---|
|
||||
| `KILO_DISABLE_AUTOCOMPACT=1` | Forces `compaction.auto = false` |
|
||||
| `KILO_DISABLE_PRUNE=1` | Forces `compaction.prune = false` |
|
||||
| `KILO_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | Overrides the 32,000 default output-token ceiling |
|
||||
|
||||
{% /tab %}
|
||||
|
||||
@@ -25,20 +25,20 @@ In the VSCode extension and CLI, custom behavioral profiles are called **agents*
|
||||
|
||||
## What's Included in a Custom Agent?
|
||||
|
||||
| Property | Description |
|
||||
| --------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| **name** (filename) | The agent's identifier, derived from the `.md` filename (e.g., `docs-writer.md` creates an agent named `docs-writer`) |
|
||||
| **description** | A short summary displayed in the agent picker and used by the orchestrator for delegation |
|
||||
| **model** | Pin a specific model in `provider/model` format (e.g., `anthropic/claude-sonnet-4-20250514`) |
|
||||
| **prompt** (markdown body) | The system prompt text — the markdown body of the file, injected into the agent's system prompt |
|
||||
| **mode** | Role classification: `primary` (user-selectable), `subagent` (only invoked by other agents), or `all` (both) |
|
||||
| **permission** | Per-agent permission overrides controlling which tools the agent can use (e.g., deny `edit`, `bash`) |
|
||||
| **color** | Hex color (`#FF5733`) or theme keyword (`primary`, `accent`, `warning`, etc.) for the agent picker UI |
|
||||
| **steps** | Maximum agentic iterations before forcing a text-only response |
|
||||
| **temperature** / **top_p** | Sampling parameters for the agent's model |
|
||||
| **variant** | Default model variant |
|
||||
| **hidden** | If `true`, the agent is hidden from the UI (only meaningful for subagents) |
|
||||
| **disable** | If `true`, removes the agent entirely |
|
||||
| Property | Description |
|
||||
|---|---|
|
||||
| **name** (filename) | The agent's identifier, derived from the `.md` filename (e.g., `docs-writer.md` creates an agent named `docs-writer`) |
|
||||
| **description** | A short summary displayed in the agent picker and used by the orchestrator for delegation |
|
||||
| **model** | Pin a specific model in `provider/model` format (e.g., `anthropic/claude-sonnet-4-20250514`) |
|
||||
| **prompt** (markdown body) | The system prompt text — the markdown body of the file, injected into the agent's system prompt |
|
||||
| **mode** | Role classification: `primary` (user-selectable), `subagent` (only invoked by other agents), or `all` (both) |
|
||||
| **permission** | Per-agent permission overrides controlling which tools the agent can use (e.g., deny `edit`, `bash`) |
|
||||
| **color** | Hex color (`#FF5733`) or theme keyword (`primary`, `accent`, `warning`, etc.) for the agent picker UI |
|
||||
| **steps** | Maximum agentic iterations before forcing a text-only response |
|
||||
| **temperature** / **top_p** | Sampling parameters for the agent's model |
|
||||
| **variant** | Default model variant |
|
||||
| **hidden** | If `true`, the agent is hidden from the UI (only meaningful for subagents) |
|
||||
| **disable** | If `true`, removes the agent entirely |
|
||||
|
||||
## Methods for Creating and Configuring Agents
|
||||
|
||||
@@ -132,11 +132,11 @@ Define agents under the `agent` key in your project's `kilo.jsonc`:
|
||||
|
||||
Controls where the agent appears:
|
||||
|
||||
| Value | Behavior |
|
||||
| ---------- | -------------------------------------------------------------------------------------- |
|
||||
| `primary` | Shown in the agent picker — the user can select it directly |
|
||||
| `subagent` | Only invokable by other agents via the `task` tool |
|
||||
| `all` | Available both as a top-level pick and as a subagent (default for user-defined agents) |
|
||||
| Value | Behavior |
|
||||
|---|---|
|
||||
| `primary` | Shown in the agent picker — the user can select it directly |
|
||||
| `subagent` | Only invokable by other agents via the `task` tool |
|
||||
| `all` | Available both as a top-level pick and as a subagent (default for user-defined agents) |
|
||||
|
||||
### `permission`
|
||||
|
||||
@@ -236,11 +236,11 @@ Default legacy mode slugs (`code`, `build`, `architect`, `ask`, `debug`, `orches
|
||||
|
||||
The current VSCode extension reads the legacy `custom_modes.yaml` file from its own global storage directory. Helpful for inspecting or fixing the file before the one-time migration runs:
|
||||
|
||||
| OS | Path |
|
||||
| ------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| macOS | `~/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Linux | `~/.config/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Windows | `%APPDATA%\Code\User\globalStorage\kilocode.kilo-code\settings\custom_modes.yaml` |
|
||||
| OS | Path |
|
||||
|---|---|
|
||||
| macOS | `~/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Linux | `~/.config/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Windows | `%APPDATA%\Code\User\globalStorage\kilocode.kilo-code\settings\custom_modes.yaml` |
|
||||
|
||||
Project-level `.kilocodemodes` and workspace-scoped files are handled by the CLI backend that the extension delegates to — see the [CLI tab](#cli) for the full load-order table. After the extension migrates on startup, the legacy file is no longer consulted; remove new modes through the extension UI instead of editing `custom_modes.yaml` directly.
|
||||
|
||||
@@ -255,20 +255,20 @@ In the CLI, custom behavioral profiles are called **agents** instead of modes. A
|
||||
|
||||
## What's Included in a Custom Agent?
|
||||
|
||||
| Property | Description |
|
||||
| --------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| **name** (filename) | The agent's identifier, derived from the `.md` filename (e.g., `docs-writer.md` creates an agent named `docs-writer`) |
|
||||
| **description** | A short summary displayed in the agent picker and used by the orchestrator for delegation |
|
||||
| **model** | Pin a specific model in `provider/model` format (e.g., `anthropic/claude-sonnet-4-20250514`) |
|
||||
| **prompt** (markdown body) | The system prompt text — the markdown body of the file, injected into the agent's system prompt |
|
||||
| **mode** | Role classification: `primary` (user-selectable), `subagent` (only invoked by other agents), or `all` (both) |
|
||||
| **permission** | Per-agent permission overrides controlling which tools the agent can use (e.g., deny `edit`, `bash`) |
|
||||
| **color** | Hex color (`#FF5733`) or theme keyword (`primary`, `accent`, `warning`, etc.) for the agent picker UI |
|
||||
| **steps** | Maximum agentic iterations before forcing a text-only response |
|
||||
| **temperature** / **top_p** | Sampling parameters for the agent's model |
|
||||
| **variant** | Default model variant |
|
||||
| **hidden** | If `true`, the agent is hidden from the UI (only meaningful for subagents) |
|
||||
| **disable** | If `true`, removes the agent entirely |
|
||||
| Property | Description |
|
||||
|---|---|
|
||||
| **name** (filename) | The agent's identifier, derived from the `.md` filename (e.g., `docs-writer.md` creates an agent named `docs-writer`) |
|
||||
| **description** | A short summary displayed in the agent picker and used by the orchestrator for delegation |
|
||||
| **model** | Pin a specific model in `provider/model` format (e.g., `anthropic/claude-sonnet-4-20250514`) |
|
||||
| **prompt** (markdown body) | The system prompt text — the markdown body of the file, injected into the agent's system prompt |
|
||||
| **mode** | Role classification: `primary` (user-selectable), `subagent` (only invoked by other agents), or `all` (both) |
|
||||
| **permission** | Per-agent permission overrides controlling which tools the agent can use (e.g., deny `edit`, `bash`) |
|
||||
| **color** | Hex color (`#FF5733`) or theme keyword (`primary`, `accent`, `warning`, etc.) for the agent picker UI |
|
||||
| **steps** | Maximum agentic iterations before forcing a text-only response |
|
||||
| **temperature** / **top_p** | Sampling parameters for the agent's model |
|
||||
| **variant** | Default model variant |
|
||||
| **hidden** | If `true`, the agent is hidden from the UI (only meaningful for subagents) |
|
||||
| **disable** | If `true`, removes the agent entirely |
|
||||
|
||||
## Methods for Creating and Configuring Agents
|
||||
|
||||
@@ -368,11 +368,11 @@ Define agents under the `agent` key in your project's `kilo.jsonc`:
|
||||
|
||||
Controls where the agent appears:
|
||||
|
||||
| Value | Behavior |
|
||||
| ---------- | -------------------------------------------------------------------------------------- |
|
||||
| `primary` | Shown in the agent picker — the user can select it directly |
|
||||
| `subagent` | Only invokable by other agents via the `task` tool |
|
||||
| `all` | Available both as a top-level pick and as a subagent (default for user-defined agents) |
|
||||
| Value | Behavior |
|
||||
|---|---|
|
||||
| `primary` | Shown in the agent picker — the user can select it directly |
|
||||
| `subagent` | Only invokable by other agents via the `task` tool |
|
||||
| `all` | Available both as a top-level pick and as a subagent (default for user-defined agents) |
|
||||
|
||||
### `permission`
|
||||
|
||||
@@ -473,7 +473,7 @@ Default legacy mode slugs (`code`, `build`, `architect`, `ask`, `debug`, `orches
|
||||
The CLI reads legacy mode files from the following locations (in load order). When the same slug appears in multiple sources, the **last loaded source wins**:
|
||||
|
||||
| Load Order | Path | Format | Scope |
|
||||
|------------|------|--------|-------|
|
||||
|---|---|---|---|
|
||||
| 1 | VSCode extension global storage `/settings/custom_modes.yaml` | YAML | Global |
|
||||
| 2 | `~/.kilocode/cli/global/settings/custom_modes.yaml` | YAML | Global |
|
||||
| 3 | `~/.kilocodemodes` | YAML | Global |
|
||||
@@ -502,15 +502,15 @@ _Kilo Code's interface for creating and managing custom modes._
|
||||
|
||||
Custom modes are defined by several key properties. Understanding these concepts will help you tailor Kilo's behavior effectively.
|
||||
|
||||
| UI Field / YAML Property | Conceptual Description |
|
||||
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **Slug** (`slug`) | A unique internal identifier for the mode. Used by Kilo Code to reference the mode, especially for associating mode-specific instruction files. |
|
||||
| **Name** (`name`) | The display name for the mode as it appears in the Kilo Code user interface. Should be human-readable and descriptive. |
|
||||
| **Description** (`description`) | A short, user-friendly summary of the mode's purpose displayed in the mode selector UI. Keep this concise and focused on what the mode does for the user. |
|
||||
| **Role Definition** (`roleDefinition`) | Defines the core identity and expertise of the mode. This text is placed at the beginning of the system prompt and defines Kilo's personality and behavior when this mode is active. |
|
||||
| **Available Tools** (`groups`) | Defines the allowed toolsets and file access permissions for the mode. Corresponds to selecting which general categories of tools the mode can use. |
|
||||
| **When to Use** (`whenToUse`) | _(Optional)_ Provides guidance for Kilo's automated decision-making, particularly for mode selection and task orchestration. Used by the Orchestrator mode for task coordination. |
|
||||
| **Custom Instructions** (`customInstructions`) | _(Optional)_ Specific behavioral guidelines or rules for the mode. Added near the end of the system prompt to further refine Kilo's behavior. |
|
||||
| UI Field / YAML Property | Conceptual Description |
|
||||
|---|---|
|
||||
| **Slug** (`slug`) | A unique internal identifier for the mode. Used by Kilo Code to reference the mode, especially for associating mode-specific instruction files. |
|
||||
| **Name** (`name`) | The display name for the mode as it appears in the Kilo Code user interface. Should be human-readable and descriptive. |
|
||||
| **Description** (`description`) | A short, user-friendly summary of the mode's purpose displayed in the mode selector UI. Keep this concise and focused on what the mode does for the user. |
|
||||
| **Role Definition** (`roleDefinition`) | Defines the core identity and expertise of the mode. This text is placed at the beginning of the system prompt and defines Kilo's personality and behavior when this mode is active. |
|
||||
| **Available Tools** (`groups`) | Defines the allowed toolsets and file access permissions for the mode. Corresponds to selecting which general categories of tools the mode can use. |
|
||||
| **When to Use** (`whenToUse`) | _(Optional)_ Provides guidance for Kilo's automated decision-making, particularly for mode selection and task orchestration. Used by the Orchestrator mode for task coordination. |
|
||||
| **Custom Instructions** (`customInstructions`) | _(Optional)_ Specific behavioral guidelines or rules for the mode. Added near the end of the system prompt to further refine Kilo's behavior. |
|
||||
|
||||
{% callout type="tip" %}
|
||||
**Power Steering for Better Mode Adherence**
|
||||
@@ -584,14 +584,14 @@ Focus on clarity, completeness, and consistent formatting.
|
||||
|
||||
**YAML frontmatter fields:**
|
||||
|
||||
| Field | Description |
|
||||
| ------------- | ----------------------------------------------------------------------------- |
|
||||
| `model` | Override the default model for this agent |
|
||||
| `description` | Short description shown in the agent selector |
|
||||
| `mode` | `"primary"` (user-selectable), `"subagent"` (invoked by AI only), or `"all"` |
|
||||
| `permission` | Tool permission overrides (same format as the global `permission` config key) |
|
||||
| `temperature` | Model temperature override |
|
||||
| `top_p` | Model top_p override |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `model` | Override the default model for this agent |
|
||||
| `description` | Short description shown in the agent selector |
|
||||
| `mode` | `"primary"` (user-selectable), `"subagent"` (invoked by AI only), or `"all"` |
|
||||
| `permission` | Tool permission overrides (same format as the global `permission` config key) |
|
||||
| `temperature` | Model temperature override |
|
||||
| `top_p` | Model top_p override |
|
||||
|
||||
The filename (without `.md`) becomes the agent's slug and display name.
|
||||
|
||||
@@ -974,13 +974,13 @@ Kilo will generate the pattern. Remember to adapt it for YAML (usually single ba
|
||||
|
||||
### Common Pattern Examples
|
||||
|
||||
| Pattern (YAML-like) | JSON fileRegex Value | Matches | Doesn't Match |
|
||||
| -------------------------------- | ----------------------------------- | ----------------------------------------- | ---------------------------------- |
|
||||
| `\.md$` | `"\\.md$"` | `readme.md`, `docs/guide.md` | `script.js`, `readme.md.bak` |
|
||||
| `^src/.*` | `"^src/.*"` | `src/app.js`, `src/components/button.tsx` | `lib/utils.js`, `test/src/mock.js` |
|
||||
| `\.(css\|scss)$` | `"\\.(css\|scss)$"` | `styles.css`, `theme.scss` | `styles.less`, `styles.css.map` |
|
||||
| `docs/.*\.md$` | `"docs/.*\\.md$"` | `docs/guide.md`, `docs/api/reference.md` | `guide.md`, `src/docs/notes.md` |
|
||||
| `^(?!.*(test\|spec))\.(js\|ts)$` | `"^(?!.*(test\|spec))\\.(js\|ts)$"` | `app.js`, `utils.ts` | `app.test.js`, `utils.spec.js` |
|
||||
| Pattern (YAML-like) | JSON fileRegex Value | Matches | Doesn't Match |
|
||||
|---|---|---|---|
|
||||
| `\.md$` | `"\\.md$"` | `readme.md`, `docs/guide.md` | `script.js`, `readme.md.bak` |
|
||||
| `^src/.*` | `"^src/.*"` | `src/app.js`, `src/components/button.tsx` | `lib/utils.js`, `test/src/mock.js` |
|
||||
| `\.(css\|scss)$` | `"\\.(css\|scss)$"` | `styles.css`, `theme.scss` | `styles.less`, `styles.css.map` |
|
||||
| `docs/.*\.md$` | `"docs/.*\\.md$"` | `docs/guide.md`, `docs/api/reference.md` | `guide.md`, `src/docs/notes.md` |
|
||||
| `^(?!.*(test\|spec))\.(js\|ts)$` | `"^(?!.*(test\|spec))\\.(js\|ts)$"` | `app.js`, `utils.ts` | `app.test.js`, `utils.spec.js` |
|
||||
|
||||
### Key Regex Building Blocks
|
||||
|
||||
|
||||
@@ -27,20 +27,20 @@ Key characteristics of subagents:
|
||||
|
||||
Kilo Code includes two built-in subagents:
|
||||
|
||||
| Name | Description |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **general** | General-purpose agent for researching complex questions and executing multi-step tasks. Has full tool access (except todo). |
|
||||
| Name | Description |
|
||||
|---|---|
|
||||
| **general** | General-purpose agent for researching complex questions and executing multi-step tasks. Has full tool access (except todo). |
|
||||
| **explore** | Fast, read-only agent for codebase exploration. Cannot modify files. Use for finding files by patterns, searching code, or answering questions about the codebase. |
|
||||
|
||||
## Agent Modes
|
||||
|
||||
Every agent has a **mode** that determines how it can be used:
|
||||
|
||||
| Mode | Description |
|
||||
| ---------- | ------------------------------------------------------------------------------------------- |
|
||||
| `primary` | User-facing agents you interact with directly. Switch between them with **Tab**. |
|
||||
| `subagent` | Only invocable via the Task tool or `@` mentions. Not available as a primary agent. |
|
||||
| `all` | Can function as both a primary agent and a subagent. This is the default for custom agents. |
|
||||
| Mode | Description |
|
||||
|---|---|
|
||||
| `primary` | User-facing agents you interact with directly. Switch between them with **Tab**. |
|
||||
| `subagent` | Only invocable via the Task tool or `@` mentions. Not available as a primary agent. |
|
||||
| `all` | Can function as both a primary agent and a subagent. This is the default for custom agents. |
|
||||
|
||||
## Configuring Custom Subagents
|
||||
|
||||
@@ -149,19 +149,19 @@ kilo agent create \
|
||||
|
||||
The following options are available when configuring a subagent:
|
||||
|
||||
| Option | Type | Description |
|
||||
| ------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `description` | `string` | What the agent does and when to use it. Shown to primary agents to help them decide which subagent to invoke. |
|
||||
| `mode` | `"subagent" \| "primary" \| "all"` | How the agent can be used. Defaults to `all` for custom agents. |
|
||||
| `model` | `string` | Override the model for this agent (format: `provider/model-id`). If not set, subagents inherit the model of the invoking primary agent. |
|
||||
| `prompt` | `string` | Custom system prompt. In JSON, can use `{file:./path}` syntax. In markdown, the body is the prompt. |
|
||||
| `temperature` | `number` | Controls response randomness (0.0-1.0). Lower = more deterministic. |
|
||||
| `top_p` | `number` | Alternative to temperature for controlling response diversity (0.0-1.0). |
|
||||
| `permission` | `object` | Controls tool access. See [Permissions](#permissions) below. |
|
||||
| `hidden` | `boolean` | If `true`, hides the subagent from the `@` autocomplete menu. It can still be invoked by agents via the Task tool. Only applies to `mode: subagent`. |
|
||||
| `steps` | `number` | Maximum agentic iterations before forcing a text-only response. Useful for cost control. |
|
||||
| `color` | `string` | Visual color in the UI. Accepts hex (`#FF5733`) or theme names (`primary`, `accent`, `error`, etc.). |
|
||||
| `disable` | `boolean` | Set to `true` to disable the agent entirely. |
|
||||
| Option | Type | Description |
|
||||
|---|---|---|
|
||||
| `description` | `string` | What the agent does and when to use it. Shown to primary agents to help them decide which subagent to invoke. |
|
||||
| `mode` | `"subagent" \| "primary" \| "all"` | How the agent can be used. Defaults to `all` for custom agents. |
|
||||
| `model` | `string` | Override the model for this agent (format: `provider/model-id`). If not set, subagents inherit the model of the invoking primary agent. |
|
||||
| `prompt` | `string` | Custom system prompt. In JSON, can use `{file:./path}` syntax. In markdown, the body is the prompt. |
|
||||
| `temperature` | `number` | Controls response randomness (0.0-1.0). Lower = more deterministic. |
|
||||
| `top_p` | `number` | Alternative to temperature for controlling response diversity (0.0-1.0). |
|
||||
| `permission` | `object` | Controls tool access. See [Permissions](#permissions) below. |
|
||||
| `hidden` | `boolean` | If `true`, hides the subagent from the `@` autocomplete menu. It can still be invoked by agents via the Task tool. Only applies to `mode: subagent`. |
|
||||
| `steps` | `number` | Maximum agentic iterations before forcing a text-only response. Useful for cost control. |
|
||||
| `color` | `string` | Visual color in the UI. Accepts hex (`#FF5733`) or theme names (`primary`, `accent`, `error`, etc.). |
|
||||
| `disable` | `boolean` | Set to `true` to disable the agent entirely. |
|
||||
|
||||
Any additional options not listed above are passed through to the model provider, allowing you to use provider-specific parameters like `reasoningEffort` for OpenAI models.
|
||||
|
||||
|
||||
@@ -326,13 +326,13 @@ You can include examples, guidelines, code snippets, etc.
|
||||
|
||||
Per the [Agent Skills specification](https://agentskills.io/specification):
|
||||
|
||||
| Field | Required | Description |
|
||||
| --------------- | -------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `name` | Yes | Max 64 characters. Lowercase letters, numbers, and hyphens only. Must not start or end with a hyphen. |
|
||||
| `description` | Yes | Max 1024 characters. Describes what the skill does and when to use it. |
|
||||
| `license` | No | License name or reference to a bundled license file |
|
||||
| `compatibility` | No | Environment requirements (intended product, system packages, network access, etc.) |
|
||||
| `metadata` | No | Arbitrary key-value mapping for additional metadata |
|
||||
| Field | Required | Description |
|
||||
|---|---|---|
|
||||
| `name` | Yes | Max 64 characters. Lowercase letters, numbers, and hyphens only. Must not start or end with a hyphen. |
|
||||
| `description` | Yes | Max 1024 characters. Describes what the skill does and when to use it. |
|
||||
| `license` | No | License name or reference to a bundled license file |
|
||||
| `compatibility` | No | Environment requirements (intended product, system packages, network access, etc.) |
|
||||
| `metadata` | No | Arbitrary key-value mapping for additional metadata |
|
||||
|
||||
### Example with Optional Fields
|
||||
|
||||
@@ -573,11 +573,11 @@ There's currently no dedicated UI indicator showing "Skill X was activated." The
|
||||
|
||||
### Common Errors
|
||||
|
||||
| Error | Cause | Solution |
|
||||
| ------------------------------- | -------------------------------------------- | ------------------------------------------------ |
|
||||
| "missing required 'name' field" | No `name` in frontmatter | Add `name: your-skill-name` |
|
||||
| "name doesn't match directory" | Mismatch between frontmatter and folder name | Make `name` match exactly |
|
||||
| Skill not appearing | Wrong directory structure | Verify path follows `skills/skill-name/SKILL.md` |
|
||||
| Error | Cause | Solution |
|
||||
|---|---|---|
|
||||
| "missing required 'name' field" | No `name` in frontmatter | Add `name: your-skill-name` |
|
||||
| "name doesn't match directory" | Mismatch between frontmatter and folder name | Make `name` match exactly |
|
||||
| Skill not appearing | Wrong directory structure | Verify path follows `skills/skill-name/SKILL.md` |
|
||||
|
||||
## Contributing to the Marketplace
|
||||
|
||||
|
||||
@@ -41,12 +41,12 @@ agent: code
|
||||
You are helping submit a pull request...
|
||||
```
|
||||
|
||||
| Field | Description |
|
||||
| ------------- | --------------------------------------------- |
|
||||
| `description` | Shown in the command picker |
|
||||
| `agent` | Which agent to use when invoking this command |
|
||||
| `model` | Model override for this command |
|
||||
| `subtask` | When `true`, runs as a sub-agent session |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `description` | Shown in the command picker |
|
||||
| `agent` | Which agent to use when invoking this command |
|
||||
| `model` | Model override for this command |
|
||||
| `subtask` | When `true`, runs as a sub-agent session |
|
||||
|
||||
### Workflow Capabilities
|
||||
|
||||
|
||||
@@ -56,11 +56,11 @@ Codebase Indexing is rolling out across our users. It will automatically engage
|
||||
|
||||
### Configuration Options
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
| -------------------------------- | ------- | -------- | ------------------------------------------------------------------------------------------- |
|
||||
| `project.id` | string | No | Custom name for your project. Defaults to the name from your Git origin remote. |
|
||||
| `project.baseBranch` | string | No | Specifies your base branch if it isn't `main`, `master`, `dev`, or `develop`. |
|
||||
| `project.managedIndexingEnabled` | boolean | No | Set to `false` to disable indexing for individual project repositories. Defaults to `true`. |
|
||||
| Field | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `project.id` | string | No | Custom name for your project. Defaults to the name from your Git origin remote. |
|
||||
| `project.baseBranch` | string | No | Specifies your base branch if it isn't `main`, `master`, `dev`, or `develop`. |
|
||||
| `project.managedIndexingEnabled` | boolean | No | Set to `false` to disable indexing for individual project repositories. Defaults to `true`. |
|
||||
|
||||
Organization-wide indexing is enabled for any organization that has a credit balance. If you want to disable indexing for a specific repository, set `managedIndexingEnabled` to `false` in the config file.
|
||||
|
||||
|
||||
@@ -52,11 +52,11 @@ The Security Agent processes each vulnerability alert through four stages.
|
||||
|
||||
You control how much analysis the agent performs via three modes:
|
||||
|
||||
| Mode | What happens |
|
||||
| ----------- | --------------------------------------------------------------------- |
|
||||
| **Auto** | Triage first, then deep analysis only when triage recommends it |
|
||||
| **Shallow** | Triage only — no deep analysis |
|
||||
| **Deep** | Full codebase analysis for every finding, regardless of triage result |
|
||||
| Mode | What happens |
|
||||
|---|---|
|
||||
| **Auto** | Triage first, then deep analysis only when triage recommends it |
|
||||
| **Shallow** | Triage only — no deep analysis |
|
||||
| **Deep** | Full codebase analysis for every finding, regardless of triage result |
|
||||
|
||||
**Auto** is the default. It gives you the best balance between thoroughness and credit usage — deep analysis only runs where triage says it's needed.
|
||||
|
||||
@@ -110,24 +110,24 @@ Every finding has a **primary status** and an **outcome label**. The status trac
|
||||
|
||||
**Primary status:**
|
||||
|
||||
| Status | Meaning |
|
||||
| --------- | --------------------------------------------------- |
|
||||
| Open | Active vulnerability that needs attention |
|
||||
| Fixed | Resolved — detected from the Dependabot alert state |
|
||||
| Dismissed | Closed by a user or by auto-dismiss |
|
||||
| Status | Meaning |
|
||||
|---|---|
|
||||
| Open | Active vulnerability that needs attention |
|
||||
| Fixed | Resolved — detected from the Dependabot alert state |
|
||||
| Dismissed | Closed by a user or by auto-dismiss |
|
||||
|
||||
**Outcome labels:**
|
||||
|
||||
| Outcome | Meaning |
|
||||
| --------------- | ------------------------------------------ |
|
||||
| Not Analyzed | No analysis has run yet |
|
||||
| Analyzing | Analysis is currently in progress |
|
||||
| Analysis Failed | Something went wrong during analysis |
|
||||
| Exploitable | Deep analysis confirmed it's exploitable |
|
||||
| Outcome | Meaning |
|
||||
|---|---|
|
||||
| Not Analyzed | No analysis has run yet |
|
||||
| Analyzing | Analysis is currently in progress |
|
||||
| Analysis Failed | Something went wrong during analysis |
|
||||
| Exploitable | Deep analysis confirmed it's exploitable |
|
||||
| Not Exploitable | Deep analysis confirmed it's not reachable |
|
||||
| Safe to Dismiss | Triage recommends dismissing this finding |
|
||||
| Needs Review | Triage recommends manual review |
|
||||
| Triage Complete | Triage is done, no deep analysis needed |
|
||||
| Safe to Dismiss | Triage recommends dismissing this finding |
|
||||
| Needs Review | Triage recommends manual review |
|
||||
| Triage Complete | Triage is done, no deep analysis needed |
|
||||
|
||||
---
|
||||
|
||||
@@ -158,11 +158,11 @@ All settings are on the Security Agent configuration page.
|
||||
**SLA deadlines** set how many days your team has to remediate findings at each severity level:
|
||||
|
||||
| Severity | Default |
|
||||
| -------- | ------- |
|
||||
|---|---|
|
||||
| Critical | 15 days |
|
||||
| High | 30 days |
|
||||
| Medium | 45 days |
|
||||
| Low | 90 days |
|
||||
| High | 30 days |
|
||||
| Medium | 45 days |
|
||||
| Low | 90 days |
|
||||
|
||||
You can adjust these per your organization's policies and reset to defaults at any time.
|
||||
|
||||
|
||||
@@ -324,16 +324,16 @@ No authentication required.
|
||||
|
||||
## Error codes
|
||||
|
||||
| HTTP Status | Description |
|
||||
| ----------- | ------------------------------------------------------- |
|
||||
| 400 | Bad request -- invalid parameters or model ID |
|
||||
| 401 | Unauthorized -- invalid or missing API key |
|
||||
| 402 | Insufficient balance -- add credits to continue |
|
||||
| 403 | Forbidden -- model not allowed by organization policy |
|
||||
| 429 | Rate limited -- too many requests |
|
||||
| 500 | Internal server error |
|
||||
| 502 | Provider error -- upstream provider returned an error |
|
||||
| 503 | Service unavailable -- provider temporarily unavailable |
|
||||
| HTTP Status | Description |
|
||||
|---|---|
|
||||
| 400 | Bad request -- invalid parameters or model ID |
|
||||
| 401 | Unauthorized -- invalid or missing API key |
|
||||
| 402 | Insufficient balance -- add credits to continue |
|
||||
| 403 | Forbidden -- model not allowed by organization policy |
|
||||
| 429 | Rate limited -- too many requests |
|
||||
| 500 | Internal server error |
|
||||
| 502 | Provider error -- upstream provider returned an error |
|
||||
| 503 | Service unavailable -- provider temporarily unavailable |
|
||||
|
||||
### Error response format
|
||||
|
||||
|
||||
@@ -78,22 +78,22 @@ BYOK lets you use your own provider API keys with the Kilo AI Gateway. When a BY
|
||||
|
||||
### Supported BYOK providers
|
||||
|
||||
| Provider | BYOK Key ID |
|
||||
| -------------------- | ----------------- |
|
||||
| Anthropic | `anthropic` |
|
||||
| AWS Bedrock | `bedrock` |
|
||||
| Google AI Studio | `google` |
|
||||
| Inception | `inception` |
|
||||
| OpenAI | `openai` |
|
||||
| MiniMax | `minimax` |
|
||||
| Mistral | `mistral` |
|
||||
| xAI | `xai` |
|
||||
| Z.AI | `zai` |
|
||||
| Provider | BYOK Key ID |
|
||||
|---|---|
|
||||
| Anthropic | `anthropic` |
|
||||
| AWS Bedrock | `bedrock` |
|
||||
| Google AI Studio | `google` |
|
||||
| Inception | `inception` |
|
||||
| OpenAI | `openai` |
|
||||
| MiniMax | `minimax` |
|
||||
| Mistral | `mistral` |
|
||||
| xAI | `xai` |
|
||||
| Z.AI | `zai` |
|
||||
| BytePlus Coding Plan | `byteplus-coding` |
|
||||
| Codestral (FIM) | `codestral` |
|
||||
| Kimi Code | `kimi-coding` |
|
||||
| Neuralwatt | `neuralwatt` |
|
||||
| Z.AI Coding Plan | `zai-coding` |
|
||||
| Codestral (FIM) | `codestral` |
|
||||
| Kimi Code | `kimi-coding` |
|
||||
| Neuralwatt | `neuralwatt` |
|
||||
| Z.AI Coding Plan | `zai-coding` |
|
||||
|
||||
### How BYOK works
|
||||
|
||||
@@ -109,11 +109,11 @@ BYOK keys can be configured at the personal level or at the organization level.
|
||||
|
||||
The gateway accepts the following headers:
|
||||
|
||||
| Header | Required | Description |
|
||||
| --------------------------- | ----------------------- | -------------------------------------------- |
|
||||
| `Authorization` | Yes (unless free model) | `Bearer <api_key>` |
|
||||
| `Content-Type` | Yes | `application/json` |
|
||||
| `X-KiloCode-OrganizationId` | No | Organization context for org-scoped requests |
|
||||
| `X-KiloCode-TaskId` | No | Task identifier for prompt cache keying |
|
||||
| `X-KiloCode-Version` | No | Client version string |
|
||||
| `x-kilocode-mode` | No | Mode hint for `kilo-auto` model routing |
|
||||
| Header | Required | Description |
|
||||
|---|---|---|
|
||||
| `Authorization` | Yes (unless free model) | `Bearer <api_key>` |
|
||||
| `Content-Type` | Yes | `application/json` |
|
||||
| `X-KiloCode-OrganizationId` | No | Organization context for org-scoped requests |
|
||||
| `X-KiloCode-TaskId` | No | Task identifier for prompt cache keying |
|
||||
| `X-KiloCode-Version` | No | Client version string |
|
||||
| `x-kilocode-mode` | No | Mode hint for `kilo-auto` model routing |
|
||||
|
||||
@@ -39,32 +39,32 @@ This returns model information including pricing, context window, and supported
|
||||
|
||||
### Popular models
|
||||
|
||||
| Model ID | Provider | Description |
|
||||
| ------------------------------- | --------- | ----------------------------------------------- |
|
||||
| `anthropic/claude-opus-4.7` | Anthropic | Most capable Claude model for complex reasoning |
|
||||
| `anthropic/claude-sonnet-4.6` | Anthropic | Balanced performance and cost |
|
||||
| `anthropic/claude-haiku-4.5` | Anthropic | Fast and cost-effective |
|
||||
| `openai/gpt-5.4` | OpenAI | Latest GPT model |
|
||||
| `openai/gpt-5.4-mini` | OpenAI | Fast and efficient |
|
||||
| `google/gemini-3.1-pro-preview` | Google | Advanced reasoning |
|
||||
| `google/gemini-2.5-flash` | Google | Fast and efficient |
|
||||
| `x-ai/grok-4` | xAI | Most capable Grok model |
|
||||
| `x-ai/grok-code-fast-1` | xAI | Optimized for code tasks |
|
||||
| `deepseek/deepseek-v3.2` | DeepSeek | Strong coding and reasoning model |
|
||||
| `moonshotai/kimi-k2.5` | Moonshot | Strong coding and multilingual model |
|
||||
| `minimax/minimax-m2.7` | MiniMax | High-performance MoE model |
|
||||
| Model ID | Provider | Description |
|
||||
|---|---|---|
|
||||
| `anthropic/claude-opus-4.7` | Anthropic | Most capable Claude model for complex reasoning |
|
||||
| `anthropic/claude-sonnet-4.6` | Anthropic | Balanced performance and cost |
|
||||
| `anthropic/claude-haiku-4.5` | Anthropic | Fast and cost-effective |
|
||||
| `openai/gpt-5.4` | OpenAI | Latest GPT model |
|
||||
| `openai/gpt-5.4-mini` | OpenAI | Fast and efficient |
|
||||
| `google/gemini-3.1-pro-preview` | Google | Advanced reasoning |
|
||||
| `google/gemini-2.5-flash` | Google | Fast and efficient |
|
||||
| `x-ai/grok-4` | xAI | Most capable Grok model |
|
||||
| `x-ai/grok-code-fast-1` | xAI | Optimized for code tasks |
|
||||
| `deepseek/deepseek-v3.2` | DeepSeek | Strong coding and reasoning model |
|
||||
| `moonshotai/kimi-k2.5` | Moonshot | Strong coding and multilingual model |
|
||||
| `minimax/minimax-m2.7` | MiniMax | High-performance MoE model |
|
||||
|
||||
### Free models
|
||||
|
||||
Several models are available at no cost, subject to rate limits:
|
||||
|
||||
| Model ID | Description |
|
||||
| ---------------------------------------- | ------------------------------ |
|
||||
| `bytedance-seed/dola-seed-2.0-pro:free` | ByteDance Dola Seed 2.0 Pro |
|
||||
| `x-ai/grok-code-fast-1:optimized:free` | xAI Grok Code Fast 1 Optimized |
|
||||
| `nvidia/nemotron-3-super-120b-a12b:free` | NVIDIA Nemotron 3 Super 120B |
|
||||
| `arcee-ai/trinity-large-thinking:free` | Arcee Trinity Large |
|
||||
| `openrouter/free` | Best available free model |
|
||||
| Model ID | Description |
|
||||
|---|---|
|
||||
| `bytedance-seed/dola-seed-2.0-pro:free` | ByteDance Dola Seed 2.0 Pro |
|
||||
| `x-ai/grok-code-fast-1:optimized:free` | xAI Grok Code Fast 1 Optimized |
|
||||
| `nvidia/nemotron-3-super-120b-a12b:free` | NVIDIA Nemotron 3 Super 120B |
|
||||
| `arcee-ai/trinity-large-thinking:free` | Arcee Trinity Large |
|
||||
| `openrouter/free` | Best available free model |
|
||||
|
||||
Free models are available to both authenticated and anonymous users. Anonymous users are rate-limited to 200 requests per hour per IP address.
|
||||
|
||||
@@ -84,21 +84,21 @@ The mappings below reflect the current routing. The underlying models behind eac
|
||||
|
||||
Highest performance and capability for any task. Frontier requests are sent with medium reasoning effort and medium verbosity.
|
||||
|
||||
| Mode | Resolved Model |
|
||||
| -------------------------------------------------------------- | ----------------------------- |
|
||||
| `plan`, `general`, `architect`, `orchestrator`, `ask`, `debug` | `anthropic/claude-opus-4.7` |
|
||||
| `build`, `explore`, `code` | `anthropic/claude-sonnet-4.6` |
|
||||
| Default (no / unknown mode) | `anthropic/claude-sonnet-4.6` |
|
||||
| Mode | Resolved Model |
|
||||
|---|---|
|
||||
| `plan`, `general`, `architect`, `orchestrator`, `ask`, `debug` | `anthropic/claude-opus-4.7` |
|
||||
| `build`, `explore`, `code` | `anthropic/claude-sonnet-4.6` |
|
||||
| Default (no / unknown mode) | `anthropic/claude-sonnet-4.6` |
|
||||
|
||||
### `kilo-auto/balanced`
|
||||
|
||||
Great balance of price and capability. The resolved model depends on the API interface used by the client.
|
||||
|
||||
| API interface | Resolved Model | Reasoning effort |
|
||||
| --------------------- | ---------------------------- | ---------------- |
|
||||
| Completions (default) | `qwen/qwen3.6-plus` | enabled |
|
||||
| Responses API | `openai/gpt-5.3-codex` | low |
|
||||
| Messages API | `anthropic/claude-haiku-4.5` | medium |
|
||||
| API interface | Resolved Model | Reasoning effort |
|
||||
|---|---|---|
|
||||
| Completions (default) | `qwen/qwen3.6-plus` | enabled |
|
||||
| Responses API | `openai/gpt-5.3-codex` | low |
|
||||
| Messages API | `anthropic/claude-haiku-4.5` | medium |
|
||||
|
||||
### `kilo-auto/free`
|
||||
|
||||
@@ -108,9 +108,9 @@ Free with limited capability. No credits required. The resolved model is selecte
|
||||
|
||||
Automatically routes to a small, fast model for lightweight background tasks (session titles, commit messages, summaries).
|
||||
|
||||
| Condition | Resolved Model |
|
||||
| ------------------------- | -------------------------------- |
|
||||
| Account has paid balance | `google/gemma-4-31b-it` |
|
||||
| Condition | Resolved Model |
|
||||
|---|---|
|
||||
| Account has paid balance | `google/gemma-4-31b-it` |
|
||||
| No balance / free account | `google/gemma-4-26b-a4b-it:free` |
|
||||
|
||||
### Example usage
|
||||
|
||||
@@ -285,12 +285,12 @@ puts result['choices'][0]['message']['content']
|
||||
|
||||
The Kilo AI Gateway works with any framework that supports OpenAI-compatible APIs:
|
||||
|
||||
| Framework | Integration |
|
||||
| --------------------------------------------------------------------- | ----------------------------------------- |
|
||||
| [Vercel AI SDK](https://ai-sdk.dev) | Use `createOpenAI` with Kilo base URL |
|
||||
| [LangChain](https://langchain.com) | Use `ChatOpenAI` with custom base URL |
|
||||
| [LlamaIndex](https://www.llamaindex.ai) | Use OpenAI-compatible configuration |
|
||||
| [Haystack](https://haystack.deepset.ai) | Use OpenAI generator with custom URL |
|
||||
| Framework | Integration |
|
||||
|---|---|
|
||||
| [Vercel AI SDK](https://ai-sdk.dev) | Use `createOpenAI` with Kilo base URL |
|
||||
| [LangChain](https://langchain.com) | Use `ChatOpenAI` with custom base URL |
|
||||
| [LlamaIndex](https://www.llamaindex.ai) | Use OpenAI-compatible configuration |
|
||||
| [Haystack](https://haystack.deepset.ai) | Use OpenAI generator with custom URL |
|
||||
| [Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/) | Use OpenAI connector with custom endpoint |
|
||||
|
||||
### LangChain example
|
||||
|
||||
@@ -94,8 +94,8 @@ Set a maximum daily spend per organization member. When a member reaches their d
|
||||
|
||||
All free model requests (both anonymous and authenticated) are rate-limited by IP address:
|
||||
|
||||
| Scope | Limit |
|
||||
| ------------------ | --------------------- |
|
||||
| Scope | Limit |
|
||||
|---|---|
|
||||
| Free models per IP | 200 requests per hour |
|
||||
|
||||
When rate-limited, you receive HTTP 429:
|
||||
@@ -117,17 +117,17 @@ Paid model requests are not rate-limited by the gateway itself, but may be rate-
|
||||
|
||||
Usage data is tracked per request and includes:
|
||||
|
||||
| Field | Description |
|
||||
| --------------------- | ------------------------------------------ |
|
||||
| `model` | Model ID used |
|
||||
| `provider` | Inference provider that served the request |
|
||||
| `input_tokens` | Number of input/prompt tokens |
|
||||
| `output_tokens` | Number of output/completion tokens |
|
||||
| `cache_write_tokens` | Tokens written to cache |
|
||||
| `cache_hit_tokens` | Tokens served from cache |
|
||||
| `cost_microdollars` | Cost in microdollars (1 USD = 1,000,000) |
|
||||
| `time_to_first_token` | Latency to first token (streaming only) |
|
||||
| `is_byok` | Whether a BYOK key was used |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `model` | Model ID used |
|
||||
| `provider` | Inference provider that served the request |
|
||||
| `input_tokens` | Number of input/prompt tokens |
|
||||
| `output_tokens` | Number of output/completion tokens |
|
||||
| `cache_write_tokens` | Tokens written to cache |
|
||||
| `cache_hit_tokens` | Tokens served from cache |
|
||||
| `cost_microdollars` | Cost in microdollars (1 USD = 1,000,000) |
|
||||
| `time_to_first_token` | Latency to first token (streaming only) |
|
||||
| `is_byok` | Whether a BYOK key was used |
|
||||
|
||||
## Token counting
|
||||
|
||||
|
||||
@@ -47,11 +47,11 @@ AWS Bedrock requires credentials in a different format than other providers. Ins
|
||||
}
|
||||
```
|
||||
|
||||
| Field | Description |
|
||||
| ----------------- | ------------------------------------------------------------------------ |
|
||||
| `accessKeyId` | Your AWS access key ID |
|
||||
| `secretAccessKey` | Your AWS secret access key |
|
||||
| `region` | The AWS region where Bedrock is enabled (e.g., `us-east-1`, `eu-west-1`) |
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `accessKeyId` | Your AWS access key ID |
|
||||
| `secretAccessKey` | Your AWS secret access key |
|
||||
| `region` | The AWS region where Bedrock is enabled (e.g., `us-east-1`, `eu-west-1`) |
|
||||
|
||||
Your IAM user or role must have the following permissions:
|
||||
|
||||
|
||||
@@ -38,13 +38,13 @@ Choose your current tool:
|
||||
|
||||
### What's Different in Kilo Code
|
||||
|
||||
| Cursor | Kilo Code | Key Difference |
|
||||
| ------------------------------------------- | ----------------------------------------- | ------------------------------------------- |
|
||||
| `.cursor/rules/*.mdc` with YAML frontmatter | `.kilocode/rules/*.md` plain Markdown | No YAML metadata required |
|
||||
| `alwaysApply: true/false` metadata | File location determines scope | Scope controlled by directory structure |
|
||||
| `globs: ["*.ts"]` for file patterns | Mode-specific directories or custom modes | File patterns handled via custom modes |
|
||||
| `description` for AI activation | Clear file names and organization | Relies on explicit file organization |
|
||||
| Global rules in UI settings | `~/.kilocode/rules/*.md` files | Global rules stored as files in home folder |
|
||||
| Cursor | Kilo Code | Key Difference |
|
||||
|---|---|---|
|
||||
| `.cursor/rules/*.mdc` with YAML frontmatter | `.kilocode/rules/*.md` plain Markdown | No YAML metadata required |
|
||||
| `alwaysApply: true/false` metadata | File location determines scope | Scope controlled by directory structure |
|
||||
| `globs: ["*.ts"]` for file patterns | Mode-specific directories or custom modes | File patterns handled via custom modes |
|
||||
| `description` for AI activation | Clear file names and organization | Relies on explicit file organization |
|
||||
| Global rules in UI settings | `~/.kilocode/rules/*.md` files | Global rules stored as files in home folder |
|
||||
|
||||
### Migration Steps
|
||||
|
||||
@@ -160,14 +160,14 @@ Cursor supports nested `.cursor/rules/` directories. Kilo Code uses flat structu
|
||||
|
||||
### What's Different in Kilo Code
|
||||
|
||||
| Windsurf | Kilo Code | Key Difference |
|
||||
| -------------------------------------------------------------- | ------------------------------ | ------------------------------------------- |
|
||||
| `.windsurf/rules/*.md` | `.kilocode/rules/*.md` | Same Markdown format |
|
||||
| GUI configuration for activation modes | File location determines scope | Scope controlled by directory structure |
|
||||
| "Always On" mode (GUI) | Place in `.kilocode/rules/` | Rules stored as files, not GUI settings |
|
||||
| "Glob" mode (GUI) | Mode-specific directories | File patterns handled via mode directories |
|
||||
| 12,000 character limit per rule | No hard limit | No character limit on rule files |
|
||||
| Global rules in `~/.codeium/windsurf/memories/global_rules.md` | `~/.kilocode/rules/*.md` | Global rules in home folder, multiple files |
|
||||
| Windsurf | Kilo Code | Key Difference |
|
||||
|---|---|---|
|
||||
| `.windsurf/rules/*.md` | `.kilocode/rules/*.md` | Same Markdown format |
|
||||
| GUI configuration for activation modes | File location determines scope | Scope controlled by directory structure |
|
||||
| "Always On" mode (GUI) | Place in `.kilocode/rules/` | Rules stored as files, not GUI settings |
|
||||
| "Glob" mode (GUI) | Mode-specific directories | File patterns handled via mode directories |
|
||||
| 12,000 character limit per rule | No hard limit | No character limit on rule files |
|
||||
| Global rules in `~/.codeium/windsurf/memories/global_rules.md` | `~/.kilocode/rules/*.md` | Global rules in home folder, multiple files |
|
||||
|
||||
### Migration Steps
|
||||
|
||||
@@ -220,12 +220,12 @@ If you had rules approaching the 12,000 character limit, split them:
|
||||
|
||||
Windsurf configures activation through the GUI. In Kilo Code, file organization replaces GUI configuration:
|
||||
|
||||
| Windsurf GUI Mode | Kilo Code Equivalent |
|
||||
| ------------------------ | ----------------------------------------------------------- |
|
||||
| **Always On** | Place in `.kilocode/rules/` (default) |
|
||||
| **Glob** (file patterns) | Mode-specific directory or custom mode |
|
||||
| **Model Decision** | Clear file names by concern (e.g., `testing-guidelines.md`) |
|
||||
| **Manual** | Organize with descriptive names |
|
||||
| Windsurf GUI Mode | Kilo Code Equivalent |
|
||||
|---|---|
|
||||
| **Always On** | Place in `.kilocode/rules/` (default) |
|
||||
| **Glob** (file patterns) | Mode-specific directory or custom mode |
|
||||
| **Model Decision** | Clear file names by concern (e.g., `testing-guidelines.md`) |
|
||||
| **Manual** | Organize with descriptive names |
|
||||
|
||||
**Example - Converting a Glob rule:**
|
||||
|
||||
|
||||
@@ -24,11 +24,11 @@ The UI reads and writes to the same `kilo.jsonc` config files used by the CLI, s
|
||||
|
||||
Each tool permission can be set to one of three values:
|
||||
|
||||
| Value | Behavior |
|
||||
| --------- | --------------------------------------------------------- |
|
||||
| `"allow"` | The tool runs automatically without prompting |
|
||||
| `"ask"` | Kilo pauses and asks for approval before running the tool |
|
||||
| `"deny"` | The tool is blocked entirely |
|
||||
| Value | Behavior |
|
||||
|---|---|
|
||||
| `"allow"` | The tool runs automatically without prompting |
|
||||
| `"ask"` | Kilo pauses and asks for approval before running the tool |
|
||||
| `"deny"` | The tool is blocked entirely |
|
||||
|
||||
When no rule matches a permission check, the default action is `ask`.
|
||||
|
||||
@@ -36,30 +36,30 @@ When no rule matches a permission check, the default action is `ask`.
|
||||
|
||||
The Auto Approve tab lists the following tool-specific permissions. Some tools are grouped together in the UI and share a single permission level:
|
||||
|
||||
| Permission | Controls |
|
||||
| -------------------------- | ------------------------------------------------------ |
|
||||
| `external_directory` | Accessing files outside the project directory |
|
||||
| `bash` | Executing shell commands |
|
||||
| `read` | Reading file contents |
|
||||
| `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 |
|
||||
| `todoread` / `todowrite` | Reading and updating the todo list |
|
||||
| `websearch` / `codesearch` | Performing web or code searches |
|
||||
| `webfetch` | Fetching content from URLs |
|
||||
| `doom_loop` | Allowing the agent to continue after repeated failures |
|
||||
| Permission | Controls |
|
||||
|---|---|
|
||||
| `external_directory` | Accessing files outside the project directory |
|
||||
| `bash` | Executing shell commands |
|
||||
| `read` | Reading file contents |
|
||||
| `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 |
|
||||
| `todoread` / `todowrite` | Reading and updating the todo list |
|
||||
| `websearch` / `codesearch` | Performing web or code searches |
|
||||
| `webfetch` | Fetching content from URLs |
|
||||
| `doom_loop` | Allowing the agent to continue after repeated failures |
|
||||
|
||||
## Runtime Permission Requests
|
||||
|
||||
When a tool is set to `"ask"`, Kilo pauses and displays a permission prompt with two options:
|
||||
|
||||
| Option | Behavior |
|
||||
| -------- | ------------------------------ |
|
||||
| **Run** | Allow this specific invocation |
|
||||
| Option | Behavior |
|
||||
|---|---|
|
||||
| **Run** | Allow this specific invocation |
|
||||
| **Deny** | Block this specific invocation |
|
||||
|
||||
Expand **Manage Auto-Approve Rules** to add commands or patterns to your allowed or denied lists. These rules are then appended to the bottom of the approval rules in settings and the config file.
|
||||
@@ -89,11 +89,11 @@ The CLI uses a granular, per-tool permission system configured in `kilo.jsonc`.
|
||||
|
||||
Each tool permission can be set to one of three values:
|
||||
|
||||
| Value | Behavior |
|
||||
| --------- | --------------------------------------------------------- |
|
||||
| `"allow"` | The tool runs automatically without prompting |
|
||||
| `"ask"` | Kilo pauses and asks for approval before running the tool |
|
||||
| `"deny"` | The tool is blocked entirely |
|
||||
| Value | Behavior |
|
||||
|---|---|
|
||||
| `"allow"` | The tool runs automatically without prompting |
|
||||
| `"ask"` | Kilo pauses and asks for approval before running the tool |
|
||||
| `"deny"` | The tool is blocked entirely |
|
||||
|
||||
When no rule matches a permission check, the default action is `ask`.
|
||||
|
||||
@@ -101,22 +101,22 @@ When no rule matches a permission check, the default action is `ask`.
|
||||
|
||||
Permissions are configured under the `permission` key in `kilo.jsonc`. The following tool-specific permission levels are available:
|
||||
|
||||
| Permission | Controls |
|
||||
| -------------------------- | ------------------------------------------------------ |
|
||||
| `external_directory` | Accessing files outside the project directory |
|
||||
| `bash` | Executing shell commands |
|
||||
| `read` | Reading file contents |
|
||||
| `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 |
|
||||
| `todoread` / `todowrite` | Reading and updating the todo list |
|
||||
| `websearch` / `codesearch` | Performing web or code searches |
|
||||
| `webfetch` | Fetching content from URLs |
|
||||
| `doom_loop` | Allowing the agent to continue after repeated failures |
|
||||
| Permission | Controls |
|
||||
|---|---|
|
||||
| `external_directory` | Accessing files outside the project directory |
|
||||
| `bash` | Executing shell commands |
|
||||
| `read` | Reading file contents |
|
||||
| `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 |
|
||||
| `todoread` / `todowrite` | Reading and updating the todo list |
|
||||
| `websearch` / `codesearch` | Performing web or code searches |
|
||||
| `webfetch` | Fetching content from URLs |
|
||||
| `doom_loop` | Allowing the agent to continue after repeated failures |
|
||||
|
||||
## Glob-Pattern Rules
|
||||
|
||||
@@ -200,11 +200,11 @@ In this example, the `code` agent can run `git` commands automatically and asks
|
||||
|
||||
When a tool is set to `"ask"`, Kilo pauses and displays a permission prompt. You have three options:
|
||||
|
||||
| Option | Behavior |
|
||||
| ---------------- | -------------------------------------------------------- |
|
||||
| **Allow once** | Allow this specific invocation only |
|
||||
| Option | Behavior |
|
||||
|---|---|
|
||||
| **Allow once** | Allow this specific invocation only |
|
||||
| **Allow always** | Allow this tool (or pattern) for the rest of the session |
|
||||
| **Reject** | Block this specific invocation |
|
||||
| **Reject** | Block this specific invocation |
|
||||
|
||||
## Defaults
|
||||
|
||||
@@ -277,18 +277,18 @@ Click the toolbar to expand it and configure individual permissions:
|
||||
|
||||
### Available Permissions
|
||||
|
||||
| Permission | What it does | Risk level |
|
||||
| ------------------------------ | ------------------------------------------------ | ----------- |
|
||||
| **Read files and directories** | Lets Kilo Code access files without asking | Medium |
|
||||
| **Edit files** | Lets Kilo Code modify files without asking | **High** |
|
||||
| **Execute approved commands** | Runs whitelisted terminal commands automatically | **High** |
|
||||
| **Use the browser** | Allows headless browser interaction | Medium |
|
||||
| **Use MCP servers** | Lets Kilo Code use configured MCP services | Medium-High |
|
||||
| **Switch modes** | Changes between Kilo Code modes automatically | Low |
|
||||
| **Create & complete subtasks** | Manages subtasks without confirmation | Low |
|
||||
| **Retry failed requests** | Automatically retries failed API requests | Low |
|
||||
| **Answer follow-up questions** | Selects default answer for follow-up questions | Low |
|
||||
| **Update todo list** | Automatically updates task progress | Low |
|
||||
| Permission | What it does | Risk level |
|
||||
|---|---|---|
|
||||
| **Read files and directories** | Lets Kilo Code access files without asking | Medium |
|
||||
| **Edit files** | Lets Kilo Code modify files without asking | **High** |
|
||||
| **Execute approved commands** | Runs whitelisted terminal commands automatically | **High** |
|
||||
| **Use the browser** | Allows headless browser interaction | Medium |
|
||||
| **Use MCP servers** | Lets Kilo Code use configured MCP services | Medium-High |
|
||||
| **Switch modes** | Changes between Kilo Code modes automatically | Low |
|
||||
| **Create & complete subtasks** | Manages subtasks without confirmation | Low |
|
||||
| **Retry failed requests** | Automatically retries failed API requests | Low |
|
||||
| **Answer follow-up questions** | Selects default answer for follow-up questions | Low |
|
||||
| **Update todo list** | Automatically updates task progress | Low |
|
||||
|
||||
## Master Toggle for Quick Control
|
||||
|
||||
|
||||
@@ -36,12 +36,12 @@ Auto-Cleanup uses an intelligent classification system to determine how long eac
|
||||
|
||||
Every task is automatically classified into one of these categories:
|
||||
|
||||
| Task Type | Description | Default Retention |
|
||||
| -------------- | ----------------------------------------- | ---------------------------------------- |
|
||||
| **Favorited** | Tasks you've marked as favorites | Never deleted (or 90 days if configured) |
|
||||
| **Completed** | Tasks that successfully finished | 30 days |
|
||||
| **Incomplete** | Tasks that were started but not completed | 7 days |
|
||||
| **Regular** | Default classification for other tasks | 30 days |
|
||||
| Task Type | Description | Default Retention |
|
||||
|---|---|---|
|
||||
| **Favorited** | Tasks you've marked as favorites | Never deleted (or 90 days if configured) |
|
||||
| **Completed** | Tasks that successfully finished | 30 days |
|
||||
| **Incomplete** | Tasks that were started but not completed | 7 days |
|
||||
| **Regular** | Default classification for other tasks | 30 days |
|
||||
|
||||
#### Understanding Task Completion
|
||||
|
||||
|
||||
@@ -24,11 +24,11 @@ Kilo Code uses system notifications to inform you about:
|
||||
|
||||
Kilo Code's system notifications work on all major operating systems with different underlying technologies:
|
||||
|
||||
| Operating System | Technology | Requirements |
|
||||
| ---------------- | ------------------------------- | -------------------------------------------- |
|
||||
| **macOS** | AppleScript + terminal-notifier | Built-in support, optional enhanced features |
|
||||
| **Windows** | PowerShell + Windows Runtime | PowerShell execution policy configuration |
|
||||
| **Linux** | notify-send | libnotify package installation |
|
||||
| Operating System | Technology | Requirements |
|
||||
|---|---|---|
|
||||
| **macOS** | AppleScript + terminal-notifier | Built-in support, optional enhanced features |
|
||||
| **Windows** | PowerShell + Windows Runtime | PowerShell execution policy configuration |
|
||||
| **Linux** | notify-send | libnotify package installation |
|
||||
|
||||
## Platform-Specific Setup
|
||||
|
||||
@@ -81,12 +81,12 @@ Windows notifications use the `Windows.UI.Notifications` API through PowerShell.
|
||||
|
||||
#### Execution Policy Options
|
||||
|
||||
| Policy | Description | Security Level | Recommended |
|
||||
| -------------- | ------------------------------------------ | -------------- | ----------------------- |
|
||||
| `Restricted` | No scripts allowed (default) | Highest | ❌ Blocks notifications |
|
||||
| `RemoteSigned` | Local scripts run, downloaded need signing | High | ✅ **Recommended** |
|
||||
| `Unrestricted` | All scripts run with warnings | Medium | ⚠️ Use with caution |
|
||||
| `AllSigned` | All scripts must be signed | Highest | ❌ Too restrictive |
|
||||
| Policy | Description | Security Level | Recommended |
|
||||
|---|---|---|---|
|
||||
| `Restricted` | No scripts allowed (default) | Highest | ❌ Blocks notifications |
|
||||
| `RemoteSigned` | Local scripts run, downloaded need signing | High | ✅ **Recommended** |
|
||||
| `Unrestricted` | All scripts run with warnings | Medium | ⚠️ Use with caution |
|
||||
| `AllSigned` | All scripts must be signed | Highest | ❌ Too restrictive |
|
||||
|
||||
### Linux Setup
|
||||
|
||||
@@ -130,14 +130,14 @@ which notify-send
|
||||
|
||||
System notifications work best with these desktop environments:
|
||||
|
||||
| Desktop Environment | Support Level | Notes |
|
||||
| ------------------- | --------------- | ----------------------------------------- |
|
||||
| **GNOME** | ✅ Full support | Native notification center |
|
||||
| **KDE Plasma** | ✅ Full support | Native notification system |
|
||||
| **XFCE** | ✅ Good support | Requires notification daemon |
|
||||
| **Unity** | ✅ Full support | Ubuntu's notification system |
|
||||
| **i3/Sway** | ⚠️ Limited | Requires manual notification daemon setup |
|
||||
| **Headless** | ❌ No support | No display server available |
|
||||
| Desktop Environment | Support Level | Notes |
|
||||
|---|---|---|
|
||||
| **GNOME** | ✅ Full support | Native notification center |
|
||||
| **KDE Plasma** | ✅ Full support | Native notification system |
|
||||
| **XFCE** | ✅ Good support | Requires notification daemon |
|
||||
| **Unity** | ✅ Full support | Ubuntu's notification system |
|
||||
| **i3/Sway** | ⚠️ Limited | Requires manual notification daemon setup |
|
||||
| **Headless** | ❌ No support | No display server available |
|
||||
|
||||
#### Notification Daemon Setup (Advanced)
|
||||
|
||||
|
||||
@@ -62,12 +62,12 @@ If you're using the [Kilo AI Gateway](/docs/gateway/) outside of the Kilo Code e
|
||||
|
||||
If you prefer to use your own API key or existing subscription, Kilo Code supports **over 30 providers**. Here are some popular options to get started:
|
||||
|
||||
| Provider | Best For | API Key Required |
|
||||
| -------------------------------------------------------------- | ----------------------------------- | ---------------- |
|
||||
| [ChatGPT Plus/Pro](/docs/ai-providers/openai-chatgpt-plus-pro) | Use your existing subscription | No |
|
||||
| [OpenRouter](/docs/ai-providers/openrouter) | Access multiple models with one key | Yes |
|
||||
| [Anthropic](/docs/ai-providers/anthropic) | Direct access to Claude models | Yes |
|
||||
| [OpenAI](/docs/ai-providers/openai) | Access to GPT models | Yes |
|
||||
| Provider | Best For | API Key Required |
|
||||
|---|---|---|
|
||||
| [ChatGPT Plus/Pro](/docs/ai-providers/openai-chatgpt-plus-pro) | Use your existing subscription | No |
|
||||
| [OpenRouter](/docs/ai-providers/openrouter) | Access multiple models with one key | Yes |
|
||||
| [Anthropic](/docs/ai-providers/anthropic) | Direct access to Claude models | Yes |
|
||||
| [OpenAI](/docs/ai-providers/openai) | Access to GPT models | Yes |
|
||||
|
||||
{% callout type="info" title="Many More Providers Available" %}
|
||||
These are just a few examples! Kilo Code supports many more providers including Google Gemini, DeepSeek, Mistral, Ollama (for local models), AWS Bedrock, Google Vertex, and more. See the complete list at [AI Providers](/docs/ai-providers/).
|
||||
|
||||
@@ -7,13 +7,13 @@ description: "Browse and switch models from the Control UI chat"
|
||||
|
||||
The Control UI Chat tab doubles as a command line for model management. KiloClaw exposes 335+ models through the `kilocode` provider and you can browse and switch between them without leaving the chat.
|
||||
|
||||
| Command | Description |
|
||||
| ------------------------------------ | ------------------------------------------------------------------------------- |
|
||||
| `/model status` | View the currently active model and provider |
|
||||
| `/models kilocode` | Browse available models (paginated, 20 per page) |
|
||||
| `/models kilocode <page>` | Jump to a specific page (e.g. `/models kilocode 2`) |
|
||||
| Command | Description |
|
||||
|---|---|
|
||||
| `/model status` | View the currently active model and provider |
|
||||
| `/models kilocode` | Browse available models (paginated, 20 per page) |
|
||||
| `/models kilocode <page>` | Jump to a specific page (e.g. `/models kilocode 2`) |
|
||||
| `/model kilocode/<provider>/<model>` | Switch to a specific model (e.g. `/model kilocode/anthropic/claude-sonnet-4.6`) |
|
||||
| `/models kilocode all` | List every available model at once |
|
||||
| `/models kilocode all` | List every available model at once |
|
||||
|
||||
Each `/models` response includes helper text at the bottom with shortcuts for switching, paging, and listing all models.
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ Approvals are enforced locally on the execution host and sit on top of tool poli
|
||||
|
||||
## Security Policies
|
||||
|
||||
| Policy | Behavior |
|
||||
| ----------- | ---------------------------------------------- |
|
||||
| `deny` | Block all host exec requests (default) |
|
||||
| `allowlist` | Allow only commands matching the allowlist |
|
||||
| `full` | Allow everything (equivalent to elevated mode) |
|
||||
| Policy | Behavior |
|
||||
|---|---|
|
||||
| `deny` | Block all host exec requests (default) |
|
||||
| `allowlist` | Allow only commands matching the allowlist |
|
||||
| `full` | Allow everything (equivalent to elevated mode) |
|
||||
|
||||
## Allow Everything from Settings
|
||||
|
||||
@@ -37,11 +37,11 @@ Enabling **Allow Everything** removes all exec safety checks. Only use this in t
|
||||
|
||||
The `ask` setting controls when the user is prompted for approval:
|
||||
|
||||
| Setting | Behavior |
|
||||
| --------- | ------------------------------------------------------- |
|
||||
| `off` | Never prompt |
|
||||
| Setting | Behavior |
|
||||
|---|---|
|
||||
| `off` | Never prompt |
|
||||
| `on-miss` | Prompt only when the allowlist does not match (default) |
|
||||
| `always` | Prompt on every command |
|
||||
| `always` | Prompt on every command |
|
||||
|
||||
If a prompt is required but no UI is reachable, the `askFallback` setting decides the outcome (`deny` by default).
|
||||
|
||||
|
||||
@@ -13,12 +13,12 @@ This page covers everything you can do from the KiloClaw dashboard. For getting
|
||||
|
||||
Your instance is always in one of these states as indicated by the status label at the top of your dashboard:
|
||||
|
||||
| Status | Label | Meaning |
|
||||
| --------------- | --------------- | ------------------------------------------------------------- |
|
||||
| **Running** | Machine Online | Your agent is online and reachable |
|
||||
| **Stopped** | Machine Stopped | The machine is off, but all your files and data are preserved |
|
||||
| **Provisioned** | Provisioned | Your instance has been created but never started |
|
||||
| **Destroying** | Destroying | The instance is being permanently deleted |
|
||||
| Status | Label | Meaning |
|
||||
|---|---|---|
|
||||
| **Running** | Machine Online | Your agent is online and reachable |
|
||||
| **Stopped** | Machine Stopped | The machine is off, but all your files and data are preserved |
|
||||
| **Provisioned** | Provisioned | Your instance has been created but never started |
|
||||
| **Destroying** | Destroying | The instance is being permanently deleted |
|
||||
|
||||
## Instance Controls
|
||||
|
||||
@@ -168,23 +168,23 @@ The dashboard shows recent KiloClaw platform updates. Each entry is tagged as a
|
||||
|
||||
## Instance Lifecycle
|
||||
|
||||
| Action | What Happens | Data Preserved? |
|
||||
| ---------------------- | --------------------------------------------------------------------------- | --------------- |
|
||||
| **Create & Provision** | Allocates storage in the best region available and saves your config. | N/A |
|
||||
| **Start Machine** | Boots the machine and starts OpenClaw. | Yes |
|
||||
| **Stop Instance** | Shuts down the machine. | Yes |
|
||||
| **Restart OpenClaw** | Restarts the OpenClaw process. Machine stays up. | Yes |
|
||||
| **Redeploy** | Stops, applies config, and restarts the machine (same version or upgraded). | Yes |
|
||||
| **Destroy Instance** | Permanently deletes everything. | No |
|
||||
| Action | What Happens | Data Preserved? |
|
||||
|---|---|---|
|
||||
| **Create & Provision** | Allocates storage in the best region available and saves your config. | N/A |
|
||||
| **Start Machine** | Boots the machine and starts OpenClaw. | Yes |
|
||||
| **Stop Instance** | Shuts down the machine. | Yes |
|
||||
| **Restart OpenClaw** | Restarts the OpenClaw process. Machine stays up. | Yes |
|
||||
| **Redeploy** | Stops, applies config, and restarts the machine (same version or upgraded). | Yes |
|
||||
| **Destroy Instance** | Permanently deletes everything. | No |
|
||||
|
||||
## Machine Specs
|
||||
|
||||
Each instance runs on a dedicated machine — there is no shared infrastructure between users.
|
||||
|
||||
| Spec | Value |
|
||||
| ------- | -------------------- |
|
||||
| CPU | 2 shared vCPUs |
|
||||
| Memory | 3 GB RAM |
|
||||
| Spec | Value |
|
||||
|---|---|
|
||||
| CPU | 2 shared vCPUs |
|
||||
| Memory | 3 GB RAM |
|
||||
| Storage | 10 GB persistent SSD |
|
||||
|
||||
Your storage is region-pinned — once your instance is created in a region (e.g., DFW), it always runs there. OpenClaw config lives at `/root/.openclaw` and the workspace at `/root/clawd`.
|
||||
|
||||
@@ -27,21 +27,21 @@ Once you have a GitHub account ready, continue to Step 2.
|
||||
|
||||
KiloClaw uses a [fine grained Personal Access Token](https://github.com/settings/tokens?type=beta) to authenticate as your bot. When creating the token, use these settings:
|
||||
|
||||
| Setting | Recommended Value |
|
||||
| --------------------- | ----------------------------------------- |
|
||||
| **Token name** | `kiloclaw-bot` (or any descriptive name) |
|
||||
| **Expiration** | 90 days (set a reminder to rotate) |
|
||||
| Setting | Recommended Value |
|
||||
|---|---|
|
||||
| **Token name** | `kiloclaw-bot` (or any descriptive name) |
|
||||
| **Expiration** | 90 days (set a reminder to rotate) |
|
||||
| **Repository access** | All repositories, or select specific ones |
|
||||
|
||||
Grant the following permissions:
|
||||
|
||||
| Permission | Access Level | Purpose |
|
||||
| ----------------- | ------------ | ------------------------------------------- |
|
||||
| **Contents** | Read & Write | Clone repos, push commits |
|
||||
| **Pull requests** | Read & Write | Open and manage pull requests |
|
||||
| **Issues** | Read & Write | Create and comment on issues |
|
||||
| **Metadata** | Read only | List repositories and basic repo info |
|
||||
| **Workflows** | Read & Write | Trigger and manage GitHub Actions workflows |
|
||||
| Permission | Access Level | Purpose |
|
||||
|---|---|---|
|
||||
| **Contents** | Read & Write | Clone repos, push commits |
|
||||
| **Pull requests** | Read & Write | Open and manage pull requests |
|
||||
| **Issues** | Read & Write | Create and comment on issues |
|
||||
| **Metadata** | Read only | List repositories and basic repo info |
|
||||
| **Workflows** | Read & Write | Trigger and manage GitHub Actions workflows |
|
||||
|
||||
### Step 3: Enter credentials in KiloClaw
|
||||
|
||||
|
||||
@@ -21,20 +21,20 @@ Once setup is complete, your KiloClaw machine will have the following configured
|
||||
- Real-time Gmail push notifications via Google Pub/Sub, so KiloClaw can react to incoming emails sent to the dedicated account without polling
|
||||
- Access to the full range of Google Workspace services:
|
||||
|
||||
| Service | What KiloClaw can do |
|
||||
| --------------------- | ---------------------------- |
|
||||
| **Gmail** | Read, draft, and send emails |
|
||||
| **Google Calendar** | View and manage events |
|
||||
| **Google Drive** | Access and organize files |
|
||||
| **Google Docs** | Read and edit documents |
|
||||
| **Google Sheets** | Read and edit spreadsheets |
|
||||
| **Google Slides** | Read and edit presentations |
|
||||
| **Google Tasks** | View and manage tasks |
|
||||
| **People (Contacts)** | Access contact information |
|
||||
| **Google Forms** | Read and manage forms |
|
||||
| **Google Chat** | Send and read messages |
|
||||
| **Google Classroom** | Access classroom resources |
|
||||
| **Apps Script** | Manage Apps Script projects |
|
||||
| Service | What KiloClaw can do |
|
||||
|---|---|
|
||||
| **Gmail** | Read, draft, and send emails |
|
||||
| **Google Calendar** | View and manage events |
|
||||
| **Google Drive** | Access and organize files |
|
||||
| **Google Docs** | Read and edit documents |
|
||||
| **Google Sheets** | Read and edit spreadsheets |
|
||||
| **Google Slides** | Read and edit presentations |
|
||||
| **Google Tasks** | View and manage tasks |
|
||||
| **People (Contacts)** | Access contact information |
|
||||
| **Google Forms** | Read and manage forms |
|
||||
| **Google Chat** | Send and read messages |
|
||||
| **Google Classroom** | Access classroom resources |
|
||||
| **Apps Script** | Manage Apps Script projects |
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -68,13 +68,13 @@ KiloClaw will automatically use the dedicated account's credentials to fulfill t
|
||||
|
||||
KiloClaw's credentials are tied to its dedicated Google account — not your personal one. To let KiloClaw work with your personal Google data, you need to **share or delegate access from your personal account to the KiloClaw account**:
|
||||
|
||||
| Service | How to share access |
|
||||
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| **Google Calendar** | Share your calendar with the KiloClaw account's email address ([instructions](https://support.google.com/calendar/answer/37082)) |
|
||||
| **Google Drive** | Share specific files or folders with the KiloClaw account's email address |
|
||||
| **Gmail** (Option 1: Delegation) | Set up [Gmail delegation](https://support.google.com/mail/answer/138350) to grant KiloClaw read and write access to your inbox — it can read, draft, and send emails on your behalf |
|
||||
| **Gmail** (Option 2: Forwarding) | Set up [email forwarding](https://support.google.com/mail/answer/10957) so KiloClaw receives its own copy of all incoming emails — it can read them but cannot make any changes to your original inbox |
|
||||
| **Google Docs / Sheets / Slides** | Share individual documents with the KiloClaw account's email address |
|
||||
| Service | How to share access |
|
||||
|---|---|
|
||||
| **Google Calendar** | Share your calendar with the KiloClaw account's email address ([instructions](https://support.google.com/calendar/answer/37082)) |
|
||||
| **Google Drive** | Share specific files or folders with the KiloClaw account's email address |
|
||||
| **Gmail** (Option 1: Delegation) | Set up [Gmail delegation](https://support.google.com/mail/answer/138350) to grant KiloClaw read and write access to your inbox — it can read, draft, and send emails on your behalf |
|
||||
| **Gmail** (Option 2: Forwarding) | Set up [email forwarding](https://support.google.com/mail/answer/10957) so KiloClaw receives its own copy of all incoming emails — it can read them but cannot make any changes to your original inbox |
|
||||
| **Google Docs / Sheets / Slides** | Share individual documents with the KiloClaw account's email address |
|
||||
|
||||
Once access is shared, reference the delegation in your prompts so KiloClaw knows where to look:
|
||||
|
||||
|
||||
@@ -114,11 +114,11 @@ After sending that, redeploy from the dashboard to pick up the changes.
|
||||
|
||||
After OAuth is set up, decide how much access to give your Claw to your personal accounts.
|
||||
|
||||
| Option | What it does | Best for | Configured from |
|
||||
| ----------------------- | --------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------- |
|
||||
| Forward select emails | A Gmail filter forwards specific senders or labels to the bot account | Targeted use cases like newsletter digests | Your personal account |
|
||||
| Forward all email | Forwards your full inbox to the bot | Simpler setups where noise is acceptable | Bot account (destination) |
|
||||
| Full account delegation | Gives the bot direct read/write access to your personal account | Maximum capability | Your personal account — Gmail Settings → Add a delegate |
|
||||
| Option | What it does | Best for | Configured from |
|
||||
|---|---|---|---|
|
||||
| Forward select emails | A Gmail filter forwards specific senders or labels to the bot account | Targeted use cases like newsletter digests | Your personal account |
|
||||
| Forward all email | Forwards your full inbox to the bot | Simpler setups where noise is acceptable | Bot account (destination) |
|
||||
| Full account delegation | Gives the bot direct read/write access to your personal account | Maximum capability | Your personal account — Gmail Settings → Add a delegate |
|
||||
|
||||
{% callout type="info" %}
|
||||
Email forwarding is configured from the **destination** (bot) account. Account delegation is configured from the **source** (personal) account.
|
||||
|
||||
@@ -23,74 +23,74 @@ Packages installed via `apt` do not persist across redeploys. If you need a pack
|
||||
|
||||
The following packages are installed via `apt` on top of the base image:
|
||||
|
||||
| Package | Description |
|
||||
| ----------------- | ----------------------------------------- |
|
||||
| Package | Description |
|
||||
|---|---|
|
||||
| `ca-certificates` | Root CA certificates for TLS verification |
|
||||
| `curl` | HTTP client |
|
||||
| `gnupg` | GPG encryption and signing |
|
||||
| `git` | Version control |
|
||||
| `unzip` | Archive extraction |
|
||||
| `jq` | JSON processor |
|
||||
| `ripgrep` | Fast recursive search (`rg`) |
|
||||
| `rsync` | File synchronization |
|
||||
| `zstd` | Zstandard compression |
|
||||
| `build-essential` | GCC, make, and core build tools |
|
||||
| `python3` | Python 3 interpreter (system default) |
|
||||
| `ffmpeg` | Audio/video processing |
|
||||
| `tmux` | Terminal multiplexer |
|
||||
| `curl` | HTTP client |
|
||||
| `gnupg` | GPG encryption and signing |
|
||||
| `git` | Version control |
|
||||
| `unzip` | Archive extraction |
|
||||
| `jq` | JSON processor |
|
||||
| `ripgrep` | Fast recursive search (`rg`) |
|
||||
| `rsync` | File synchronization |
|
||||
| `zstd` | Zstandard compression |
|
||||
| `build-essential` | GCC, make, and core build tools |
|
||||
| `python3` | Python 3 interpreter (system default) |
|
||||
| `ffmpeg` | Audio/video processing |
|
||||
| `tmux` | Terminal multiplexer |
|
||||
|
||||
## Browser
|
||||
|
||||
| Tool | Description |
|
||||
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Tool | Description |
|
||||
|---|---|
|
||||
| Headless Chromium | Built-in browser for web browsing, screenshots, and CDP automation. Works with OpenClaw's browser tool out of the box. Requires the "full" tool profile. |
|
||||
|
||||
## Languages & Runtimes
|
||||
|
||||
| Language / Runtime | Version | Install Method |
|
||||
| ------------------ | ---------------------------------- | -------------------------------- |
|
||||
| Node.js | 22.13.1 | Binary tarball (primary runtime) |
|
||||
| Go | 1.26.0 | Binary tarball |
|
||||
| Bun | 1.2.4 | Install script |
|
||||
| Python 3 | Unpinned (Debian Bookworm default) | `apt` |
|
||||
| Language / Runtime | Version | Install Method |
|
||||
|---|---|---|
|
||||
| Node.js | 22.13.1 | Binary tarball (primary runtime) |
|
||||
| Go | 1.26.0 | Binary tarball |
|
||||
| Bun | 1.2.4 | Install script |
|
||||
| Python 3 | Unpinned (Debian Bookworm default) | `apt` |
|
||||
|
||||
## Package Managers
|
||||
|
||||
These package managers are available for installing libraries and dependencies:
|
||||
|
||||
| Manager | Included Via |
|
||||
| ------- | -------------------- |
|
||||
| `npm` | Bundled with Node.js |
|
||||
| `pnpm` | Installed via `npm` |
|
||||
| `bun` | Bundled with Bun |
|
||||
| Manager | Included Via |
|
||||
|---|---|
|
||||
| `npm` | Bundled with Node.js |
|
||||
| `pnpm` | Installed via `npm` |
|
||||
| `bun` | Bundled with Bun |
|
||||
|
||||
## CLI Tools
|
||||
|
||||
| Tool | Version / Source |
|
||||
| -------------------- | --------------------------- |
|
||||
| GitHub CLI (`gh`) | Unpinned (GitHub apt repo) |
|
||||
| Tool | Version / Source |
|
||||
|---|---|
|
||||
| GitHub CLI (`gh`) | Unpinned (GitHub apt repo) |
|
||||
| 1Password CLI (`op`) | 2.32.1 (1Password apt repo) |
|
||||
|
||||
## npm Global Packages
|
||||
|
||||
The following packages are installed globally via `npm`:
|
||||
|
||||
| Package | Version |
|
||||
| ----------------------- | -------- |
|
||||
| Package | Version |
|
||||
|---|---|
|
||||
| ClawHub CLI (`clawhub`) | Unpinned |
|
||||
| mcporter | 0.7.3 |
|
||||
| `@steipete/summarize` | 0.11.1 |
|
||||
| mcporter | 0.7.3 |
|
||||
| `@steipete/summarize` | 0.11.1 |
|
||||
|
||||
## OpenClaw Skills & Integrations
|
||||
|
||||
| Tool | Description |
|
||||
| ------------ | --------------------------------------------------------------------- |
|
||||
| Tool | Description |
|
||||
|---|---|
|
||||
| gog (gogcli) | Google Workspace CLI — Gmail, Calendar, Drive, Contacts, Sheets, Docs |
|
||||
| blogwatcher | Monitor blogs and RSS/Atom feeds for updates |
|
||||
| xurl | Authenticated requests to the X (Twitter) API |
|
||||
| gifgrep | Search GIF providers, download results, extract stills |
|
||||
| summarize | Summarize or extract text/transcripts from URLs and files |
|
||||
| goplaces | Location and places lookup |
|
||||
| blogwatcher | Monitor blogs and RSS/Atom feeds for updates |
|
||||
| xurl | Authenticated requests to the X (Twitter) API |
|
||||
| gifgrep | Search GIF providers, download results, extract stills |
|
||||
| summarize | Summarize or extract text/transcripts from URLs and files |
|
||||
| goplaces | Location and places lookup |
|
||||
|
||||
## Installing Additional Tools
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ All triggers are managed from the **Settings** page in the KiloClaw section of t
|
||||
|
||||
## Trigger Types
|
||||
|
||||
| Type | Description |
|
||||
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [**Webhooks**](/docs/kiloclaw/triggers/webhooks) | Receive HTTP requests from external services (GitHub, Stripe, monitoring tools, etc.) and deliver them as chat messages to your agent |
|
||||
| [**Scheduled**](/docs/kiloclaw/triggers/scheduled) | Run tasks on a recurring schedule (e.g. every 15 minutes, daily at 9 AM, weekdays only) |
|
||||
| Type | Description |
|
||||
|---|---|
|
||||
| [**Webhooks**](/docs/kiloclaw/triggers/webhooks) | Receive HTTP requests from external services (GitHub, Stripe, monitoring tools, etc.) and deliver them as chat messages to your agent |
|
||||
| [**Scheduled**](/docs/kiloclaw/triggers/scheduled) | Run tasks on a recurring schedule (e.g. every 15 minutes, daily at 9 AM, weekdays only) |
|
||||
|
||||
## How Triggers Work
|
||||
|
||||
|
||||
@@ -47,12 +47,12 @@ Cron expressions use the standard five-field format:
|
||||
|
||||
**Examples:**
|
||||
|
||||
| Expression | Meaning |
|
||||
| -------------- | ----------------------------------- |
|
||||
| `*/15 * * * *` | Every 15 minutes |
|
||||
| `0 9 * * 1-5` | 9:00 AM on weekdays |
|
||||
| `0 0 1 * *` | Midnight on the first of each month |
|
||||
| `30 14 * * 3` | 2:30 PM every Wednesday |
|
||||
| Expression | Meaning |
|
||||
|---|---|
|
||||
| `*/15 * * * *` | Every 15 minutes |
|
||||
| `0 9 * * 1-5` | 9:00 AM on weekdays |
|
||||
| `0 0 1 * *` | Midnight on the first of each month |
|
||||
| `30 14 * * 3` | 2:30 PM every Wednesday |
|
||||
|
||||
{% callout type="note" title="Minimum interval" %}
|
||||
The minimum interval between scheduled trigger runs is 10 minutes. Schedules more frequent than that are rejected.
|
||||
@@ -74,10 +74,10 @@ Run your scheduled task. Triggered at {{scheduledTime}}.
|
||||
|
||||
**Available variables:**
|
||||
|
||||
| Variable | Description |
|
||||
| ------------------- | ---------------------------------------- |
|
||||
| Variable | Description |
|
||||
|---|---|
|
||||
| `{{scheduledTime}}` | The time the schedule fired (ISO string) |
|
||||
| `{{timestamp}}` | Capture timestamp (ISO string) |
|
||||
| `{{timestamp}}` | Capture timestamp (ISO string) |
|
||||
|
||||
{% callout type="note" title="Webhook variables are not available" %}
|
||||
Since scheduled triggers do not receive an HTTP request, variables like `{{body}}`, `{{bodyJson}}`, `{{headers}}`, `{{method}}`, `{{path}}`, and `{{query}}` are not populated. Use `{{scheduledTime}}` and `{{timestamp}}` instead.
|
||||
|
||||
@@ -41,14 +41,14 @@ You received a webhook event. Here is the payload:
|
||||
|
||||
**Available variables:**
|
||||
|
||||
| Variable | Description |
|
||||
| --------------- | ----------------------------- |
|
||||
| `{{body}}` | Raw request body |
|
||||
| `{{bodyJson}}` | Pretty-printed JSON body |
|
||||
| `{{method}}` | HTTP method (e.g., `POST`) |
|
||||
| `{{headers}}` | Request headers |
|
||||
| `{{path}}` | Request path |
|
||||
| `{{query}}` | Query string parameters |
|
||||
| Variable | Description |
|
||||
|---|---|
|
||||
| `{{body}}` | Raw request body |
|
||||
| `{{bodyJson}}` | Pretty-printed JSON body |
|
||||
| `{{method}}` | HTTP method (e.g., `POST`) |
|
||||
| `{{headers}}` | Request headers |
|
||||
| `{{path}}` | Request path |
|
||||
| `{{query}}` | Query string parameters |
|
||||
| `{{timestamp}}` | Time the webhook was received |
|
||||
|
||||
You can tailor the template to give your agent more context. For example:
|
||||
|
||||
+112
-112
@@ -122,9 +122,9 @@ wired to `FakeSessionRpcApi`, and a set of shared helpers.
|
||||
|
||||
**Two setups:**
|
||||
|
||||
| Setup | When to use |
|
||||
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `val (m, events, modelEvents) = prompted()` | New-session flow — sets app/workspace to ready, creates a controller with no ID, sends an initial prompt. `model.showMessages` is `true`. Start all event-driven tests from here. |
|
||||
| Setup | When to use |
|
||||
|---|---|
|
||||
| `val (m, events, modelEvents) = prompted()` | New-session flow — sets app/workspace to ready, creates a controller with no ID, sends an initial prompt. `model.showMessages` is `true`. Start all event-driven tests from here. |
|
||||
| `controller("ses_test")` + manual `appRpc`/`projectRpc` setup + `flush()` | Existing-session flow — opens a specific session, triggers history load and `recoverPending()`. `model.showMessages` is `false`. Use for recovery and history tests. Pass `show = false` to `assertSession`. |
|
||||
|
||||
**Core assertion helpers:**
|
||||
@@ -163,14 +163,14 @@ flush() // settle coroutines + drain ED
|
||||
|
||||
**`FakeSessionRpcApi` configurable state:**
|
||||
|
||||
| Field | Purpose |
|
||||
| ------------------------------------------------------------------ | ------------------------------------------------------ |
|
||||
| `rpc.events` (`MutableSharedFlow`) | Emit `ChatEventDto` events the controller will receive |
|
||||
| `rpc.statuses` (`MutableStateFlow<Map<String, SessionStatusDto>>`) | Seed the status map read during `recoverPending()` |
|
||||
| `rpc.history` | Messages returned by `messages()` (history load) |
|
||||
| `rpc.pendingPermissionList` | Permissions returned during recovery |
|
||||
| `rpc.pendingQuestionList` | Questions returned during recovery |
|
||||
| `rpc.prompts`, `rpc.permissionReplies`, etc. | Call tracking for RPC side-effects |
|
||||
| Field | Purpose |
|
||||
|---|---|
|
||||
| `rpc.events` (`MutableSharedFlow`) | Emit `ChatEventDto` events the controller will receive |
|
||||
| `rpc.statuses` (`MutableStateFlow<Map<String, SessionStatusDto>>`) | Seed the status map read during `recoverPending()` |
|
||||
| `rpc.history` | Messages returned by `messages()` (history load) |
|
||||
| `rpc.pendingPermissionList` | Permissions returned during recovery |
|
||||
| `rpc.pendingQuestionList` | Questions returned during recovery |
|
||||
| `rpc.prompts`, `rpc.permissionReplies`, etc. | Call tracking for RPC side-effects |
|
||||
|
||||
**String format of `model.toString()`** (used by `assertModel` / `assertSession`):
|
||||
|
||||
@@ -221,11 +221,11 @@ Official references:
|
||||
|
||||
### When to Use What
|
||||
|
||||
| Need | API |
|
||||
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Need | API |
|
||||
|---|---|
|
||||
| Dialogs, settings pages, forms, any layout with components | **Preferred**: [Kotlin UI DSL v2](https://plugins.jetbrains.com/docs/intellij/kotlin-ui-dsl-version-2.html) (`com.intellij.ui.dsl.builder`) |
|
||||
| Tool window panels, action-driven UI, custom components | Standard Swing with IntelliJ Platform component replacements (see below) |
|
||||
| Menus and toolbars | [Action System](https://plugins.jetbrains.com/docs/intellij/action-system.html) |
|
||||
| Tool window panels, action-driven UI, custom components | Standard Swing with IntelliJ Platform component replacements (see below) |
|
||||
| Menus and toolbars | [Action System](https://plugins.jetbrains.com/docs/intellij/action-system.html) |
|
||||
|
||||
### Kotlin UI DSL v2 (Preferred)
|
||||
|
||||
@@ -257,11 +257,11 @@ panel {
|
||||
|
||||
Every row uses one of three layouts. Default is `LABEL_ALIGNED` when a label is provided for the row, `INDEPENDENT` otherwise.
|
||||
|
||||
| Layout | Behavior |
|
||||
| --------------- | ---------------------------------------------------- |
|
||||
| `LABEL_ALIGNED` | Label column + content columns, aligned across rows |
|
||||
| `INDEPENDENT` | All cells are independent, no cross-row alignment |
|
||||
| `PARENT_GRID` | Cells align with the parent grid columns across rows |
|
||||
| Layout | Behavior |
|
||||
|---|---|
|
||||
| `LABEL_ALIGNED` | Label column + content columns, aligned across rows |
|
||||
| `INDEPENDENT` | All cells are independent, no cross-row alignment |
|
||||
| `PARENT_GRID` | Cells align with the parent grid columns across rows |
|
||||
|
||||
```kotlin
|
||||
panel {
|
||||
@@ -290,37 +290,37 @@ panel {
|
||||
|
||||
All cell factory methods available inside `row { }`:
|
||||
|
||||
| Method | Description |
|
||||
| -------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| `checkBox("text")` | Checkbox |
|
||||
| `threeStateCheckBox("text")` | Three-state checkbox |
|
||||
| `radioButton("text", value)` | Radio button (must be inside `buttonsGroup {}`) |
|
||||
| `button("text") {}` | Push button |
|
||||
| `actionButton(action)` | Icon button bound to an `AnAction` |
|
||||
| `actionsButton(action1, action2, ...)` | Dropdown actions button |
|
||||
| `segmentedButton(items) { text = it }` | Segmented control |
|
||||
| `tabbedPaneHeader(items)` | Tab header strip |
|
||||
| `label("text")` | Static label |
|
||||
| `text("html")` | Rich text with links, icons, line-width control |
|
||||
| `link("text") {}` | Focusable clickable link |
|
||||
| `browserLink("text", "url")` | Opens URL in browser |
|
||||
| `dropDownLink("default", listOf(...))` | Dropdown link selector |
|
||||
| `icon(AllIcons.*)` | Icon display |
|
||||
| `contextHelp("description", "title")` | Help icon with popup |
|
||||
| `textField()` | Text input |
|
||||
| `passwordField()` | Password input |
|
||||
| `textFieldWithBrowseButton()` | Text field + browse dialog |
|
||||
| `expandableTextField()` | Expandable multi-line text field |
|
||||
| `extendableTextField()` | Text field with extension icons |
|
||||
| `intTextField(range)` | Integer input with validation |
|
||||
| `spinner(intRange)` / `spinner(doubleRange, step)` | Numeric spinner |
|
||||
| `slider(min, max, minorTick, majorTick)` | Slider (use `.labelTable()` for tick labels) |
|
||||
| `textArea()` | Multi-line text (use `.rows(n)` and `.align(AlignX.FILL)`) |
|
||||
| `comboBox(items)` | Combo box / dropdown |
|
||||
| `comment("text")` | Gray comment text (standalone) |
|
||||
| `cell(component)` | Wrap any arbitrary Swing component |
|
||||
| `scrollCell(component)` | Wrap component in a scroll pane |
|
||||
| `cell()` | Empty placeholder cell for grid alignment |
|
||||
| Method | Description |
|
||||
|---|---|
|
||||
| `checkBox("text")` | Checkbox |
|
||||
| `threeStateCheckBox("text")` | Three-state checkbox |
|
||||
| `radioButton("text", value)` | Radio button (must be inside `buttonsGroup {}`) |
|
||||
| `button("text") {}` | Push button |
|
||||
| `actionButton(action)` | Icon button bound to an `AnAction` |
|
||||
| `actionsButton(action1, action2, ...)` | Dropdown actions button |
|
||||
| `segmentedButton(items) { text = it }` | Segmented control |
|
||||
| `tabbedPaneHeader(items)` | Tab header strip |
|
||||
| `label("text")` | Static label |
|
||||
| `text("html")` | Rich text with links, icons, line-width control |
|
||||
| `link("text") {}` | Focusable clickable link |
|
||||
| `browserLink("text", "url")` | Opens URL in browser |
|
||||
| `dropDownLink("default", listOf(...))` | Dropdown link selector |
|
||||
| `icon(AllIcons.*)` | Icon display |
|
||||
| `contextHelp("description", "title")` | Help icon with popup |
|
||||
| `textField()` | Text input |
|
||||
| `passwordField()` | Password input |
|
||||
| `textFieldWithBrowseButton()` | Text field + browse dialog |
|
||||
| `expandableTextField()` | Expandable multi-line text field |
|
||||
| `extendableTextField()` | Text field with extension icons |
|
||||
| `intTextField(range)` | Integer input with validation |
|
||||
| `spinner(intRange)` / `spinner(doubleRange, step)` | Numeric spinner |
|
||||
| `slider(min, max, minorTick, majorTick)` | Slider (use `.labelTable()` for tick labels) |
|
||||
| `textArea()` | Multi-line text (use `.rows(n)` and `.align(AlignX.FILL)`) |
|
||||
| `comboBox(items)` | Combo box / dropdown |
|
||||
| `comment("text")` | Gray comment text (standalone) |
|
||||
| `cell(component)` | Wrap any arbitrary Swing component |
|
||||
| `scrollCell(component)` | Wrap component in a scroll pane |
|
||||
| `cell()` | Empty placeholder cell for grid alignment |
|
||||
|
||||
Key component examples:
|
||||
|
||||
@@ -384,13 +384,13 @@ Note: when a row contains a `checkBox` or `radioButton`, the DSL automatically i
|
||||
|
||||
Three types of comments, each with different placement and semantics:
|
||||
|
||||
| Type | Method | Placement |
|
||||
| --------------------- | ----------------------------------- | -------------------- |
|
||||
| Cell comment (bottom) | `cell.comment("text")` | Below the cell |
|
||||
| Cell comment (right) | `cell.commentRight("text")` | Right of the cell |
|
||||
| Cell context help | `cell.contextHelp("text", "title")` | Help icon with popup |
|
||||
| Row comment | `row.rowComment("text")` | Below the entire row |
|
||||
| Arbitrary comment | `comment("text")` | Standalone gray text |
|
||||
| Type | Method | Placement |
|
||||
|---|---|---|
|
||||
| Cell comment (bottom) | `cell.comment("text")` | Below the cell |
|
||||
| Cell comment (right) | `cell.commentRight("text")` | Right of the cell |
|
||||
| Cell context help | `cell.contextHelp("text", "title")` | Help icon with popup |
|
||||
| Row comment | `row.rowComment("text")` | Below the entire row |
|
||||
| Arbitrary comment | `comment("text")` | Standalone gray text |
|
||||
|
||||
```kotlin
|
||||
panel {
|
||||
@@ -417,16 +417,16 @@ Comments support HTML with clickable links (pass a lambda for the click handler)
|
||||
|
||||
#### Groups and Structure
|
||||
|
||||
| Method | Grid | Description |
|
||||
| ------------------------------ | ----------- | ---------------------------------------------------------- |
|
||||
| `panel {}` | Own grid | Sub-panel occupying full width |
|
||||
| `rowsRange {}` | Parent grid | Grouped rows sharing parent grid — useful with `enabledIf` |
|
||||
| `group("Title") {}` | Own grid | Titled section with vertical spacing before/after |
|
||||
| `groupRowsRange("Title") {}` | Parent grid | Titled section sharing parent grid alignment |
|
||||
| `collapsibleGroup("Title") {}` | Own grid | Expandable section (Tab-focusable, supports mnemonics) |
|
||||
| `buttonsGroup("Title") {}` | — | Groups `radioButton` or `checkBox` under a title |
|
||||
| `separator()` | — | Horizontal separator line |
|
||||
| Row `panel {}` | Own grid | Sub-panel inside a cell |
|
||||
| Method | Grid | Description |
|
||||
|---|---|---|
|
||||
| `panel {}` | Own grid | Sub-panel occupying full width |
|
||||
| `rowsRange {}` | Parent grid | Grouped rows sharing parent grid — useful with `enabledIf` |
|
||||
| `group("Title") {}` | Own grid | Titled section with vertical spacing before/after |
|
||||
| `groupRowsRange("Title") {}` | Parent grid | Titled section sharing parent grid alignment |
|
||||
| `collapsibleGroup("Title") {}` | Own grid | Expandable section (Tab-focusable, supports mnemonics) |
|
||||
| `buttonsGroup("Title") {}` | — | Groups `radioButton` or `checkBox` under a title |
|
||||
| `separator()` | — | Horizontal separator line |
|
||||
| Row `panel {}` | Own grid | Sub-panel inside a cell |
|
||||
|
||||
```kotlin
|
||||
panel {
|
||||
@@ -534,15 +534,15 @@ panel {
|
||||
|
||||
Bind component values to model properties. Values are applied on `DialogPanel.apply()`, checked with `.isModified()`, and reverted with `.reset()`.
|
||||
|
||||
| Method | Component |
|
||||
| -------------------------------------------- | ------------ |
|
||||
| `bindSelected(model::prop)` | checkBox |
|
||||
| `bindText(model::prop)` | textField |
|
||||
| `bindIntText(model::prop)` | intTextField |
|
||||
| `bindItem(model::prop.toNullableProperty())` | comboBox |
|
||||
| `bindValue(model::prop)` | slider |
|
||||
| `bindIntValue(model::prop)` | spinner |
|
||||
| `buttonsGroup {}.bind(model::prop)` | radio group |
|
||||
| Method | Component |
|
||||
|---|---|
|
||||
| `bindSelected(model::prop)` | checkBox |
|
||||
| `bindText(model::prop)` | textField |
|
||||
| `bindIntText(model::prop)` | intTextField |
|
||||
| `bindItem(model::prop.toNullableProperty())` | comboBox |
|
||||
| `bindValue(model::prop)` | slider |
|
||||
| `bindIntValue(model::prop)` | spinner |
|
||||
| `buttonsGroup {}.bind(model::prop)` | radio group |
|
||||
|
||||
```kotlin
|
||||
enum class Theme { LIGHT, DARK }
|
||||
@@ -609,19 +609,19 @@ Activate validators by calling `dialogPanel.registerValidators(disposable)` afte
|
||||
|
||||
#### Tips and Common Patterns
|
||||
|
||||
| Pattern | Usage |
|
||||
| -------------------------- | --------------------------------------------------------------- |
|
||||
| `.bold()` | Bold text on any cell |
|
||||
| `.columns(COLUMNS_MEDIUM)` | Set preferred width of textField / comboBox / textArea |
|
||||
| `.text("initial")` | Set initial text on text components |
|
||||
| `.resizableColumn()` | Column fills remaining horizontal space |
|
||||
| `cell()` | Empty placeholder cell for grid alignment |
|
||||
| `.widthGroup("name")` | Equalize widths across rows (cannot combine with `AlignX.FILL`) |
|
||||
| `.align(AlignX.FILL)` | Stretch component to fill available width |
|
||||
| `.align(AlignY.TOP)` | Top-align component in its cell |
|
||||
| `.applyToComponent { }` | Direct access to the underlying Swing component |
|
||||
| `.selected(true)` | Default-select a radioButton when no bound value matches |
|
||||
| `.gap(RightGap.COLUMNS)` | Column-level gap for multi-column layouts |
|
||||
| Pattern | Usage |
|
||||
|---|---|
|
||||
| `.bold()` | Bold text on any cell |
|
||||
| `.columns(COLUMNS_MEDIUM)` | Set preferred width of textField / comboBox / textArea |
|
||||
| `.text("initial")` | Set initial text on text components |
|
||||
| `.resizableColumn()` | Column fills remaining horizontal space |
|
||||
| `cell()` | Empty placeholder cell for grid alignment |
|
||||
| `.widthGroup("name")` | Equalize widths across rows (cannot combine with `AlignX.FILL`) |
|
||||
| `.align(AlignX.FILL)` | Stretch component to fill available width |
|
||||
| `.align(AlignY.TOP)` | Top-align component in its cell |
|
||||
| `.applyToComponent { }` | Direct access to the underlying Swing component |
|
||||
| `.selected(true)` | Default-select a radioButton when no bound value matches |
|
||||
| `.gap(RightGap.COLUMNS)` | Column-level gap for multi-column layouts |
|
||||
|
||||
```kotlin
|
||||
panel {
|
||||
@@ -663,33 +663,33 @@ panel {
|
||||
|
||||
### Platform Components — Always Use Instead of Raw Swing
|
||||
|
||||
| Instead of | Use | Package |
|
||||
| --------------------- | ---------------------- | ------------------------------- |
|
||||
| `JLabel` | `JBLabel` | `com.intellij.ui.components` |
|
||||
| `JTextField` | `JBTextField` | `com.intellij.ui.components` |
|
||||
| `JTextArea` | `JBTextArea` | `com.intellij.ui.components` |
|
||||
| `JList` | `JBList` | `com.intellij.ui.components` |
|
||||
| `JScrollPane` | `JBScrollPane` | `com.intellij.ui.components` |
|
||||
| `JTable` | `JBTable` | `com.intellij.ui.table` |
|
||||
| `JTree` | `Tree` | `com.intellij.ui.treeStructure` |
|
||||
| `JSplitPane` | `JBSplitter` | `com.intellij.ui` |
|
||||
| `JTabbedPane` | `JBTabs` | `com.intellij.ui.tabs` |
|
||||
| `JCheckBox` | `JBCheckBox` | `com.intellij.ui.components` |
|
||||
| `Color` | `JBColor` | `com.intellij.ui` |
|
||||
| `EmptyBorder` | `JBUI.Borders.empty()` | `com.intellij.util.ui` |
|
||||
| Hardcoded pixel sizes | `JBUI.scale(px)` | `com.intellij.util.ui` |
|
||||
| Instead of | Use | Package |
|
||||
|---|---|---|
|
||||
| `JLabel` | `JBLabel` | `com.intellij.ui.components` |
|
||||
| `JTextField` | `JBTextField` | `com.intellij.ui.components` |
|
||||
| `JTextArea` | `JBTextArea` | `com.intellij.ui.components` |
|
||||
| `JList` | `JBList` | `com.intellij.ui.components` |
|
||||
| `JScrollPane` | `JBScrollPane` | `com.intellij.ui.components` |
|
||||
| `JTable` | `JBTable` | `com.intellij.ui.table` |
|
||||
| `JTree` | `Tree` | `com.intellij.ui.treeStructure` |
|
||||
| `JSplitPane` | `JBSplitter` | `com.intellij.ui` |
|
||||
| `JTabbedPane` | `JBTabs` | `com.intellij.ui.tabs` |
|
||||
| `JCheckBox` | `JBCheckBox` | `com.intellij.ui.components` |
|
||||
| `Color` | `JBColor` | `com.intellij.ui` |
|
||||
| `EmptyBorder` | `JBUI.Borders.empty()` | `com.intellij.util.ui` |
|
||||
| Hardcoded pixel sizes | `JBUI.scale(px)` | `com.intellij.util.ui` |
|
||||
|
||||
Inspection `Plugin DevKit | Code | Undesirable class usage` highlights when you use raw Swing where a platform replacement exists.
|
||||
|
||||
### Multi-line and Rich Text
|
||||
|
||||
| Need | Component |
|
||||
| ----------------------------------------------------- | ------------------------------------------------------ |
|
||||
| Rich HTML with modern CSS, icons, shortcuts | `JBHtmlPane` (`com.intellij.ui.components.JBHtmlPane`) |
|
||||
| Simple multi-line label with HTML | `JBLabel` + `XmlStringUtil.wrapInHtml()` |
|
||||
| Scrollable / wrapping HTML panel | `SwingHelper.createHtmlViewer()` |
|
||||
| High-perf colored text fragments (trees/lists/tables) | `SimpleColoredComponent` |
|
||||
| Plain-text newline splitting | `MultiLineLabel` — legacy, do not use in new code |
|
||||
| Need | Component |
|
||||
|---|---|
|
||||
| Rich HTML with modern CSS, icons, shortcuts | `JBHtmlPane` (`com.intellij.ui.components.JBHtmlPane`) |
|
||||
| Simple multi-line label with HTML | `JBLabel` + `XmlStringUtil.wrapInHtml()` |
|
||||
| Scrollable / wrapping HTML panel | `SwingHelper.createHtmlViewer()` |
|
||||
| High-perf colored text fragments (trees/lists/tables) | `SimpleColoredComponent` |
|
||||
| Plain-text newline splitting | `MultiLineLabel` — legacy, do not use in new code |
|
||||
|
||||
- Build HTML programmatically with `HtmlChunk`/`HtmlBuilder` (`com.intellij.openapi.util.text.HtmlChunk`). Avoid raw HTML string concatenation — it risks injection and breaks localization.
|
||||
- For simple wrapping/escaping: `XmlStringUtil.wrapInHtml(content)`, `XmlStringUtil.wrapInHtmlLines(lines...)`, `XmlStringUtil.escapeString(text)`.
|
||||
|
||||
@@ -26,38 +26,38 @@ Every client spawns or connects to a `kilo serve` process and communicates via H
|
||||
└──────────┘ └─────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
| Product | Package | What it is | How it uses the CLI |
|
||||
| -------------------------- | -------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------------- |
|
||||
| Kilo CLI (TUI) | `packages/opencode/` | Interactive terminal UI (SolidJS + OpenTUI) | In-process — TUI and server run together |
|
||||
| Kilo CLI (`kilo run`) | `packages/opencode/` | Non-interactive headless mode for scripting | In-process — no network socket |
|
||||
| **Kilo VS Code Extension** | **`packages/kilo-vscode/`** | VS Code extension with sidebar chat + Agent Manager | Bundles CLI binary, spawns `kilo serve --port 0` as child process |
|
||||
| OpenCode Desktop | `packages/desktop/` | Standalone native app (Tauri) | Bundles CLI binary as sidecar, spawns `kilo serve` |
|
||||
| OpenCode Web (`kilo web`) | `packages/opencode/` + `packages/app/` | Browser-based UI | CLI starts server + opens browser |
|
||||
| Product | Package | What it is | How it uses the CLI |
|
||||
|---|---|---|---|
|
||||
| Kilo CLI (TUI) | `packages/opencode/` | Interactive terminal UI (SolidJS + OpenTUI) | In-process — TUI and server run together |
|
||||
| Kilo CLI (`kilo run`) | `packages/opencode/` | Non-interactive headless mode for scripting | In-process — no network socket |
|
||||
| **Kilo VS Code Extension** | **`packages/kilo-vscode/`** | VS Code extension with sidebar chat + Agent Manager | Bundles CLI binary, spawns `kilo serve --port 0` as child process |
|
||||
| OpenCode Desktop | `packages/desktop/` | Standalone native app (Tauri) | Bundles CLI binary as sidecar, spawns `kilo serve` |
|
||||
| OpenCode Web (`kilo web`) | `packages/opencode/` + `packages/app/` | Browser-based UI | CLI starts server + opens browser |
|
||||
|
||||
**OpenCode Desktop** (`packages/desktop/`) and `kilo web` both render the shared `@opencode-ai/app` SolidJS frontend (`packages/app/`). They differ only in the platform layer (Tauri native APIs vs browser APIs). Neither has any relationship to this extension or the Agent Manager — they are independent clients of the same `kilo serve` backend.
|
||||
|
||||
### Kilo-Domain Packages
|
||||
|
||||
| Package | Name | Role |
|
||||
| -------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `packages/kilo-vscode/` | `kilo-code` | **This package.** VS Code extension. |
|
||||
| `packages/kilo-gateway/` | `@kilocode/kilo-gateway` | Auth (device flow), AI provider routing (OpenRouter), Kilo API integration (profile, balance, teams) |
|
||||
| `packages/kilo-ui/` | `@kilocode/kilo-ui` | SolidJS component library (40+ components, built on `@kobalte/core`). Shared by this extension's webview and `packages/app/` |
|
||||
| `packages/kilo-telemetry/` | `@kilocode/kilo-telemetry` | PostHog analytics + OpenTelemetry tracing for the CLI |
|
||||
| `packages/kilo-i18n/` | `@kilocode/kilo-i18n` | Translation strings (16 languages) |
|
||||
| `packages/kilo-docs/` | `@kilocode/kilo-docs` | Documentation site (Next.js + Markdoc) |
|
||||
| Package | Name | Role |
|
||||
|---|---|---|
|
||||
| `packages/kilo-vscode/` | `kilo-code` | **This package.** VS Code extension. |
|
||||
| `packages/kilo-gateway/` | `@kilocode/kilo-gateway` | Auth (device flow), AI provider routing (OpenRouter), Kilo API integration (profile, balance, teams) |
|
||||
| `packages/kilo-ui/` | `@kilocode/kilo-ui` | SolidJS component library (40+ components, built on `@kobalte/core`). Shared by this extension's webview and `packages/app/` |
|
||||
| `packages/kilo-telemetry/` | `@kilocode/kilo-telemetry` | PostHog analytics + OpenTelemetry tracing for the CLI |
|
||||
| `packages/kilo-i18n/` | `@kilocode/kilo-i18n` | Translation strings (16 languages) |
|
||||
| `packages/kilo-docs/` | `@kilocode/kilo-docs` | Documentation site (Next.js + Markdoc) |
|
||||
|
||||
### Upstream OpenCode Packages (not Kilo-specific)
|
||||
|
||||
| Package | Name | Role |
|
||||
| -------------------- | ---------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| `packages/opencode/` | `@kilocode/cli` | Core CLI — forked from upstream OpenCode. AI agents, tools, sessions, server. |
|
||||
| `packages/sdk/js/` | `@kilocode/sdk` | Auto-generated TypeScript SDK client for the server API. Do not edit `src/gen/` by hand. |
|
||||
| `packages/app/` | `@opencode-ai/app` | Shared SolidJS web UI consumed by desktop app and `kilo web` |
|
||||
| `packages/desktop/` | `@opencode-ai/desktop` | Tauri desktop app shell |
|
||||
| `packages/ui/` | `@opencode-ai/ui` | Shared UI primitives |
|
||||
| `packages/util/` | `@opencode-ai/util` | Shared utilities (error, path, retry, slug) |
|
||||
| `packages/plugin/` | `@kilocode/plugin` | Plugin/tool interface definitions |
|
||||
| Package | Name | Role |
|
||||
|---|---|---|
|
||||
| `packages/opencode/` | `@kilocode/cli` | Core CLI — forked from upstream OpenCode. AI agents, tools, sessions, server. |
|
||||
| `packages/sdk/js/` | `@kilocode/sdk` | Auto-generated TypeScript SDK client for the server API. Do not edit `src/gen/` by hand. |
|
||||
| `packages/app/` | `@opencode-ai/app` | Shared SolidJS web UI consumed by desktop app and `kilo web` |
|
||||
| `packages/desktop/` | `@opencode-ai/desktop` | Tauri desktop app shell |
|
||||
| `packages/ui/` | `@opencode-ai/ui` | Shared UI primitives |
|
||||
| `packages/util/` | `@opencode-ai/util` | Shared utilities (error, path, retry, slug) |
|
||||
| `packages/plugin/` | `@kilocode/plugin` | Plugin/tool interface definitions |
|
||||
|
||||
## Commands
|
||||
|
||||
@@ -155,15 +155,15 @@ The Agent Manager is a feature within this extension (not a separate product). I
|
||||
|
||||
### How It Differs From the Sidebar
|
||||
|
||||
| Aspect | Sidebar | Agent Manager |
|
||||
| ------------- | -------------------------- | --------------------------------------------------- |
|
||||
| Location | Activity bar sidebar panel | Editor tab (full panel) |
|
||||
| Sessions | Single session at a time | Multiple parallel sessions with tabbed UI |
|
||||
| Git isolation | Uses workspace root | Each session can get its own worktree branch |
|
||||
| State | No dedicated state file | `.kilo/agent-manager.json` |
|
||||
| Terminals | None | Dedicated VS Code terminal per session |
|
||||
| Setup scripts | None | Configurable `.kilo/setup-script` runs per worktree |
|
||||
| Multi-version | Not supported | Up to 4 parallel worktrees with the same prompt |
|
||||
| Aspect | Sidebar | Agent Manager |
|
||||
|---|---|---|
|
||||
| Location | Activity bar sidebar panel | Editor tab (full panel) |
|
||||
| Sessions | Single session at a time | Multiple parallel sessions with tabbed UI |
|
||||
| Git isolation | Uses workspace root | Each session can get its own worktree branch |
|
||||
| State | No dedicated state file | `.kilo/agent-manager.json` |
|
||||
| Terminals | None | Dedicated VS Code terminal per session |
|
||||
| Setup scripts | None | Configurable `.kilo/setup-script` runs per worktree |
|
||||
| Multi-version | Not supported | Up to 4 parallel worktrees with the same prompt |
|
||||
|
||||
### Architecture
|
||||
|
||||
|
||||
@@ -6,33 +6,33 @@ The legacy MCP Servers sub-tab (842 lines) had full server lifecycle management.
|
||||
|
||||
## Side-by-Side Comparison
|
||||
|
||||
| Feature | Legacy | New |
|
||||
| ----------------------- | -------------------------------- | ------------------------------------------------------------- |
|
||||
| View server list | Name + source badge + status dot | Name + command/URL |
|
||||
| Add server | Via edit config file buttons | Not available |
|
||||
| Remove server | Delete button + confirmation | Remove button + confirmation |
|
||||
| Edit server config | Via edit config file buttons | Not available |
|
||||
| Connection status | Colored dot (green/yellow/red) | Live status display |
|
||||
| Enable/disable toggle | `ToggleSwitch` per server | Connect/disconnect toggle |
|
||||
| Restart/refresh | Per-server refresh button | Not available |
|
||||
| Refresh all | "Refresh All MCP Servers" button | Not available |
|
||||
| Edit Global MCP config | Button to open file | Not available |
|
||||
| Edit Project MCP config | Button to open file | Not available |
|
||||
| Network timeout | Per-server dropdown (15s–60min) | Not available |
|
||||
| Server source badge | Shows "global" / "project" | Not displayed |
|
||||
| Empty state | N/A | "No MCP servers configured. Edit the opencode config file..." |
|
||||
| Feature | Legacy | New |
|
||||
|---|---|---|
|
||||
| View server list | Name + source badge + status dot | Name + command/URL |
|
||||
| Add server | Via edit config file buttons | Not available |
|
||||
| Remove server | Delete button + confirmation | Remove button + confirmation |
|
||||
| Edit server config | Via edit config file buttons | Not available |
|
||||
| Connection status | Colored dot (green/yellow/red) | Live status display |
|
||||
| Enable/disable toggle | `ToggleSwitch` per server | Connect/disconnect toggle |
|
||||
| Restart/refresh | Per-server refresh button | Not available |
|
||||
| Refresh all | "Refresh All MCP Servers" button | Not available |
|
||||
| Edit Global MCP config | Button to open file | Not available |
|
||||
| Edit Project MCP config | Button to open file | Not available |
|
||||
| Network timeout | Per-server dropdown (15s–60min) | Not available |
|
||||
| Server source badge | Shows "global" / "project" | Not displayed |
|
||||
| Empty state | N/A | "No MCP servers configured. Edit the opencode config file..." |
|
||||
|
||||
### Expandable Server Detail (Legacy Only)
|
||||
|
||||
When a server was connected and enabled, expanding it showed 5 tabs:
|
||||
|
||||
| Tab | Content |
|
||||
| ------------ | --------------------------------------------------------------------- |
|
||||
| Tools | List of MCP tools with tool count |
|
||||
| Resources | List of resources + resource templates with count |
|
||||
| Instructions | Server-provided instruction text (if present) |
|
||||
| Logs | Error/log entries sorted by timestamp with count |
|
||||
| Auth | OAuth debug info: auth status, token expiration, scopes, refresh info |
|
||||
| Tab | Content |
|
||||
|---|---|
|
||||
| Tools | List of MCP tools with tool count |
|
||||
| Resources | List of resources + resource templates with count |
|
||||
| Instructions | Server-provided instruction text (if present) |
|
||||
| Logs | Error/log entries sorted by timestamp with count |
|
||||
| Auth | OAuth debug info: auth status, token expiration, scopes, refresh info |
|
||||
|
||||
The new extension has none of this expandable detail.
|
||||
|
||||
|
||||
@@ -8,68 +8,68 @@ The legacy "Modes" sub-tab was a 1794-line component with comprehensive mode man
|
||||
|
||||
### Mode/Agent CRUD
|
||||
|
||||
| Feature | Legacy (Modes) | New (Agents) |
|
||||
| ------------------------ | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
||||
| View modes/agents list | List with name + slug | Interactive clickable list with name + description + "custom" badges |
|
||||
| Select mode to configure | Popover/Command searchable combobox | Click-to-edit in agent list |
|
||||
| Create new mode | Full dialog: name, slug, save location, role definition, description, when-to-use, tool groups, custom instructions | "Create New Mode" button with form: name (validated), description, system prompt |
|
||||
| Delete custom mode | Confirmation dialog | Delete button with confirmation dialog |
|
||||
| Rename custom mode | Inline text field with save/cancel | Not available — name is immutable after creation |
|
||||
| Export mode | Export to file button | Not available |
|
||||
| Import mode | Import dialog (project/global) | Not available (marketplace handles this) |
|
||||
| Edit modes config (JSON) | Dropdown: "Edit Global Modes" / "Edit Project Modes" | Not available |
|
||||
| Marketplace button | Opens mode marketplace | Not available |
|
||||
| Feature | Legacy (Modes) | New (Agents) |
|
||||
|---|---|---|
|
||||
| View modes/agents list | List with name + slug | Interactive clickable list with name + description + "custom" badges |
|
||||
| Select mode to configure | Popover/Command searchable combobox | Click-to-edit in agent list |
|
||||
| Create new mode | Full dialog: name, slug, save location, role definition, description, when-to-use, tool groups, custom instructions | "Create New Mode" button with form: name (validated), description, system prompt |
|
||||
| Delete custom mode | Confirmation dialog | Delete button with confirmation dialog |
|
||||
| Rename custom mode | Inline text field with save/cancel | Not available — name is immutable after creation |
|
||||
| Export mode | Export to file button | Not available |
|
||||
| Import mode | Import dialog (project/global) | Not available (marketplace handles this) |
|
||||
| Edit modes config (JSON) | Dropdown: "Edit Global Modes" / "Edit Project Modes" | Not available |
|
||||
| Marketplace button | Opens mode marketplace | Not available |
|
||||
|
||||
### Per-Mode/Agent Settings
|
||||
|
||||
| Setting | Legacy | New |
|
||||
| ------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------- |
|
||||
| API Configuration (provider profile) | `<Select>` dropdown of all API config profiles | Not applicable (CLI uses per-agent `model` instead of profiles) |
|
||||
| Role Definition / System Prompt | `<TextArea>` (5 rows) + reset button for built-ins | Multiline auto-resizing textarea (edit view for custom; prompt override for built-in) |
|
||||
| Description | `<TextField>` + reset button | Editable text field in edit view |
|
||||
| When to Use | `<TextArea>` (4 rows) + reset button | Not available |
|
||||
| Tools (tool groups) | Checkbox grid per group, file regex restrictions | Not applicable (CLI uses permission-based tool control) |
|
||||
| Custom Instructions (per-mode) | `<TextArea>` (10 rows) + link to `.kilocode/rules-{slug}/rules.md` | Not available as separate field (merged into system prompt) |
|
||||
| Temperature | Not in legacy Modes sub-tab (was in provider profile) | `<TextField>` per agent |
|
||||
| Top P | Not in legacy Modes sub-tab | `<TextField>` per agent |
|
||||
| Max Steps | Not in legacy Modes sub-tab | `<TextField>` per agent |
|
||||
| Model Override | Not in legacy Modes sub-tab (was via API config) | `<TextField>` per agent |
|
||||
| Setting | Legacy | New |
|
||||
|---|---|---|
|
||||
| API Configuration (provider profile) | `<Select>` dropdown of all API config profiles | Not applicable (CLI uses per-agent `model` instead of profiles) |
|
||||
| Role Definition / System Prompt | `<TextArea>` (5 rows) + reset button for built-ins | Multiline auto-resizing textarea (edit view for custom; prompt override for built-in) |
|
||||
| Description | `<TextField>` + reset button | Editable text field in edit view |
|
||||
| When to Use | `<TextArea>` (4 rows) + reset button | Not available |
|
||||
| Tools (tool groups) | Checkbox grid per group, file regex restrictions | Not applicable (CLI uses permission-based tool control) |
|
||||
| Custom Instructions (per-mode) | `<TextArea>` (10 rows) + link to `.kilocode/rules-{slug}/rules.md` | Not available as separate field (merged into system prompt) |
|
||||
| Temperature | Not in legacy Modes sub-tab (was in provider profile) | `<TextField>` per agent |
|
||||
| Top P | Not in legacy Modes sub-tab | `<TextField>` per agent |
|
||||
| Max Steps | Not in legacy Modes sub-tab | `<TextField>` per agent |
|
||||
| Model Override | Not in legacy Modes sub-tab (was via API config) | `<TextField>` per agent |
|
||||
|
||||
### System Prompt Features
|
||||
|
||||
| Feature | Legacy | New |
|
||||
| ---------------------- | ----------------------------------------------------------------- | ------------- |
|
||||
| Preview System Prompt | Button to view full rendered prompt in slide-out panel | Not available |
|
||||
| Copy System Prompt | Clipboard button | Not available |
|
||||
| Feature | Legacy | New |
|
||||
|---|---|---|
|
||||
| Preview System Prompt | Button to view full rendered prompt in slide-out panel | Not available |
|
||||
| Copy System Prompt | Clipboard button | Not available |
|
||||
| Override System Prompt | Advanced disclosure with link to `.kilocode/system-prompt-{slug}` | Not available |
|
||||
|
||||
### Global Custom Instructions
|
||||
|
||||
| Feature | Legacy | New |
|
||||
| -------------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------- |
|
||||
| Feature | Legacy | New |
|
||||
|---|---|---|
|
||||
| Global Custom Instructions field | `<TextArea>` (4 rows) inside Modes sub-tab | Not available in Agents sub-tab (Rules sub-tab has instruction file paths instead) |
|
||||
| Link to global rules file | Link to `.kilocode/rules/rules.md` | Not available |
|
||||
| Link to global rules file | Link to `.kilocode/rules/rules.md` | Not available |
|
||||
|
||||
### Organization Features
|
||||
|
||||
| Feature | Legacy | New |
|
||||
| ------------------------- | ------------------------------------------------- | ------------- |
|
||||
| Share modes banner | `KiloShareModesBanner` component | Not available |
|
||||
| Feature | Legacy | New |
|
||||
|---|---|---|
|
||||
| Share modes banner | `KiloShareModesBanner` component | Not available |
|
||||
| Organization mode warning | Warning when mode has `source === "organization"` | Not available |
|
||||
|
||||
### CLI Agent Fields Not Exposed
|
||||
|
||||
These are CLI capabilities beyond what the legacy had:
|
||||
|
||||
| CLI Field | Type | Description |
|
||||
| ------------------------ | ------------------------------ | ---------------------------------------------------- |
|
||||
| `agent[name].variant` | string | Default thinking/reasoning variant (low/medium/high) |
|
||||
| `agent[name].permission` | Permission | Per-agent tool permission overrides |
|
||||
| `agent[name].hidden` | boolean | Hide agent from mode switcher |
|
||||
| `agent[name].disable` | boolean | Fully disable agent |
|
||||
| `agent[name].mode` | "subagent" / "primary" / "all" | Agent visibility context |
|
||||
| `agent[name].color` | string | Agent identification color |
|
||||
| `agent[name].options` | Record | Arbitrary key-value config |
|
||||
| CLI Field | Type | Description |
|
||||
|---|---|---|
|
||||
| `agent[name].variant` | string | Default thinking/reasoning variant (low/medium/high) |
|
||||
| `agent[name].permission` | Permission | Per-agent tool permission overrides |
|
||||
| `agent[name].hidden` | boolean | Hide agent from mode switcher |
|
||||
| `agent[name].disable` | boolean | Fully disable agent |
|
||||
| `agent[name].mode` | "subagent" / "primary" / "all" | Agent visibility context |
|
||||
| `agent[name].color` | string | Agent identification color |
|
||||
| `agent[name].options` | Record | Arbitrary key-value config |
|
||||
|
||||
## Remaining Work
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@ The legacy extension had feature-complete Rules and Workflows sub-tabs with togg
|
||||
|
||||
## Rules Sub-Tab Comparison
|
||||
|
||||
| Feature | Legacy | New |
|
||||
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
|
||||
| Description text + docs link | Yes | No |
|
||||
| Global rules section | Toggle list of global rule files | Not separated — single flat list of instruction file paths |
|
||||
| Workspace rules section | Toggle list of workspace rule files | Same flat list |
|
||||
| Per-rule enable/disable toggle | `ToggleSwitch` per rule file | Not available — paths are either in the list or removed |
|
||||
| Create new rule file | Input field with validation (.md, .txt, or no extension) per section | Not available |
|
||||
| Add instruction file path | Not available (auto-discovered from filesystem) | `TextField` + "Add" button |
|
||||
| Rule source discovery | Auto-discovers from `.kilocode/rules/`, `.kilocoderules`, `.roorules`, `.clinerules`, mode-specific dirs, `AGENTS.md` | Only shows explicitly configured paths in `config.instructions` |
|
||||
| Feature | Legacy | New |
|
||||
|---|---|---|
|
||||
| Description text + docs link | Yes | No |
|
||||
| Global rules section | Toggle list of global rule files | Not separated — single flat list of instruction file paths |
|
||||
| Workspace rules section | Toggle list of workspace rule files | Same flat list |
|
||||
| Per-rule enable/disable toggle | `ToggleSwitch` per rule file | Not available — paths are either in the list or removed |
|
||||
| Create new rule file | Input field with validation (.md, .txt, or no extension) per section | Not available |
|
||||
| Add instruction file path | Not available (auto-discovered from filesystem) | `TextField` + "Add" button |
|
||||
| Rule source discovery | Auto-discovers from `.kilocode/rules/`, `.kilocoderules`, `.roorules`, `.clinerules`, mode-specific dirs, `AGENTS.md` | Only shows explicitly configured paths in `config.instructions` |
|
||||
|
||||
### Key Architectural Difference
|
||||
|
||||
@@ -22,14 +22,14 @@ The legacy extension auto-discovered rule files from well-known filesystem locat
|
||||
|
||||
## Workflows Sub-Tab Comparison
|
||||
|
||||
| Feature | Legacy | New |
|
||||
| ---------------------------------- | --------------------------------------- | ----------------------------------------- |
|
||||
| Description text + docs link | Yes | Placeholder: "Not yet implemented." |
|
||||
| Global workflows section | Toggle list of global workflow files | Not available |
|
||||
| Workspace workflows section | Toggle list of workspace workflow files | Not available |
|
||||
| Per-workflow enable/disable toggle | `ToggleSwitch` per workflow file | Not available |
|
||||
| Create new workflow file | Input field per section | Not available |
|
||||
| Invoke workflow | Type `/workflow-name` in chat | CLI has custom commands (similar concept) |
|
||||
| Feature | Legacy | New |
|
||||
|---|---|---|
|
||||
| Description text + docs link | Yes | Placeholder: "Not yet implemented." |
|
||||
| Global workflows section | Toggle list of global workflow files | Not available |
|
||||
| Workspace workflows section | Toggle list of workspace workflow files | Not available |
|
||||
| Per-workflow enable/disable toggle | `ToggleSwitch` per workflow file | Not available |
|
||||
| Create new workflow file | Input field per section | Not available |
|
||||
| Invoke workflow | Type `/workflow-name` in chat | CLI has custom commands (similar concept) |
|
||||
|
||||
## Remaining Work
|
||||
|
||||
|
||||
@@ -10,35 +10,35 @@ This document tracks remaining work needed for feature parity with the old exten
|
||||
|
||||
## Chat UI Feature Parity
|
||||
|
||||
| Feature | Remaining Work | Backend | Priority |
|
||||
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------ | -------- |
|
||||
| [Browser Session Controls](chat-ui-features/browser-session-controls.md) | In-chat browser controls, action replay, screenshot viewing | CLI-side (if browser tool exists) + webview | P3 |
|
||||
| [Checkpoint & Task Management](chat-ui-features/checkpoint-task-management.md) | Checkpoint restore UI, navigation, diff viewing, "See New Changes" buttons | CLI session undo/redo/fork + extension git integration | P1 |
|
||||
| [Mermaid Diagram Features](chat-ui-features/mermaid-diagram-features.md) | Mermaid rendering, "Fix with AI" button, copy, open-as-PNG | Webview-only (rendering); CLI for "Fix with AI" | P2 |
|
||||
| [Message Editing & Management](chat-ui-features/message-editing-management.md) | Inline editing, deletion, timestamp display, redo-previous-message (up-arrow) | CLI session fork/undo for edit semantics | P1 |
|
||||
| [Special Content Types](chat-ui-features/special-content-types.md) | Copy button on error cards, dedicated MCP tool/resource rows, open-markdown-preview button | Mixed: CLI for MCP data; webview for rendering | P1 |
|
||||
| Feature | Remaining Work | Backend | Priority |
|
||||
|---|---|---|---|
|
||||
| [Browser Session Controls](chat-ui-features/browser-session-controls.md) | In-chat browser controls, action replay, screenshot viewing | CLI-side (if browser tool exists) + webview | P3 |
|
||||
| [Checkpoint & Task Management](chat-ui-features/checkpoint-task-management.md) | Checkpoint restore UI, navigation, diff viewing, "See New Changes" buttons | CLI session undo/redo/fork + extension git integration | P1 |
|
||||
| [Mermaid Diagram Features](chat-ui-features/mermaid-diagram-features.md) | Mermaid rendering, "Fix with AI" button, copy, open-as-PNG | Webview-only (rendering); CLI for "Fix with AI" | P2 |
|
||||
| [Message Editing & Management](chat-ui-features/message-editing-management.md) | Inline editing, deletion, timestamp display, redo-previous-message (up-arrow) | CLI session fork/undo for edit semantics | P1 |
|
||||
| [Special Content Types](chat-ui-features/special-content-types.md) | Copy button on error cards, dedicated MCP tool/resource rows, open-markdown-preview button | Mixed: CLI for MCP data; webview for rendering | P1 |
|
||||
|
||||
---
|
||||
|
||||
## Non-Agent Feature Parity
|
||||
|
||||
| Feature | Remaining Work | Backend | Priority |
|
||||
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------- | -------- |
|
||||
| [Authentication & Enterprise](non-agent-features/authentication-organization-enterprise-enforcement.md) | Org feature flags, MDM policy enforcement | CLI handles its auth; extension handles org/MDM | P1 |
|
||||
| [Auto-Purge](non-agent-features/auto-purge.md) | Scheduled cleanup of old session/task storage | Extension-side (storage ownership TBD) | P3 |
|
||||
| [Cloud Task Support](non-agent-features/cloud-task-support.md) | Upload local sessions to cloud, real-time sync, conflict resolution | Kilo cloud API + CLI; extension provides UI | P2 |
|
||||
| [Code Reviews](non-agent-features/code-reviews.md) | Local review mode, automated AI review of uncommitted/branch changes | CLI (partial); extension for VS Code review UX | P2 |
|
||||
| [Codebase Indexing & Semantic Search](non-agent-features/codebase-indexing-semantic-search.md) | Vector indexing, semantic search, embeddings infrastructure | CLI has grep/glob endpoints; semantic indexing is extension or cloud | P2 |
|
||||
| [Contribution Tracking](non-agent-features/contribution-tracking.md) | AI attribution tracking, line fingerprinting, reporting | Extension-side | P3 |
|
||||
| [Custom Commands](non-agent-features/custom-command-system.md) | Slash command system, project-level command discovery, YAML frontmatter support | CLI has custom commands; extension provides UI entry points | P2 |
|
||||
| [Marketplace](non-agent-features/marketplace.md) | Catalog, install, update capabilities (toolbar button exists but renders a stub) | Extension-side | P2 |
|
||||
| [MCP & MCP Hub](non-agent-features/mcp-and-mcp-hub.md) | MCP configuration UI (add/edit/delete servers), tool allowlisting | CLI owns MCP lifecycle; extension provides config UI | P1 |
|
||||
| [Repository Initialization](non-agent-features/repository-initialization.md) | /init command support for setting up agentic engineering | CLI /init endpoint; extension provides UI trigger | P3 |
|
||||
| [Rules & Workflows](non-agent-features/rules-and-workflows.md) | Workflow management UI (rules subtab exists, workflows subtab is a stub) | CLI owns rules runtime; extension provides management UI | P3 |
|
||||
| [Settings Sync](non-agent-features/settings-sync-integration.md) | VS Code Settings Sync allowlist registration | Extension-side (VS Code API) | P3 |
|
||||
| [Settings UI](non-agent-features/settings-ui.md) | Terminal and Prompts tabs (show "Not implemented"), Workflows subtab stub | CLI exposes config; extension provides settings forms | P1 |
|
||||
| [Skills System](non-agent-features/skills-system.md) | Skill execution, discovery, hot-reload (config UI for paths/URLs exists) | CLI has skills runtime; extension provides packaging/UI | P2 |
|
||||
| [Speech-to-Text](non-agent-features/speech-to-text.md) | Voice input, streaming STT | Webview (mic capture); CLI-compatible STT optional | P3 |
|
||||
| Feature | Remaining Work | Backend | Priority |
|
||||
|---|---|---|---|
|
||||
| [Authentication & Enterprise](non-agent-features/authentication-organization-enterprise-enforcement.md) | Org feature flags, MDM policy enforcement | CLI handles its auth; extension handles org/MDM | P1 |
|
||||
| [Auto-Purge](non-agent-features/auto-purge.md) | Scheduled cleanup of old session/task storage | Extension-side (storage ownership TBD) | P3 |
|
||||
| [Cloud Task Support](non-agent-features/cloud-task-support.md) | Upload local sessions to cloud, real-time sync, conflict resolution | Kilo cloud API + CLI; extension provides UI | P2 |
|
||||
| [Code Reviews](non-agent-features/code-reviews.md) | Local review mode, automated AI review of uncommitted/branch changes | CLI (partial); extension for VS Code review UX | P2 |
|
||||
| [Codebase Indexing & Semantic Search](non-agent-features/codebase-indexing-semantic-search.md) | Vector indexing, semantic search, embeddings infrastructure | CLI has grep/glob endpoints; semantic indexing is extension or cloud | P2 |
|
||||
| [Contribution Tracking](non-agent-features/contribution-tracking.md) | AI attribution tracking, line fingerprinting, reporting | Extension-side | P3 |
|
||||
| [Custom Commands](non-agent-features/custom-command-system.md) | Slash command system, project-level command discovery, YAML frontmatter support | CLI has custom commands; extension provides UI entry points | P2 |
|
||||
| [Marketplace](non-agent-features/marketplace.md) | Catalog, install, update capabilities (toolbar button exists but renders a stub) | Extension-side | P2 |
|
||||
| [MCP & MCP Hub](non-agent-features/mcp-and-mcp-hub.md) | MCP configuration UI (add/edit/delete servers), tool allowlisting | CLI owns MCP lifecycle; extension provides config UI | P1 |
|
||||
| [Repository Initialization](non-agent-features/repository-initialization.md) | /init command support for setting up agentic engineering | CLI /init endpoint; extension provides UI trigger | P3 |
|
||||
| [Rules & Workflows](non-agent-features/rules-and-workflows.md) | Workflow management UI (rules subtab exists, workflows subtab is a stub) | CLI owns rules runtime; extension provides management UI | P3 |
|
||||
| [Settings Sync](non-agent-features/settings-sync-integration.md) | VS Code Settings Sync allowlist registration | Extension-side (VS Code API) | P3 |
|
||||
| [Settings UI](non-agent-features/settings-ui.md) | Terminal and Prompts tabs (show "Not implemented"), Workflows subtab stub | CLI exposes config; extension provides settings forms | P1 |
|
||||
| [Skills System](non-agent-features/skills-system.md) | Skill execution, discovery, hot-reload (config UI for paths/URLs exists) | CLI has skills runtime; extension provides packaging/UI | P2 |
|
||||
| [Speech-to-Text](non-agent-features/speech-to-text.md) | Voice input, streaming STT | Webview (mic capture); CLI-compatible STT optional | P3 |
|
||||
|
||||
---
|
||||
|
||||
@@ -46,12 +46,12 @@ This document tracks remaining work needed for feature parity with the old exten
|
||||
|
||||
The "Agent Behaviour" settings tab contains 5 sub-tabs in both the legacy and new extensions. The legacy tab was a combined 2800+ lines of UI; the new tab is ~820 lines. Each sub-tab has its own parity doc.
|
||||
|
||||
| Sub-Tab | Remaining Work | Priority |
|
||||
| --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
|
||||
| [Modes / Agents](agent-behaviour/modes-subtab-parity.md) | Core CRUD done (PR #7225). Remaining: when-to-use, system prompt preview, import/export, default variant, hidden/disable, org features | P2 |
|
||||
| [MCP Servers](agent-behaviour/mcp-server-creation.md) | Add/edit servers, restart, per-server timeout, expandable detail (tools/resources/logs/auth) | P2 |
|
||||
| [Rules & Workflows](agent-behaviour/rules-workflows-subtab-parity.md) | Rules: description text, global/workspace separation, per-rule toggles, new file creation, auto-discovery. Workflows: entire sub-tab is a stub | P2/P3 |
|
||||
| Skills | Minor gaps: project/global separation, mode badge per skill. Covered by [Skills System](non-agent-features/skills-system.md) | P2 |
|
||||
| Sub-Tab | Remaining Work | Priority |
|
||||
|---|---|---|
|
||||
| [Modes / Agents](agent-behaviour/modes-subtab-parity.md) | Core CRUD done (PR #7225). Remaining: when-to-use, system prompt preview, import/export, default variant, hidden/disable, org features | P2 |
|
||||
| [MCP Servers](agent-behaviour/mcp-server-creation.md) | Add/edit servers, restart, per-server timeout, expandable detail (tools/resources/logs/auth) | P2 |
|
||||
| [Rules & Workflows](agent-behaviour/rules-workflows-subtab-parity.md) | Rules: description text, global/workspace separation, per-rule toggles, new file creation, auto-discovery. Workflows: entire sub-tab is a stub | P2/P3 |
|
||||
| Skills | Minor gaps: project/global separation, mode badge per skill. Covered by [Skills System](non-agent-features/skills-system.md) | P2 |
|
||||
|
||||
---
|
||||
|
||||
@@ -61,50 +61,50 @@ Open issues from the [GitHub project board](https://github.com/orgs/Kilo-Org/pro
|
||||
|
||||
### UI Polish & Bugs
|
||||
|
||||
| Feature | Remaining Work | Priority |
|
||||
| ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------- |
|
||||
| [Markdown Rendering Improvements](ui-polish/markdown-rendering-improvements.md) | Add CSS for heading sizes, weights, spacing so headings look different from body text | P1 |
|
||||
| [Approval Box Missing Full Path](ui-polish/approval-box-full-path.md) | Always show full absolute path for out-of-workspace permission requests | P1 |
|
||||
| [Profile View Missing Back Button](ui-polish/profile-view-back-button.md) | Add back button to Profile view header matching Settings view pattern | P2 |
|
||||
| [Chat Input Overflow on Narrow Sidebar](ui-polish/chat-input-narrow-sidebar-overflow.md) | Make chat input toolbar wrap when sidebar is too narrow | P2 |
|
||||
| Feature | Remaining Work | Priority |
|
||||
|---|---|---|
|
||||
| [Markdown Rendering Improvements](ui-polish/markdown-rendering-improvements.md) | Add CSS for heading sizes, weights, spacing so headings look different from body text | P1 |
|
||||
| [Approval Box Missing Full Path](ui-polish/approval-box-full-path.md) | Always show full absolute path for out-of-workspace permission requests | P1 |
|
||||
| [Profile View Missing Back Button](ui-polish/profile-view-back-button.md) | Add back button to Profile view header matching Settings view pattern | P2 |
|
||||
| [Chat Input Overflow on Narrow Sidebar](ui-polish/chat-input-narrow-sidebar-overflow.md) | Make chat input toolbar wrap when sidebar is too narrow | P2 |
|
||||
|
||||
### Features
|
||||
|
||||
| Feature | Remaining Work | Priority |
|
||||
| ------------------------------------------------------------------------ | ----------------------------------------------------------------------- | -------- |
|
||||
| [File Attachments](features/file-attachments.md) | Add non-image file attachment via button, drag-and-drop, or file picker | P2 |
|
||||
| [Task Completion Notification](features/task-completion-notification.md) | VS Code toast when task completes or awaits input while panel is hidden | P2 |
|
||||
| [Remember Last Model Choice](features/remember-last-model.md) | Persist last-used model and pre-select it for new sessions | P2 |
|
||||
| [Expandable MCP Tools](features/expandable-mcp-tools.md) | Make MCP tool rows expandable to show inputs/outputs like regular tools | P2 |
|
||||
| [Session Preview Improvements](features/session-preview-improvements.md) | Evaluate showing first message snippet or improving title generation | P2 |
|
||||
| Feature | Remaining Work | Priority |
|
||||
|---|---|---|
|
||||
| [File Attachments](features/file-attachments.md) | Add non-image file attachment via button, drag-and-drop, or file picker | P2 |
|
||||
| [Task Completion Notification](features/task-completion-notification.md) | VS Code toast when task completes or awaits input while panel is hidden | P2 |
|
||||
| [Remember Last Model Choice](features/remember-last-model.md) | Persist last-used model and pre-select it for new sessions | P2 |
|
||||
| [Expandable MCP Tools](features/expandable-mcp-tools.md) | Make MCP tool rows expandable to show inputs/outputs like regular tools | P2 |
|
||||
| [Session Preview Improvements](features/session-preview-improvements.md) | Evaluate showing first message snippet or improving title generation | P2 |
|
||||
|
||||
### Error Handling & Reliability
|
||||
|
||||
| Feature | Remaining Work | Priority |
|
||||
| ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -------- |
|
||||
| [Pre-Release Switch CPU Spike](error-handling/pre-release-switch-crash.md) | Fix race condition / process conflict when switching release ↔ pre-release | P0 |
|
||||
| [Extension View Doesn't Refresh on Update](error-handling/extension-refresh-on-update.md) | Force webview reload when extension version changes | P1 |
|
||||
| [Propagate CLI Errors to UI](error-handling/propagate-cli-errors-to-ui.md) | Surface CLI stderr errors in chat or as VS Code notifications | P1 |
|
||||
| [CLI Startup Errors](error-handling/cli-startup-errors.md) | Detect CLI process exit before connection; show error with details and retry | P1 |
|
||||
| [Autocomplete Settings Link Broken](error-handling/autocomplete-settings-link.md) | Fix "settings" link in autocomplete broken notice; fix missing default model | P1 |
|
||||
| Feature | Remaining Work | Priority |
|
||||
|---|---|---|
|
||||
| [Pre-Release Switch CPU Spike](error-handling/pre-release-switch-crash.md) | Fix race condition / process conflict when switching release ↔ pre-release | P0 |
|
||||
| [Extension View Doesn't Refresh on Update](error-handling/extension-refresh-on-update.md) | Force webview reload when extension version changes | P1 |
|
||||
| [Propagate CLI Errors to UI](error-handling/propagate-cli-errors-to-ui.md) | Surface CLI stderr errors in chat or as VS Code notifications | P1 |
|
||||
| [CLI Startup Errors](error-handling/cli-startup-errors.md) | Detect CLI process exit before connection; show error with details and retry | P1 |
|
||||
| [Autocomplete Settings Link Broken](error-handling/autocomplete-settings-link.md) | Fix "settings" link in autocomplete broken notice; fix missing default model | P1 |
|
||||
|
||||
### Infrastructure / Refactoring
|
||||
|
||||
| Feature | Remaining Work | Priority |
|
||||
| -------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -------- |
|
||||
| [Show Changelog on Update](infrastructure/changelog-on-update.md) | Detect version change on activation and offer "What's New" notification | P3 |
|
||||
| [Publish to OpenVSX](infrastructure/openvsx-publish.md) | Add `ovsx publish` step to CI/CD pipeline after VS Code Marketplace publish | P3 |
|
||||
| [HTTP Request Timeouts](infrastructure/http-request-timeouts.md) | Add timeouts to SDK calls (only health check has timeout currently) | P1 |
|
||||
| [VSCode Error Notifications](infrastructure/vscode-error-notifications.md) | Error notifications for CLI start failure, SSE disconnect | P1 |
|
||||
| [Dedicated Output Channel](infrastructure/dedicated-output-channel.md) | General "Kilo Code" output channel and centralized logging utility | P2 |
|
||||
| Feature | Remaining Work | Priority |
|
||||
|---|---|---|
|
||||
| [Show Changelog on Update](infrastructure/changelog-on-update.md) | Detect version change on activation and offer "What's New" notification | P3 |
|
||||
| [Publish to OpenVSX](infrastructure/openvsx-publish.md) | Add `ovsx publish` step to CI/CD pipeline after VS Code Marketplace publish | P3 |
|
||||
| [HTTP Request Timeouts](infrastructure/http-request-timeouts.md) | Add timeouts to SDK calls (only health check has timeout currently) | P1 |
|
||||
| [VSCode Error Notifications](infrastructure/vscode-error-notifications.md) | Error notifications for CLI start failure, SSE disconnect | P1 |
|
||||
| [Dedicated Output Channel](infrastructure/dedicated-output-channel.md) | General "Kilo Code" output channel and centralized logging utility | P2 |
|
||||
|
||||
### CLI-Side (tracked here for awareness)
|
||||
|
||||
| Feature | Remaining Work | Priority |
|
||||
| -------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------- |
|
||||
| [/init Pre-Commit Secret Check](cli-side/init-secret-check.md) | Check for secret scanning hooks in `/init`; suggest adding one if missing | P2 |
|
||||
| [Plan Mode Over-Prompting](cli-side/plan-mode-over-prompting.md) | Fix Plan mode system prompt so agent stops repeatedly asking to implement | P1 |
|
||||
| [Architect Mode / Plan Files](cli-side/architect-mode-plan-files.md) | Export plan as `.md` to `/plans/` directory from Plan mode | P2 |
|
||||
| Feature | Remaining Work | Priority |
|
||||
|---|---|---|
|
||||
| [/init Pre-Commit Secret Check](cli-side/init-secret-check.md) | Check for secret scanning hooks in `/init`; suggest adding one if missing | P2 |
|
||||
| [Plan Mode Over-Prompting](cli-side/plan-mode-over-prompting.md) | Fix Plan mode system prompt so agent stops repeatedly asking to implement | P1 |
|
||||
| [Architect Mode / Plan Files](cli-side/architect-mode-plan-files.md) | Export plan as `.md` to `/plans/` directory from Plan mode | P2 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -27,43 +27,43 @@ The migrator reads custom modes from these locations (in order, later entries ov
|
||||
|
||||
### Global Modes (VSCode Extension Storage)
|
||||
|
||||
| Platform | Path |
|
||||
| -------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| macOS | `~/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Windows | `%APPDATA%/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Linux | `~/.config/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Platform | Path |
|
||||
|---|---|
|
||||
| macOS | `~/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Windows | `%APPDATA%/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
| Linux | `~/.config/Code/User/globalStorage/kilocode.kilo-code/settings/custom_modes.yaml` |
|
||||
|
||||
### Project Modes
|
||||
|
||||
| Location | Description |
|
||||
| ---------------- | -------------------------------------------- |
|
||||
| Location | Description |
|
||||
|---|---|
|
||||
| `.kilocodemodes` | Project-specific modes in the workspace root |
|
||||
|
||||
## Field Mapping
|
||||
|
||||
### Migrated Fields
|
||||
|
||||
| Kilocode Field | Opencode Field | Notes |
|
||||
| -------------------- | -------------- | ----------------------------------------------------- |
|
||||
| `slug` | Agent key | Used as the agent identifier |
|
||||
| `roleDefinition` | `prompt` | Combined with `customInstructions` |
|
||||
| `customInstructions` | `prompt` | Appended after `roleDefinition` with `\n\n` separator |
|
||||
| `groups` | `permission` | See permission mapping below |
|
||||
| `description` | `description` | Primary source for description |
|
||||
| `whenToUse` | `description` | Fallback if no `description` |
|
||||
| `name` | `description` | Final fallback |
|
||||
| Kilocode Field | Opencode Field | Notes |
|
||||
|---|---|---|
|
||||
| `slug` | Agent key | Used as the agent identifier |
|
||||
| `roleDefinition` | `prompt` | Combined with `customInstructions` |
|
||||
| `customInstructions` | `prompt` | Appended after `roleDefinition` with `\n\n` separator |
|
||||
| `groups` | `permission` | See permission mapping below |
|
||||
| `description` | `description` | Primary source for description |
|
||||
| `whenToUse` | `description` | Fallback if no `description` |
|
||||
| `name` | `description` | Final fallback |
|
||||
|
||||
### Permission Mapping
|
||||
|
||||
Kilocode uses "groups" to define what tools a mode can access. These are converted to Opencode's permission system:
|
||||
|
||||
| Kilocode Group | Opencode Permission | Notes |
|
||||
| -------------- | ------------------- | -------------------------- |
|
||||
| `read` | `read: "allow"` | File reading |
|
||||
| `edit` | `edit: "allow"` | File editing |
|
||||
| `command` | `bash: "allow"` | Shell commands |
|
||||
| `browser` | `bash: "allow"` | Browser actions (via bash) |
|
||||
| `mcp` | `mcp: "allow"` | MCP server access |
|
||||
| Kilocode Group | Opencode Permission | Notes |
|
||||
|---|---|---|
|
||||
| `read` | `read: "allow"` | File reading |
|
||||
| `edit` | `edit: "allow"` | File editing |
|
||||
| `command` | `bash: "allow"` | Shell commands |
|
||||
| `browser` | `bash: "allow"` | Browser actions (via bash) |
|
||||
| `mcp` | `mcp: "allow"` | MCP server access |
|
||||
|
||||
**Important:** Permissions that are NOT in the groups list are explicitly set to `"deny"`. This ensures that a mode with only `read` and `edit` groups cannot run shell commands or access MCP servers.
|
||||
|
||||
@@ -101,13 +101,13 @@ Note: `bash` and `mcp` are explicitly denied because they weren't in the origina
|
||||
|
||||
The following Kilocode default modes are **skipped** during migration because Opencode has native equivalents:
|
||||
|
||||
| Kilocode Mode | Reason |
|
||||
| -------------- | -------------------------------------------------------- |
|
||||
| `code` | Maps to Opencode's `build` agent |
|
||||
| `architect` | Maps to Opencode's `plan` agent |
|
||||
| `ask` | Read-only exploration (use `explore` subagent) |
|
||||
| `debug` | Debugging workflow (use `build` with debug instructions) |
|
||||
| `orchestrator` | Redundant - all Opencode agents can spawn subagents |
|
||||
| Kilocode Mode | Reason |
|
||||
|---|---|
|
||||
| `code` | Maps to Opencode's `build` agent |
|
||||
| `architect` | Maps to Opencode's `plan` agent |
|
||||
| `ask` | Read-only exploration (use `explore` subagent) |
|
||||
| `debug` | Debugging workflow (use `build` with debug instructions) |
|
||||
| `orchestrator` | Redundant - all Opencode agents can spawn subagents |
|
||||
|
||||
## Example Conversion
|
||||
|
||||
@@ -155,14 +155,14 @@ customModes:
|
||||
|
||||
The following Kilocode features are not yet migrated:
|
||||
|
||||
| Feature | Status | Notes |
|
||||
| ---------------------------------- | ----------- | ------------------------------------ |
|
||||
| Rules (`.kilocode/rules/`) | Phase 2 | Will map to `instructions` array |
|
||||
| Workflows (`.kilocode/workflows/`) | Phase 2 | Will map to custom commands |
|
||||
| MCP Servers (`mcp_settings.json`) | Phase 2 | Will map to `mcp` config |
|
||||
| Provider Settings | Phase 2 | Will map to `provider` config |
|
||||
| Mode-specific API configs | Phase 2 | Different models per mode |
|
||||
| Organization modes | Not planned | `source: organization` not preserved |
|
||||
| Feature | Status | Notes |
|
||||
|---|---|---|
|
||||
| Rules (`.kilocode/rules/`) | Phase 2 | Will map to `instructions` array |
|
||||
| Workflows (`.kilocode/workflows/`) | Phase 2 | Will map to custom commands |
|
||||
| MCP Servers (`mcp_settings.json`) | Phase 2 | Will map to `mcp` config |
|
||||
| Provider Settings | Phase 2 | Will map to `provider` config |
|
||||
| Mode-specific API configs | Phase 2 | Different models per mode |
|
||||
| Organization modes | Not planned | `source: organization` not preserved |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -220,17 +220,17 @@ Running from `packages/my-package/` discovers both `package-skill` and `project-
|
||||
|
||||
### Global Skills
|
||||
|
||||
| Platform | Path |
|
||||
| -------- | --------------------- |
|
||||
| All | `~/.kilocode/skills/` |
|
||||
| Platform | Path |
|
||||
|---|---|
|
||||
| All | `~/.kilocode/skills/` |
|
||||
|
||||
### VSCode Extension Storage (Marketplace Skills)
|
||||
|
||||
| Platform | Path |
|
||||
| -------- | ---------------------------------------------------------------------------------- |
|
||||
| macOS | `~/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/skills/` |
|
||||
| Windows | `%APPDATA%/Code/User/globalStorage/kilocode.kilo-code/skills/` |
|
||||
| Linux | `~/.config/Code/User/globalStorage/kilocode.kilo-code/skills/` |
|
||||
| Platform | Path |
|
||||
|---|---|
|
||||
| macOS | `~/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/skills/` |
|
||||
| Windows | `%APPDATA%/Code/User/globalStorage/kilocode.kilo-code/skills/` |
|
||||
| Linux | `~/.config/Code/User/globalStorage/kilocode.kilo-code/skills/` |
|
||||
|
||||
## Skill File Format
|
||||
|
||||
@@ -305,12 +305,12 @@ Kilocode rules are migrated to Opencode's `instructions` array. See [`rules-migr
|
||||
|
||||
## Source Locations
|
||||
|
||||
| Location | Description |
|
||||
| ----------------------------- | ----------------------------- |
|
||||
| `.kilocoderules` | Legacy project rules file |
|
||||
| `.kilocode/rules/*.md` | Project rules directory |
|
||||
| `~/.kilocode/rules/*.md` | Global rules directory |
|
||||
| `.kilocoderules-{mode}` | Mode-specific legacy rules |
|
||||
| Location | Description |
|
||||
|---|---|
|
||||
| `.kilocoderules` | Legacy project rules file |
|
||||
| `.kilocode/rules/*.md` | Project rules directory |
|
||||
| `~/.kilocode/rules/*.md` | Global rules directory |
|
||||
| `.kilocoderules-{mode}` | Mode-specific legacy rules |
|
||||
| `.kilocode/rules-{mode}/*.md` | Mode-specific rules directory |
|
||||
|
||||
---
|
||||
@@ -321,11 +321,11 @@ Kilocode workflows are migrated to Opencode commands. See [`workflows-migrator.t
|
||||
|
||||
## Source Locations
|
||||
|
||||
| Location | Description |
|
||||
| ---------------------------- | ------------------------------- |
|
||||
| `.kilocode/workflows/*.md` | Project workflows |
|
||||
| `~/.kilocode/workflows/*.md` | Global workflows |
|
||||
| VSCode extension storage | Marketplace-installed workflows |
|
||||
| Location | Description |
|
||||
|---|---|
|
||||
| `.kilocode/workflows/*.md` | Project workflows |
|
||||
| `~/.kilocode/workflows/*.md` | Global workflows |
|
||||
| VSCode extension storage | Marketplace-installed workflows |
|
||||
|
||||
---
|
||||
|
||||
@@ -344,8 +344,8 @@ Use a top-level `"mcp"` object. Each key is the server name. For a local server,
|
||||
|
||||
## Source Location (migration from Kilocode)
|
||||
|
||||
| Location | Description |
|
||||
| ----------------------------------------------------------- | ------------------------- |
|
||||
| Location | Description |
|
||||
|---|---|
|
||||
| VSCode extension storage `settings/cline_mcp_settings.json` | MCP server configurations |
|
||||
|
||||
---
|
||||
@@ -385,11 +385,11 @@ Action: Learn More -> https://docs.kilo.ai/skills
|
||||
|
||||
## Display Conditions
|
||||
|
||||
| Condition | Notifications Shown |
|
||||
| ------------------------- | ------------------- |
|
||||
| Connected to Kilo Gateway | Yes |
|
||||
| Not connected to Kilo | No |
|
||||
| No notifications from API | No |
|
||||
| Condition | Notifications Shown |
|
||||
|---|---|
|
||||
| Connected to Kilo Gateway | Yes |
|
||||
| Not connected to Kilo | No |
|
||||
| No notifications from API | No |
|
||||
|
||||
## Related Files
|
||||
|
||||
|
||||
@@ -41,28 +41,28 @@ The migrator reads rules from these locations:
|
||||
|
||||
### Project Rules
|
||||
|
||||
| Location | Description |
|
||||
| ----------------------------- | -------------------------------------------------------- |
|
||||
| `.kilocoderules` | Legacy single-file rules in project root |
|
||||
| `.kilocode/rules/*.md` | Directory-based rules (multiple markdown files) |
|
||||
| `.kilocoderules-{mode}` | Mode-specific legacy rules (e.g., `.kilocoderules-code`) |
|
||||
| `.kilocode/rules-{mode}/*.md` | Mode-specific rule directories |
|
||||
| Location | Description |
|
||||
|---|---|
|
||||
| `.kilocoderules` | Legacy single-file rules in project root |
|
||||
| `.kilocode/rules/*.md` | Directory-based rules (multiple markdown files) |
|
||||
| `.kilocoderules-{mode}` | Mode-specific legacy rules (e.g., `.kilocoderules-code`) |
|
||||
| `.kilocode/rules-{mode}/*.md` | Mode-specific rule directories |
|
||||
|
||||
### Global Rules
|
||||
|
||||
| Location | Description |
|
||||
| ------------------------ | ---------------------- |
|
||||
| Location | Description |
|
||||
|---|---|
|
||||
| `~/.kilocode/rules/*.md` | Global rules directory |
|
||||
|
||||
## File Mapping
|
||||
|
||||
| Kilocode Location | Opencode Equivalent |
|
||||
| ----------------------------- | ------------------------------------------------------- |
|
||||
| `.kilocoderules` | `instructions: [".kilocoderules"]` |
|
||||
| `.kilocoderules-{mode}` | `instructions: [".kilocoderules-{mode}"]` |
|
||||
| `.kilocode/rules/*.md` | `instructions: [".kilocode/rules/file.md", ...]` |
|
||||
| Kilocode Location | Opencode Equivalent |
|
||||
|---|---|
|
||||
| `.kilocoderules` | `instructions: [".kilocoderules"]` |
|
||||
| `.kilocoderules-{mode}` | `instructions: [".kilocoderules-{mode}"]` |
|
||||
| `.kilocode/rules/*.md` | `instructions: [".kilocode/rules/file.md", ...]` |
|
||||
| `.kilocode/rules-{mode}/*.md` | `instructions: [".kilocode/rules-{mode}/file.md", ...]` |
|
||||
| `~/.kilocode/rules/*.md` | `instructions: ["~/.kilocode/rules/file.md", ...]` |
|
||||
| `~/.kilocode/rules/*.md` | `instructions: ["~/.kilocode/rules/file.md", ...]` |
|
||||
|
||||
## AGENTS.md Compatibility
|
||||
|
||||
|
||||
@@ -207,19 +207,19 @@ Skills are markdown files at `skills/<name>/SKILL.md` (or `skill/<name>/SKILL.md
|
||||
|
||||
## Other Top-Level Fields
|
||||
|
||||
| Field | Type | Description |
|
||||
| ------------------ | ------------------------------ | --------------------------------------------------- |
|
||||
| `model` | `"provider/model"` | Default model |
|
||||
| `small_model` | `"provider/model"` | Model for titles/summaries |
|
||||
| `default_agent` | `string` | Default primary agent (fallback: `code`) |
|
||||
| `instructions` | `string[]` | Glob patterns for additional instruction files |
|
||||
| `plugin` | `string[]` | Plugin specifiers (npm packages or `file://` paths) |
|
||||
| `snapshot` | `boolean` | Enable git snapshots |
|
||||
| `share` | `"manual"\|"auto"\|"disabled"` | Session sharing mode |
|
||||
| `autoupdate` | `boolean\|"notify"` | Auto-update behavior |
|
||||
| `username` | `string` | Display name override |
|
||||
| `compaction.auto` | `boolean` | Auto-compact when context full (default: true) |
|
||||
| `compaction.prune` | `boolean` | Prune old tool outputs (default: true) |
|
||||
| Field | Type | Description |
|
||||
|---|---|---|
|
||||
| `model` | `"provider/model"` | Default model |
|
||||
| `small_model` | `"provider/model"` | Model for titles/summaries |
|
||||
| `default_agent` | `string` | Default primary agent (fallback: `code`) |
|
||||
| `instructions` | `string[]` | Glob patterns for additional instruction files |
|
||||
| `plugin` | `string[]` | Plugin specifiers (npm packages or `file://` paths) |
|
||||
| `snapshot` | `boolean` | Enable git snapshots |
|
||||
| `share` | `"manual"\|"auto"\|"disabled"` | Session sharing mode |
|
||||
| `autoupdate` | `boolean\|"notify"` | Auto-update behavior |
|
||||
| `username` | `string` | Display name override |
|
||||
| `compaction.auto` | `boolean` | Auto-compact when context full (default: true) |
|
||||
| `compaction.prune` | `boolean` | Prune old tool outputs (default: true) |
|
||||
|
||||
## TUI Settings (Ctrl+P Command Palette)
|
||||
|
||||
@@ -229,37 +229,37 @@ Leader key default: `ctrl+x`. Keybinds below use `<leader>` prefix (e.g. `<leade
|
||||
|
||||
### Theme & Appearance
|
||||
|
||||
| Action | Keybind | Slash | Notes |
|
||||
| ------------------------------ | ----------- | --------- | -------------------------------------------------------------------------------------------------- |
|
||||
| Switch theme | `<leader>t` | `/themes` | Pick from 35+ built-in themes (kilo, catppuccin, dracula, github, gruvbox, nord, tokyonight, etc.) |
|
||||
| Toggle appearance (dark/light) | — | — | Ctrl+P → "Toggle appearance" |
|
||||
| Action | Keybind | Slash | Notes |
|
||||
|---|---|---|---|
|
||||
| Switch theme | `<leader>t` | `/themes` | Pick from 35+ built-in themes (kilo, catppuccin, dracula, github, gruvbox, nord, tokyonight, etc.) |
|
||||
| Toggle appearance (dark/light) | — | — | Ctrl+P → "Toggle appearance" |
|
||||
|
||||
Custom themes: place JSON files in `~/.config/kilo/themes/` or `.kilo/themes/`.
|
||||
|
||||
### Session
|
||||
|
||||
| Action | Keybind | Slash |
|
||||
| ------------------ | ----------- | ------------------------ |
|
||||
| List sessions | `<leader>l` | `/sessions` |
|
||||
| New session | `<leader>n` | `/new`, `/clear` |
|
||||
| Share session | — | `/share` |
|
||||
| Rename session | `ctrl+r` | `/rename` |
|
||||
| Jump to message | `<leader>g` | `/timeline` |
|
||||
| Fork from message | — | `/fork` |
|
||||
| Compact/summarize | `<leader>c` | `/compact`, `/summarize` |
|
||||
| Undo message | `<leader>u` | `/undo` |
|
||||
| Redo | `<leader>r` | `/redo` |
|
||||
| Copy last response | `<leader>y` | — |
|
||||
| Copy transcript | — | `/copy` |
|
||||
| Action | Keybind | Slash |
|
||||
|---|---|---|
|
||||
| List sessions | `<leader>l` | `/sessions` |
|
||||
| New session | `<leader>n` | `/new`, `/clear` |
|
||||
| Share session | — | `/share` |
|
||||
| Rename session | `ctrl+r` | `/rename` |
|
||||
| Jump to message | `<leader>g` | `/timeline` |
|
||||
| Fork from message | — | `/fork` |
|
||||
| Compact/summarize | `<leader>c` | `/compact`, `/summarize` |
|
||||
| Undo message | `<leader>u` | `/undo` |
|
||||
| Redo | `<leader>r` | `/redo` |
|
||||
| Copy last response | `<leader>y` | — |
|
||||
| Copy transcript | — | `/copy` |
|
||||
|
||||
### Agent & Model
|
||||
|
||||
| Action | Keybind | Slash |
|
||||
| ------------ | ------------------- | --------- |
|
||||
| Switch model | `<leader>m` | `/models` |
|
||||
| Switch agent | `<leader>a` | `/agents` |
|
||||
| Toggle MCPs | — | `/mcps` |
|
||||
| Cycle agent | `tab` / `shift+tab` | — |
|
||||
| Action | Keybind | Slash |
|
||||
|---|---|---|
|
||||
| Switch model | `<leader>m` | `/models` |
|
||||
| Switch agent | `<leader>a` | `/agents` |
|
||||
| Toggle MCPs | — | `/mcps` |
|
||||
| Cycle agent | `tab` / `shift+tab` | — |
|
||||
|
||||
### Display Toggles (via Ctrl+P)
|
||||
|
||||
@@ -267,21 +267,21 @@ Toggle notifications, Toggle animations, Toggle diff wrapping, Toggle sidebar (`
|
||||
|
||||
### System
|
||||
|
||||
| Action | Slash |
|
||||
| ----------- | ---------------------- |
|
||||
| View status | `/status` |
|
||||
| Help | `/help` |
|
||||
| Exit | `/exit`, `/quit`, `/q` |
|
||||
| Open editor | `/editor` |
|
||||
| Action | Slash |
|
||||
|---|---|
|
||||
| View status | `/status` |
|
||||
| Help | `/help` |
|
||||
| Exit | `/exit`, `/quit`, `/q` |
|
||||
| Open editor | `/editor` |
|
||||
|
||||
## Config File Locations
|
||||
|
||||
### Config files (kilo.json)
|
||||
|
||||
| Scope | Path |
|
||||
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Project | `./kilo.json`, `./kilo.jsonc`, `./opencode.json` (legacy), `./opencode.jsonc` (legacy) |
|
||||
| Global | `~/.config/kilo/kilo.json`, `~/.config/kilo/kilo.jsonc`, `~/.config/kilo/opencode.json` (legacy), `~/.config/kilo/opencode.jsonc` (legacy), `~/.config/kilo/config.json` (legacy) |
|
||||
| Scope | Path |
|
||||
|---|---|
|
||||
| Project | `./kilo.json`, `./kilo.jsonc`, `./opencode.json` (legacy), `./opencode.jsonc` (legacy) |
|
||||
| Global | `~/.config/kilo/kilo.json`, `~/.config/kilo/kilo.jsonc`, `~/.config/kilo/opencode.json` (legacy), `~/.config/kilo/opencode.jsonc` (legacy), `~/.config/kilo/config.json` (legacy) |
|
||||
| Managed | Linux: `/etc/kilo/`, macOS: `/Library/Application Support/kilo/`, Windows: `%ProgramData%\kilo\` — loads `kilo.json`, `kilo.jsonc`, `opencode.json`, `opencode.jsonc` (enterprise, highest priority) |
|
||||
|
||||
Each config directory (`.kilo/`, `.kilocode/`, `.opencode/`) can also contain `kilo.json`, `kilo.jsonc`, `opencode.json`, or `opencode.jsonc`.
|
||||
@@ -298,27 +298,27 @@ Three directory names are scanned: `.kilo` (modern), `.kilocode` (legacy), `.ope
|
||||
|
||||
Glob patterns run inside every discovered config directory (including legacy):
|
||||
|
||||
| Type | Pattern |
|
||||
| ------- | ---------------------------- |
|
||||
| Type | Pattern |
|
||||
|---|---|
|
||||
| Command | `{command,commands}/**/*.md` |
|
||||
| Agent | `{agent,agents}/**/*.md` |
|
||||
| Mode | `{mode,modes}/*.md` |
|
||||
| Plugin | `{plugin,plugins}/*.{ts,js}` |
|
||||
| Agent | `{agent,agents}/**/*.md` |
|
||||
| Mode | `{mode,modes}/*.md` |
|
||||
| Plugin | `{plugin,plugins}/*.{ts,js}` |
|
||||
|
||||
Example: `~/.config/kilo/command/*.md` (modern global), `~/.kilocode/command/*.md` (legacy global), `.opencode/commands/*.md` (legacy project) all load commands.
|
||||
|
||||
### Skills and instructions
|
||||
|
||||
| Scope | Path |
|
||||
| ------------ | -------------------------------------------------------------------------------------- |
|
||||
| Skills | `{skill,skills}/<name>/SKILL.md` inside any config directory |
|
||||
| Scope | Path |
|
||||
|---|---|
|
||||
| Skills | `{skill,skills}/<name>/SKILL.md` inside any config directory |
|
||||
| Instructions | `AGENTS.md`, `CLAUDE.md`, `CONTEXT.md`, glob patterns from `instructions` config field |
|
||||
|
||||
### Environment variable overrides
|
||||
|
||||
| Variable | Description |
|
||||
| ----------------------------- | ---------------------------------------------------------------- |
|
||||
| `KILO_CONFIG` | Path to an additional config file (loaded after global) |
|
||||
| `KILO_CONFIG_DIR` | Path to an additional config directory (appended to search list) |
|
||||
| `KILO_CONFIG_CONTENT` | Inline JSON config string (high precedence, after project dirs) |
|
||||
| `KILO_DISABLE_PROJECT_CONFIG` | Skip all project-level config (files and directories) |
|
||||
| Variable | Description |
|
||||
|---|---|
|
||||
| `KILO_CONFIG` | Path to an additional config file (loaded after global) |
|
||||
| `KILO_CONFIG_DIR` | Path to an additional config directory (appended to search list) |
|
||||
| `KILO_CONFIG_CONTENT` | Inline JSON config string (high precedence, after project dirs) |
|
||||
| `KILO_DISABLE_PROJECT_CONFIG` | Skip all project-level config (files and directories) |
|
||||
|
||||
Reference in New Issue
Block a user