mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-08-30 17:14:40 +08:00
Merge branch 'main' into main
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@kilocode/cli": minor
|
||||
"@kilocode/sdk": minor
|
||||
"kilo-code": minor
|
||||
---
|
||||
|
||||
Connect to a local Anaconda Desktop text-generation model server from the CLI or VS Code.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Color Agent Manager PR badges by pull request state (open, draft, merged, closed) and show CI and review status as a separate icon, so a failing check is no longer mistaken for a closed PR.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Remember the Agent Manager new-worktree sandbox toggle for future sessions.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@kilocode/cli": minor
|
||||
"@kilocode/sdk": minor
|
||||
"kilo-code": minor
|
||||
---
|
||||
|
||||
Allow Agent Manager chat tools to discover available models and reasoning variants by model name, then start each session with the chosen model and reasoning effort. Agent Manager resolves the provider for a named model automatically, preferring the provider behind the current default model and falling back to the Kilo Gateway.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Gate experimental agents on their declared skill, MCP, and VS Code extension requirements. VS Code shows requirement groups with Marketplace shortcuts, and the CLI stops before sending when requirements are unmet.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Translate the Anaconda Desktop provider strings into all supported languages instead of falling back to English.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Open the model picker expanded by default, keep the preview pinned while hovering, separate Kilo Auto models into their own marked group with summary tooltips, and show backend-provided Auto Efficient model choices.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": minor
|
||||
---
|
||||
|
||||
Allow background processes to transfer from subagents to parent sessions, or remain accessible from every session in their project after Kilo restarts.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": minor
|
||||
---
|
||||
|
||||
Run commands that require human interaction in an embedded CLI terminal dialog and return their output to the model when complete.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": minor
|
||||
---
|
||||
|
||||
Show personal credits, team credits, and Kilo Pass in the CLI sidebar, and refresh the balance immediately after switching teams.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Start the Agent Manager with the Sessions list collapsed while preserving each workspace's saved choice.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Improve autocomplete error messages to clarify BYOK and credits issues
|
||||
|
||||
When autocomplete is paused due to a payment or auth error, the messages now explain all possible causes: no Kilo credits, API key (BYOK) quota exhausted, not signed in, or invalid/missing API key.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
---
|
||||
|
||||
Fix `kilo upgrade` for curl installs by pointing at the install script instead of the install landing page.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
"@kilocode/kilo-gateway": patch
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Fix opening KiloClaw from the CLI and VS Code slash commands.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Keep @mentions highlighted on the correct text after slash commands expand.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
---
|
||||
|
||||
Allow the default TUI to import cloud-only sessions without rejecting their IDs as missing locally.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/kilo-jetbrains": patch
|
||||
---
|
||||
|
||||
Show Kilo Pass usage, bonus credits, renewal date, and top-up actions in the JetBrains user profile.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/kilo-jetbrains": patch
|
||||
---
|
||||
|
||||
Recover the JetBrains backend when startup or restart loading is interrupted by stale connection failures.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/kilo-jetbrains": patch
|
||||
---
|
||||
|
||||
Reconnect the JetBrains plugin when its event stream stalls during startup.
|
||||
@@ -2,4 +2,4 @@
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Preserve new-chat prompts and attachments when toggling sandbox before sending the first message.
|
||||
Preserve new-chat prompts, attachments, and scroll position when toggling sandbox, and keep sandbox status stable while switching sessions.
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Use the models sparkle icon for Auto models in the model selector.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Open the model selector instantly, even with large model catalogs.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
---
|
||||
|
||||
Stop loading `.opencode` config directories and use `.kilo` instead, while retaining `.kilocode` as a legacy fallback.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
---
|
||||
|
||||
Release disconnected event streams so long-running servers do not retain queued session diffs.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Show full external directory paths in permission auto-approve rules.
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
"@kilocode/sdk": patch
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Show the concrete model reported for routed Kilo auto-model steps in CLI and VS Code session timelines.
|
||||
Show the concrete model reported for routed Kilo auto-model steps in CLI and VS Code session timelines, and break down TUI sidebar token usage, cache rate, and cost by model across subagent sessions.
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
---
|
||||
|
||||
Surface the resumable `task_id` when a subagent stops on an error. Both foreground and background subagent failures now tell the parent agent that the session can be resumed via the task tool with `task_id="<id>"`, so a stopped subagent can be continued instead of being lost.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@kilocode/cli": patch
|
||||
"@kilocode/sdk": patch
|
||||
"kilo-code": patch
|
||||
---
|
||||
|
||||
Include session-tree IDs in model usage API responses and show full task token usage with a provider-grouped model breakdown in the VS Code session header.
|
||||
+13
-1
@@ -10,15 +10,27 @@ packages/kilo-ui/tests/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||
packages/kilo-vscode/tests/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||
packages/kilo-docs/public/img/screenshot-tests/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Hide non-English localization files by default in GitHub PR diffs.
|
||||
# Hide most localization files by default in GitHub PR diffs. Show English as the source
|
||||
# language and German so reviewers can catch untranslated copy-pasted English strings.
|
||||
**/i18n/*.ts linguist-generated=true
|
||||
**/i18n/**/*.ts linguist-generated=true
|
||||
**/i18n/en.ts linguist-generated=false
|
||||
**/i18n/en*.ts linguist-generated=false
|
||||
**/i18n/**/en.ts linguist-generated=false
|
||||
**/i18n/**/en*.ts linguist-generated=false
|
||||
**/i18n/de.ts linguist-generated=false
|
||||
**/i18n/de*.ts linguist-generated=false
|
||||
**/i18n/**/de.ts linguist-generated=false
|
||||
**/i18n/**/de*.ts linguist-generated=false
|
||||
**/i18n/package-nls-en.ts linguist-generated=false
|
||||
**/i18n/package-nls-de.ts linguist-generated=false
|
||||
**/i18n/index.ts linguist-generated=false
|
||||
**/i18n/**/index.ts linguist-generated=false
|
||||
**/i18n/parity.test.ts linguist-generated=false
|
||||
**/i18n/**/parity.test.ts linguist-generated=false
|
||||
packages/kilo-i18n/src/*.ts linguist-generated=true
|
||||
packages/kilo-i18n/src/en.ts linguist-generated=false
|
||||
packages/kilo-i18n/src/de.ts linguist-generated=false
|
||||
|
||||
# Auto-generated CLI reference docs
|
||||
packages/kilo-docs/markdoc/partials/cli-commands-table.md linguist-generated=true
|
||||
|
||||
@@ -194,8 +194,12 @@ jobs:
|
||||
test -x "$helper"
|
||||
grep -q '^SPDX-License-Identifier: LGPL-2.0-or-later$' "$(dirname "$binary")/licenses/bubblewrap/NOTICE"
|
||||
"$helper" --version
|
||||
# The live user-namespace bootstrap depends on the runner's kernel/AppArmor policy
|
||||
# (GitHub-hosted Ubuntu 24.04 sets kernel.apparmor_restrict_unprivileged_userns=1), not on
|
||||
# the shipped artifact. The runtime probe degrades gracefully, so keep this check non-fatal.
|
||||
"$helper" --unshare-user --disable-userns --unshare-pid --die-with-parent --new-session \
|
||||
--ro-bind / / --dev /dev --proc /proc -- "$helper" --version
|
||||
--ro-bind / / --dev /dev --proc /proc -- "$helper" --version \
|
||||
|| echo "unprivileged user namespaces unavailable on this runner; skipping live sandbox check"
|
||||
fi
|
||||
root="$(mktemp -d)"
|
||||
trap 'rm -rf "$root"' RETURN
|
||||
@@ -233,7 +237,7 @@ jobs:
|
||||
binary="/dist/$PACKAGE/bin/kilo" # kilocode_change
|
||||
"$binary" --version # kilocode_change
|
||||
"/dist/$PACKAGE/bin/bwrap" --version # kilocode_change
|
||||
grep -q '^SPDX-License-Identifier: LGPL-2.0-or-later$' "/dist/$PACKAGE/bin/licenses/bubblewrap/NOTICE" # kilocode_change
|
||||
grep -q '\''^SPDX-License-Identifier: LGPL-2.0-or-later$'\'' "/dist/$PACKAGE/bin/licenses/bubblewrap/NOTICE" # kilocode_change
|
||||
root="$(mktemp -d)"
|
||||
trap '\''rm -rf "$root"'\'' EXIT
|
||||
unset KILO_MODELS_PATH KILO_MODELS_URL KILO_CONFIG KILO_CONFIG_DIR
|
||||
|
||||
+59
-13
@@ -22,31 +22,73 @@ env:
|
||||
|
||||
jobs:
|
||||
# kilocode_change start
|
||||
changes:
|
||||
name: detect general unit test changes
|
||||
runs-on: blacksmith-4vcpu-ubuntu-2404
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
outputs:
|
||||
settings: ${{ steps.matrix.outputs.settings }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
if: github.event_name != 'workflow_dispatch'
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Detect general unit test changes
|
||||
if: github.event_name != 'workflow_dispatch'
|
||||
id: filter
|
||||
uses: Kilo-Org/paths-filter@668c092af3649c4b664c54e4b704aa46782f6f7c # v3
|
||||
with:
|
||||
predicate-quantifier: every
|
||||
filters: |
|
||||
general:
|
||||
- '**'
|
||||
- '!.changeset/**'
|
||||
- '!packages/kilo-jetbrains/**'
|
||||
- '!packages/kilo-vscode/**'
|
||||
- '!packages/kilo-docs/**'
|
||||
- '!packages/extensions/zed/**'
|
||||
- '!specs/**'
|
||||
- '!perf/**'
|
||||
|
||||
- name: Configure unit matrix
|
||||
id: matrix
|
||||
env:
|
||||
GENERAL: ${{ github.event_name != 'pull_request' || steps.filter.outputs.general == 'true' }}
|
||||
run: |
|
||||
if [ "$GENERAL" = "true" ]; then
|
||||
echo 'settings=[{"name":"linux","host":"blacksmith-4vcpu-ubuntu-2404","run":true},{"name":"macos","host":"macos-15","run":true},{"name":"windows","host":"blacksmith-4vcpu-windows-2025","run":true}]' >> "$GITHUB_OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
echo 'settings=[{"name":"linux","host":"blacksmith-4vcpu-ubuntu-2404","run":false}]' >> "$GITHUB_OUTPUT"
|
||||
|
||||
unit:
|
||||
name: unit (${{ matrix.settings.name }})
|
||||
needs: changes
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
settings:
|
||||
- name: linux
|
||||
host: blacksmith-4vcpu-ubuntu-2404 # kilocode_change
|
||||
- name: macos
|
||||
host: macos-15 # kilocode_change
|
||||
- name: windows
|
||||
host: blacksmith-4vcpu-windows-2025 # kilocode_change
|
||||
settings: ${{ fromJSON(needs.changes.outputs.settings) }}
|
||||
runs-on: ${{ matrix.settings.host }}
|
||||
timeout-minutes: 45 # kilocode_change
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- name: Skip unchanged general unit tests
|
||||
if: ${{ !matrix.settings.run }}
|
||||
run: echo "Only isolated product, documentation, or metadata files changed; general unit tests are unchanged."
|
||||
|
||||
- name: Checkout repository
|
||||
if: matrix.settings.run
|
||||
uses: actions/checkout@v6 # kilocode_change
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# kilocode_change start
|
||||
- name: Setup Node
|
||||
if: matrix.settings.run
|
||||
id: setup-node
|
||||
continue-on-error: ${{ runner.os == 'Windows' }}
|
||||
uses: actions/setup-node@v6 # kilocode_change
|
||||
@@ -54,18 +96,19 @@ jobs:
|
||||
node-version: "24"
|
||||
|
||||
- name: Retry Setup Node on Windows
|
||||
if: runner.os == 'Windows' && steps.setup-node.outcome == 'failure'
|
||||
if: matrix.settings.run && runner.os == 'Windows' && steps.setup-node.outcome == 'failure'
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: "24"
|
||||
# kilocode_change end
|
||||
|
||||
- name: Setup Bun
|
||||
if: matrix.settings.run
|
||||
uses: ./.github/actions/setup-bun
|
||||
|
||||
# kilocode_change start
|
||||
- name: Setup Zig for Linux sandbox helper
|
||||
if: runner.os == 'Linux'
|
||||
if: matrix.settings.run && runner.os == 'Linux'
|
||||
run: |
|
||||
curl --fail --location --retry 3 \
|
||||
https://ziglang.org/download/0.14.0/zig-linux-x86_64-0.14.0.tar.xz \
|
||||
@@ -75,17 +118,19 @@ jobs:
|
||||
echo "$RUNNER_TEMP/zig-linux-x86_64-0.14.0" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Build Linux sandbox helper
|
||||
if: runner.os == 'Linux'
|
||||
if: matrix.settings.run && runner.os == 'Linux'
|
||||
run: |
|
||||
bun packages/opencode/script/kilocode/bubblewrap.ts --arch x64 --output "$RUNNER_TEMP/bwrap"
|
||||
echo "KILO_BWRAP_PATH=$RUNNER_TEMP/bwrap" >> "$GITHUB_ENV"
|
||||
# kilocode_change end
|
||||
- name: Configure git identity
|
||||
if: matrix.settings.run
|
||||
run: |
|
||||
git config --global user.email "kilo-maintainer[bot]@users.noreply.github.com"
|
||||
git config --global user.name "kilo-maintainer[bot]"
|
||||
|
||||
- name: Cache Turbo
|
||||
if: matrix.settings.run
|
||||
uses: actions/cache@v5 # kilocode_change
|
||||
with:
|
||||
path: node_modules/.cache/turbo
|
||||
@@ -95,6 +140,7 @@ jobs:
|
||||
turbo-${{ runner.os }}-
|
||||
|
||||
- name: Run unit tests
|
||||
if: matrix.settings.run
|
||||
run: bun turbo test:ci --filter='!@kilocode/kilo-jetbrains'
|
||||
env:
|
||||
KILO_EXPERIMENTAL_DISABLE_FILEWATCHER: ${{ runner.os == 'Windows' && 'true' || 'false' }}
|
||||
@@ -102,13 +148,13 @@ jobs:
|
||||
|
||||
# kilocode_change start
|
||||
- name: Run HttpApi exerciser gates
|
||||
if: runner.os == 'Linux'
|
||||
if: matrix.settings.run && runner.os == 'Linux'
|
||||
working-directory: packages/opencode
|
||||
run: bun run test:httpapi
|
||||
# kilocode_change end
|
||||
|
||||
- name: Publish unit reports # kilocode_change
|
||||
if: always()
|
||||
if: always() && matrix.settings.run
|
||||
uses: mikepenz/action-junit-report@bccf2e31636835cf0874589931c4116687171386 # v6.4.0
|
||||
with:
|
||||
report_paths: packages/*/.artifacts/unit/junit.xml
|
||||
@@ -118,7 +164,7 @@ jobs:
|
||||
fail_on_failure: false
|
||||
|
||||
- name: Upload unit artifacts
|
||||
if: always()
|
||||
if: always() && matrix.settings.run
|
||||
uses: actions/upload-artifact@v7 # kilocode_change
|
||||
with:
|
||||
name: unit-${{ matrix.settings.name }}-${{ github.run_attempt }}
|
||||
|
||||
@@ -53,7 +53,7 @@ All products are clients of the **CLI** (`packages/opencode/`), which contains t
|
||||
|
||||
In each VS Code extension host, one `KiloConnectionService` is created for the sidebar, every Kilo editor tab, and Agent Manager; it lazily starts and reuses one current `kilo serve` backend at a time. Agent Manager worktree sessions pass a directory context to this shared backend rather than starting one per worktree. State captured by the active service layer, such as Snapshot `trackState`, is shared across those requests; only directory-keyed `InstanceState` data is isolated.
|
||||
|
||||
Extension-specific settings should live in the Kilo extension settings, not default VS Code settings, unless they are intentionally VS Code-wide.
|
||||
Extension-specific settings should live in the Kilo extension settings, not default VS Code settings, unless they are intentionally VS Code-wide. Experimental flags should follow existing flag patterns, not VS Code settings; they usually belong in the Kilo Experimental settings section.
|
||||
|
||||
## Package Instructions
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
English | <a href="README.zh.md">简体中文</a> | <a href="README.zht.md">繁體中文</a> | <a href="README.ko.md">한국어</a> | <a href="README.de.md">Deutsch</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.it.md">Italiano</a> | <a href="README.da.md">Dansk</a> | <a href="README.ja.md">日本語</a> | <a href="README.pl.md">Polski</a> | <a href="README.ru.md">Русский</a> | <a href="README.bs.md">Bosanski</a> | <a href="README.ar.md">العربية</a> | <a href="README.no.md">Norsk</a> | <a href="README.br.md">Português (Brasil)</a> | <a href="README.th.md">ไทย</a> | <a href="README.tr.md">Türkçe</a> | <a href="README.uk.md">Українська</a> | <a href="README.bn.md">বাংলা</a> | <a href="README.gr.md">Ελληνικά</a> | <a href="README.vi.md">Tiếng Việt</a>
|
||||
English | <a href="translations/README.zh.md">简体中文</a> | <a href="translations/README.zht.md">繁體中文</a> | <a href="translations/README.ko.md">한국어</a> | <a href="translations/README.de.md">Deutsch</a> | <a href="translations/README.es.md">Español</a> | <a href="translations/README.fr.md">Français</a> | <a href="translations/README.it.md">Italiano</a> | <a href="translations/README.da.md">Dansk</a> | <a href="translations/README.ja.md">日本語</a> | <a href="translations/README.pl.md">Polski</a> | <a href="translations/README.ru.md">Русский</a> | <a href="translations/README.bs.md">Bosanski</a> | <a href="translations/README.ar.md">العربية</a> | <a href="translations/README.no.md">Norsk</a> | <a href="translations/README.br.md">Português (Brasil)</a> | <a href="translations/README.th.md">ไทย</a> | <a href="translations/README.tr.md">Türkçe</a> | <a href="translations/README.uk.md">Українська</a> | <a href="translations/README.bn.md">বাংলা</a> | <a href="translations/README.gr.md">Ελληνικά</a> | <a href="translations/README.vi.md">Tiếng Việt</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -168,7 +168,7 @@ MIT. You're free to use, modify, and distribute this code, including commerciall
|
||||
<details>
|
||||
<summary>Where did Kilo CLI come from?</summary>
|
||||
|
||||
Kilo CLI is a fork of [OpenCode](https://github.com/Kilo-Org/kilocode), enhanced to work within the Kilo agentic engineering platform.
|
||||
Kilo CLI is a fork of [OpenCode](https://github.com/anomalyco/opencode), enhanced to work within the Kilo agentic engineering platform.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "bun test",
|
||||
"test:ci": "mkdir -p .artifacts/unit && bun test --timeout 30000 --reporter=junit --reporter-outfile=.artifacts/unit/junit.xml",
|
||||
"test:ci": "mkdir -p .artifacts/unit && bun test --timeout 30000 --dots --reporter=junit --reporter-outfile=.artifacts/unit/junit.xml",
|
||||
"typecheck": "tsgo --noEmit"
|
||||
},
|
||||
"bin": {
|
||||
|
||||
@@ -119,14 +119,14 @@ describe("ProjectV2.resolve", () => {
|
||||
Effect.promise(() => tmpdir()),
|
||||
(tmp) => Effect.promise(() => tmp[Symbol.asyncDispose]()),
|
||||
)
|
||||
yield* Effect.promise(() => initRepo(ssh.path, { commit: true, remote: "git@github.com:owner/repo.git" }))
|
||||
yield* Effect.promise(() => initRepo(https.path, { commit: true, remote: "https://github.com/owner/repo.git" }))
|
||||
yield* Effect.promise(() => initRepo(ssh.path, { commit: true, remote: "git@example.com:owner/repo.git" }))
|
||||
yield* Effect.promise(() => initRepo(https.path, { commit: true, remote: "https://example.com/owner/repo.git" }))
|
||||
const project = yield* Project.Service
|
||||
|
||||
const a = yield* project.resolve(abs(ssh.path))
|
||||
const b = yield* project.resolve(abs(https.path))
|
||||
|
||||
expect(a.id).toBe(remoteID("github.com/owner/repo"))
|
||||
expect(a.id).toBe(remoteID("example.com/owner/repo"))
|
||||
expect(b.id).toBe(a.id)
|
||||
}),
|
||||
)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "bun test --timeout 30000",
|
||||
"test:ci": "mkdir -p .artifacts/unit && bun test --timeout 30000 --reporter=junit --reporter-outfile=.artifacts/unit/junit.xml",
|
||||
"test:ci": "mkdir -p .artifacts/unit && bun test --timeout 30000 --dots --reporter=junit --reporter-outfile=.artifacts/unit/junit.xml",
|
||||
"typecheck": "tsgo --noEmit"
|
||||
},
|
||||
"exports": {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"test": "bun test --timeout 30000",
|
||||
"test:ci": "mkdir -p .artifacts/unit && bun test --timeout 30000 --reporter=junit --reporter-outfile=.artifacts/unit/junit.xml",
|
||||
"test:ci": "mkdir -p .artifacts/unit && bun test --timeout 30000 --dots --reporter=junit --reporter-outfile=.artifacts/unit/junit.xml",
|
||||
"typecheck": "tsgo --noEmit"
|
||||
},
|
||||
"exports": {
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
import fs from "node:fs"
|
||||
import path from "node:path"
|
||||
import { fileURLToPath } from "node:url"
|
||||
import { describe, expect, it } from "vitest"
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..")
|
||||
const pages = path.join(root, "pages")
|
||||
const images = path.join(root, "public/img")
|
||||
const removed = [
|
||||
"getting-started/settings/auto-cleanup",
|
||||
"getting-started/settings/system-notifications",
|
||||
"getting-started/faq/known-issues",
|
||||
"customize/context/large-projects",
|
||||
"automate/extending/auto-launch",
|
||||
"code-with-ai/features/fast-edits",
|
||||
"ai-providers/claude-code",
|
||||
"ai-providers/glama",
|
||||
"ai-providers/human-relay",
|
||||
"ai-providers/virtual-quota-fallback",
|
||||
"ai-providers/vscode-lm",
|
||||
"automate/tools/access-mcp-resource",
|
||||
"automate/tools/apply-diff",
|
||||
"automate/tools/ask-followup-question",
|
||||
"automate/tools/attempt-completion",
|
||||
"automate/tools/browser-action",
|
||||
"automate/tools/delete-file",
|
||||
"automate/tools/execute-command",
|
||||
"automate/tools/list-code-definition-names",
|
||||
"automate/tools/list-files",
|
||||
"automate/tools/new-task",
|
||||
"automate/tools/read-file",
|
||||
"automate/tools/search-files",
|
||||
"automate/tools/switch-mode",
|
||||
"automate/tools/update-todo-list",
|
||||
"automate/tools/use-mcp-tool",
|
||||
"automate/tools/write-to-file",
|
||||
]
|
||||
|
||||
function markdown(dir: string): string[] {
|
||||
return fs.readdirSync(dir, { withFileTypes: true }).flatMap((entry) => {
|
||||
const target = path.join(dir, entry.name)
|
||||
if (entry.isDirectory()) return markdown(target)
|
||||
return entry.name.endsWith(".md") ? [target] : []
|
||||
})
|
||||
}
|
||||
|
||||
const files = markdown(pages)
|
||||
|
||||
describe("active documentation integrity", () => {
|
||||
it("contains no legacy platform metadata or tab labels", () => {
|
||||
const violations = files.flatMap((file) => {
|
||||
const content = fs.readFileSync(file, "utf8")
|
||||
return /platform:\s*["']?legacy|VS\s?Code \(Legacy\)|VSCode \(Legacy\)/.test(content)
|
||||
? [path.relative(root, file)]
|
||||
: []
|
||||
})
|
||||
|
||||
expect(violations).toEqual([])
|
||||
})
|
||||
|
||||
it("does not retain removed legacy page files", () => {
|
||||
for (const route of removed) {
|
||||
expect(fs.existsSync(path.join(pages, `${route}.md`)), route).toBe(false)
|
||||
expect(fs.existsSync(path.join(pages, route, "index.md")), route).toBe(false)
|
||||
}
|
||||
})
|
||||
|
||||
it("does not link to removed legacy routes", () => {
|
||||
const violations: string[] = []
|
||||
for (const file of files) {
|
||||
const content = fs.readFileSync(file, "utf8")
|
||||
for (const route of removed) {
|
||||
if (content.includes(`/docs/${route}`)) violations.push(`${path.relative(root, file)} -> ${route}`)
|
||||
}
|
||||
}
|
||||
|
||||
expect(violations).toEqual([])
|
||||
})
|
||||
|
||||
it("has balanced tab and callout tags", () => {
|
||||
const paired = new Set(["callout", "tab", "tabs"])
|
||||
const violations: string[] = []
|
||||
|
||||
for (const file of files) {
|
||||
const stack: { tag: string; line: number }[] = []
|
||||
const lines = fs.readFileSync(file, "utf8").split("\n")
|
||||
lines.forEach((line, index) => {
|
||||
const tag = line.trim().match(/^\{% (\/?)([a-z-]+)(?: [^%]*)?%\}$/)
|
||||
if (!tag || !paired.has(tag[2]) || line.trim().endsWith("/%}")) return
|
||||
if (!tag[1]) {
|
||||
stack.push({ tag: tag[2], line: index + 1 })
|
||||
return
|
||||
}
|
||||
|
||||
const open = stack.pop()
|
||||
if (!open || open.tag !== tag[2]) {
|
||||
violations.push(`${path.relative(root, file)}:${index + 1} closes ${tag[2]} without a matching opener`)
|
||||
}
|
||||
})
|
||||
|
||||
for (const open of stack) {
|
||||
violations.push(`${path.relative(root, file)}:${open.line} leaves ${open.tag} unclosed`)
|
||||
}
|
||||
}
|
||||
|
||||
expect(violations).toEqual([])
|
||||
})
|
||||
|
||||
it("preserves current IDE migration anchors", () => {
|
||||
const jetbrains = fs.readFileSync(path.join(root, "markdoc/partials/install-jetbrains.md"), "utf8")
|
||||
expect(jetbrains).toContain("{% #jetbrains-early-access %}")
|
||||
expect(fs.existsSync(path.join(pages, "code-with-ai/platforms/vscode/whats-new.md"))).toBe(true)
|
||||
})
|
||||
|
||||
it("references existing local images, including PNG files", () => {
|
||||
const missing = new Set<string>()
|
||||
for (const file of files) {
|
||||
const content = fs.readFileSync(file, "utf8").replace(/<!--[\s\S]*?-->/g, "")
|
||||
for (const match of content.matchAll(/\/docs\/img\/([^\s"')]+)/g)) {
|
||||
const image = decodeURIComponent(match[1])
|
||||
if (!fs.existsSync(path.join(images, image))) missing.add(`${path.relative(root, file)} -> ${image}`)
|
||||
}
|
||||
}
|
||||
|
||||
expect([...missing]).toEqual([])
|
||||
})
|
||||
})
|
||||
@@ -1,12 +1,7 @@
|
||||
/**
|
||||
* Tests for redirect loop detection in previous-docs-redirects.js
|
||||
*
|
||||
* This test suite verifies that the redirect configuration has no loops:
|
||||
* 1. Direct loops: A path redirecting to itself (source === destination)
|
||||
* 2. Indirect loops: A chain of redirects leading back to a starting point (A → B → C → A)
|
||||
*/
|
||||
|
||||
import { expect, describe, it } from "vitest"
|
||||
import fs from "node:fs"
|
||||
import path from "node:path"
|
||||
import { fileURLToPath } from "node:url"
|
||||
import { describe, expect, it } from "vitest"
|
||||
import redirects from "../previous-docs-redirects.js"
|
||||
|
||||
interface Redirect {
|
||||
@@ -16,120 +11,132 @@ interface Redirect {
|
||||
permanent?: boolean
|
||||
}
|
||||
|
||||
const entries = redirects as Redirect[]
|
||||
const pages = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../pages")
|
||||
const archive = "https://github.com/Kilo-Org/kilocode-legacy/blob/main/docs/legacy-ides/"
|
||||
|
||||
describe("previous-docs-redirects", () => {
|
||||
describe("direct loop detection", () => {
|
||||
it("should not have any redirects where source equals destination", () => {
|
||||
const directLoops: Redirect[] = []
|
||||
it("has unique sources", () => {
|
||||
const seen = new Set<string>()
|
||||
const duplicates = new Set<string>()
|
||||
|
||||
for (const redirect of redirects as Redirect[]) {
|
||||
if (redirect.source === redirect.destination) {
|
||||
directLoops.push(redirect)
|
||||
}
|
||||
}
|
||||
for (const redirect of entries) {
|
||||
if (seen.has(redirect.source)) duplicates.add(redirect.source)
|
||||
seen.add(redirect.source)
|
||||
}
|
||||
|
||||
if (directLoops.length > 0) {
|
||||
const loopDetails = directLoops.map((r) => ` - "${r.source}" redirects to itself`).join("\n")
|
||||
expect.fail(`Found ${directLoops.length} direct redirect loop(s):\n${loopDetails}`)
|
||||
}
|
||||
})
|
||||
expect([...duplicates]).toEqual([])
|
||||
})
|
||||
|
||||
describe("indirect loop detection", () => {
|
||||
it("should not have any redirect chains that form a cycle", () => {
|
||||
// Build a map of source -> destination for quick lookup
|
||||
// Note: We only consider exact path matches, not wildcard patterns like :path*
|
||||
// Also skip direct loops (source === destination) as they're caught by the direct loop test
|
||||
const redirectMap = new Map<string, string>()
|
||||
|
||||
for (const redirect of redirects as Redirect[]) {
|
||||
// Skip wildcard redirects as they don't form exact chains
|
||||
// Skip direct loops as they're caught by the direct loop test
|
||||
if (
|
||||
!redirect.source.includes(":") &&
|
||||
!redirect.source.includes("*") &&
|
||||
redirect.source !== redirect.destination
|
||||
) {
|
||||
redirectMap.set(redirect.source, redirect.destination)
|
||||
}
|
||||
}
|
||||
|
||||
const cycles: string[][] = []
|
||||
|
||||
/**
|
||||
* Detects if following redirects from a starting path leads back to any path in the chain.
|
||||
* Uses a visited set to track the current chain and detect cycles.
|
||||
*/
|
||||
function detectCycle(startPath: string): string[] | null {
|
||||
const visited = new Set<string>()
|
||||
const chain: string[] = [startPath]
|
||||
let currentPath = startPath
|
||||
|
||||
while (redirectMap.has(currentPath)) {
|
||||
const nextPath = redirectMap.get(currentPath)!
|
||||
|
||||
if (visited.has(nextPath)) {
|
||||
// Found a cycle - return the chain from the cycle start
|
||||
const cycleStartIndex = chain.indexOf(nextPath)
|
||||
if (cycleStartIndex !== -1) {
|
||||
return [...chain.slice(cycleStartIndex), nextPath]
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
visited.add(currentPath)
|
||||
chain.push(nextPath)
|
||||
currentPath = nextPath
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
// Check each redirect source for potential cycles
|
||||
for (const source of redirectMap.keys()) {
|
||||
const cycle = detectCycle(source)
|
||||
if (cycle) {
|
||||
// Avoid duplicate cycle reports by checking if we've already found this cycle
|
||||
const cycleKey = [...cycle].sort().join(" -> ")
|
||||
const isDuplicate = cycles.some((existingCycle) => [...existingCycle].sort().join(" -> ") === cycleKey)
|
||||
if (!isDuplicate) {
|
||||
cycles.push(cycle)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cycles.length > 0) {
|
||||
const cycleDetails = cycles.map((cycle) => ` - ${cycle.join(" → ")}`).join("\n")
|
||||
expect.fail(`Found ${cycles.length} indirect redirect cycle(s):\n${cycleDetails}`)
|
||||
}
|
||||
})
|
||||
it("has valid redirect objects", () => {
|
||||
for (const redirect of entries) {
|
||||
expect(redirect.source).toMatch(/^\//)
|
||||
expect(redirect.destination).toMatch(/^(?:\/|https:\/\/)/)
|
||||
expect(redirect.basePath).toBe(false)
|
||||
expect(redirect.permanent).toBe(true)
|
||||
}
|
||||
})
|
||||
|
||||
describe("redirect structure validation", () => {
|
||||
it("should have valid redirect objects with required properties", () => {
|
||||
const invalidRedirects: { index: number; issues: string[] }[] = []
|
||||
it("preserves wildcard parameters", () => {
|
||||
for (const redirect of entries) {
|
||||
const params = redirect.source.match(/:[A-Za-z]+\*/g) ?? []
|
||||
for (const param of params) expect(redirect.destination).toContain(param)
|
||||
}
|
||||
})
|
||||
|
||||
;(redirects as Redirect[]).forEach((redirect, index) => {
|
||||
const issues: string[] = []
|
||||
it("has no direct or indirect cycles", () => {
|
||||
const exact = new Map(
|
||||
entries
|
||||
.filter((redirect) => !redirect.source.includes(":") && redirect.source !== redirect.destination)
|
||||
.map((redirect) => [redirect.source, redirect.destination]),
|
||||
)
|
||||
|
||||
if (typeof redirect.source !== "string" || redirect.source.trim() === "") {
|
||||
issues.push("missing or invalid 'source' property")
|
||||
}
|
||||
for (const source of exact.keys()) {
|
||||
const seen = new Set([source])
|
||||
const chain = [source]
|
||||
let current = source
|
||||
|
||||
if (typeof redirect.destination !== "string" || redirect.destination.trim() === "") {
|
||||
issues.push("missing or invalid 'destination' property")
|
||||
}
|
||||
|
||||
if (issues.length > 0) {
|
||||
invalidRedirects.push({ index, issues })
|
||||
}
|
||||
})
|
||||
|
||||
if (invalidRedirects.length > 0) {
|
||||
const details = invalidRedirects
|
||||
.map((r) => ` - Redirect at index ${r.index}: ${r.issues.join(", ")}`)
|
||||
.join("\n")
|
||||
expect.fail(`Found ${invalidRedirects.length} invalid redirect(s):\n${details}`)
|
||||
while (exact.has(current)) {
|
||||
current = exact.get(current)!
|
||||
chain.push(current)
|
||||
expect(seen.has(current), `Redirect cycle: ${chain.join(" -> ")}`).toBe(false)
|
||||
seen.add(current)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
it("points internal destinations at existing pages", () => {
|
||||
for (const redirect of entries) {
|
||||
const destination = redirect.destination.split("#", 1)[0]
|
||||
if (!destination.startsWith("/docs") || destination.includes(":")) continue
|
||||
|
||||
const route = destination.replace(/^\/docs\/?/, "")
|
||||
const candidates = route
|
||||
? [path.join(pages, `${route}.md`), path.join(pages, route, "index.md")]
|
||||
: [path.join(pages, "index.md")]
|
||||
expect(candidates.some((candidate) => fs.existsSync(candidate)), `${redirect.source} -> ${destination}`).toBe(true)
|
||||
}
|
||||
})
|
||||
|
||||
it("redirects removed legacy routes directly to the archive", () => {
|
||||
const expected = new Map([
|
||||
[
|
||||
"/docs/getting-started/settings/auto-cleanup",
|
||||
`${archive}getting-started/settings/auto-cleanup.md`,
|
||||
],
|
||||
["/docs/advanced-usage/large-projects", `${archive}customize/context/large-projects.md`],
|
||||
["/docs/features/tools/read-file", `${archive}automate/tools/read-file.md`],
|
||||
["/docs/providers/claude-code", `${archive}ai-providers/claude-code.md`],
|
||||
["/docs/jetbrains-troubleshooting", `${archive}getting-started/troubleshooting/jetbrains.md`],
|
||||
])
|
||||
const actual = new Map(entries.map((redirect) => [redirect.source, redirect.destination]))
|
||||
|
||||
for (const [source, destination] of expected) expect(actual.get(source)).toBe(destination)
|
||||
})
|
||||
|
||||
it("keeps aliases for current pages on the active docs site", () => {
|
||||
const expected = new Map([
|
||||
["/docs/providers", "/docs/ai-providers"],
|
||||
["/docs/providers/:path*", "/docs/ai-providers/:path*"],
|
||||
["/docs/providers/openai-codex", "/docs/ai-providers/openai-chatgpt-plus-pro"],
|
||||
["/docs/basic-usage/using-modes", "/docs/code-with-ai/agents/using-agents"],
|
||||
["/docs/features/slash-commands", "/docs/customize/workflows"],
|
||||
["/docs/features/slash-commands/workflows", "/docs/customize/workflows"],
|
||||
["/docs/features/custom-instructions", "/docs/customize/custom-instructions"],
|
||||
["/docs/advanced-usage/custom-instructions", "/docs/customize/custom-instructions"],
|
||||
["/docs/advanced-usage/custom-rules", "/docs/customize/custom-rules"],
|
||||
["/docs/features/skills", "/docs/customize/skills"],
|
||||
["/docs/features/shell-integration", "/docs/automate/extending/shell-integration"],
|
||||
])
|
||||
const actual = new Map(entries.map((redirect) => [redirect.source, redirect.destination]))
|
||||
|
||||
for (const [source, destination] of expected) expect(actual.get(source)).toBe(destination)
|
||||
})
|
||||
|
||||
it("orders exact provider routes before the provider wildcard", () => {
|
||||
const wildcard = entries.findIndex((redirect) => redirect.source === "/docs/providers/:path*")
|
||||
const exact = [
|
||||
"/docs/providers",
|
||||
"/docs/providers/claude-code",
|
||||
"/docs/providers/glama",
|
||||
"/docs/providers/human-relay",
|
||||
"/docs/providers/virtual-quota-fallback",
|
||||
"/docs/providers/vscode-lm",
|
||||
"/docs/providers/openai-codex",
|
||||
]
|
||||
|
||||
expect(wildcard).toBeGreaterThan(-1)
|
||||
for (const source of exact) {
|
||||
const index = entries.findIndex((redirect) => redirect.source === source)
|
||||
expect(index, source).toBeGreaterThan(-1)
|
||||
expect(index, source).toBeLessThan(wildcard)
|
||||
}
|
||||
})
|
||||
|
||||
it("uses well-formed GitHub Markdown destinations", () => {
|
||||
for (const redirect of entries) {
|
||||
if (!redirect.destination.startsWith(archive)) continue
|
||||
expect(redirect.destination).toMatch(/\.md(?:#.*)?$/)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -23,10 +23,31 @@ describe("sitemap.xml", () => {
|
||||
expect(xml).toContain("<loc>https://kilo.ai/docs</loc>")
|
||||
})
|
||||
|
||||
it("includes known pages from the nav", () => {
|
||||
it("includes representative current product pages", () => {
|
||||
const xml = buildSitemapXml()
|
||||
expect(xml).toContain("https://kilo.ai/docs/getting-started/installing")
|
||||
expect(xml).toContain("https://kilo.ai/docs/getting-started")
|
||||
expect(xml).toContain("https://kilo.ai/docs/code-with-ai/platforms/vscode")
|
||||
expect(xml).toContain("https://kilo.ai/docs/code-with-ai/platforms/vscode/whats-new")
|
||||
expect(xml).toContain("https://kilo.ai/docs/code-with-ai/platforms/cli")
|
||||
expect(xml).toContain("https://kilo.ai/docs/code-with-ai/platforms/jetbrains")
|
||||
expect(xml).toContain("https://kilo.ai/docs/automate/tools")
|
||||
expect(xml).toContain("https://kilo.ai/docs/automate/tools/semantic-search")
|
||||
})
|
||||
|
||||
it("excludes removed legacy product pages", () => {
|
||||
const xml = buildSitemapXml()
|
||||
const removed = [
|
||||
"/getting-started/settings/auto-cleanup",
|
||||
"/getting-started/settings/system-notifications",
|
||||
"/getting-started/faq/known-issues",
|
||||
"/customize/context/large-projects",
|
||||
"/automate/extending/auto-launch",
|
||||
"/automate/tools/read-file",
|
||||
"/code-with-ai/features/fast-edits",
|
||||
"/ai-providers/vscode-lm",
|
||||
]
|
||||
|
||||
for (const route of removed) expect(xml).not.toContain(`https://kilo.ai/docs${route}`)
|
||||
})
|
||||
|
||||
it("has no duplicate <loc> entries", () => {
|
||||
|
||||
@@ -8,15 +8,10 @@ interface Props {
|
||||
export function PageVersionSwitcher({ platform }: Props) {
|
||||
if (!platform || platform === "all") return null
|
||||
|
||||
const legacy = platform === "legacy"
|
||||
return (
|
||||
<div className="version-banner">
|
||||
<span className="version-banner-icon">{legacy ? "\u24D8" : "\u2728"}</span>
|
||||
<span>
|
||||
{legacy
|
||||
? "This page applies to the legacy VSCode extension."
|
||||
: "This page applies to the current VSCode extension & CLI."}
|
||||
</span>
|
||||
<span className="version-banner-icon">{"\u2728"}</span>
|
||||
<span>This page applies to the current VSCode extension & CLI.</span>
|
||||
|
||||
<style jsx>{`
|
||||
.version-banner {
|
||||
|
||||
@@ -69,10 +69,9 @@ const ChevronLeft = () => (
|
||||
|
||||
function PlatformBadge({ platform }: { platform?: Platform }) {
|
||||
if (!platform || platform === "all") return null
|
||||
const label = platform === "legacy" ? "Legacy" : "New"
|
||||
return (
|
||||
<span className="platform-badge" data-platform={platform}>
|
||||
{label}
|
||||
New
|
||||
</span>
|
||||
)
|
||||
}
|
||||
@@ -505,11 +504,6 @@ export function SideNav({ isMobileOpen = false, onMobileClose }: SideNavProps) {
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.nav-links :global(.platform-badge[data-platform="legacy"]) {
|
||||
background-color: rgba(139, 92, 246, 0.12);
|
||||
color: rgb(139, 92, 246);
|
||||
}
|
||||
|
||||
.nav-links :global(.platform-badge[data-platform="new"]) {
|
||||
background-color: rgba(34, 197, 94, 0.12);
|
||||
color: rgb(34, 197, 94);
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
---
|
||||
title: Dev Container Persistence
|
||||
description: How to preserve Kilo Code threads and settings in dev containers
|
||||
---
|
||||
|
||||
# Dev Container Persistence
|
||||
|
||||
When using Kilo Code in development containers (VS Code Dev Containers, GitHub Codespaces, etc.), your threads and settings can persist across container rebuilds by properly configuring volume mounts.
|
||||
|
||||
## Why Persistence Matters
|
||||
|
||||
Dev containers are ephemeral by default - when you rebuild the container, all data is lost unless explicitly persisted. Kilo Code stores important data including:
|
||||
|
||||
- **Conversation threads**: Your ongoing discussions with Kilo Code
|
||||
- **Settings**: API configurations, custom modes, and preferences
|
||||
- **Cache**: Vector store for code indexing and browser tool data
|
||||
|
||||
## Required Configuration
|
||||
|
||||
The Kilo Code dev container is pre-configured with named volumes to preserve your data. If you're setting up your own dev container, add these mounts to your `devcontainer.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Your Project",
|
||||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
|
||||
"mounts": [
|
||||
{
|
||||
"source": "kilocode-global-storage",
|
||||
"target": "/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code",
|
||||
"type": "volume"
|
||||
},
|
||||
{
|
||||
"source": "kilocode-settings",
|
||||
"target": "/root/.vscode-remote/data/User/settings",
|
||||
"type": "volume"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 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/` |
|
||||
| Vector Store | `/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code/vector/` |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Threads Don't Appear After Rebuild
|
||||
|
||||
1. **Check volume attachment**: Ensure the dev container has the volumes attached
|
||||
2. **Verify volume contents**: Check that the volume contains your data
|
||||
3. **Rebuild with volumes**: Use `devcontainer rebuild` instead of `devcontainer up --rebuild`
|
||||
|
||||
### Volumes Lost
|
||||
|
||||
If named volumes are accidentally deleted:
|
||||
|
||||
1. Threads cannot be automatically recovered
|
||||
2. Start new conversations with Kilo Code
|
||||
3. Consider implementing a backup strategy for important threads
|
||||
|
||||
### Manual Backup
|
||||
|
||||
To manually back up your threads:
|
||||
|
||||
```bash
|
||||
# Copy thread data from the container
|
||||
docker cp <container-name>:/root/.vscode-remote/data/User/globalStorage/kilocode.kilo-code ./kilocode-backup
|
||||
```
|
||||
|
||||
## Custom Storage Path
|
||||
|
||||
For advanced configurations, you can specify a custom storage path:
|
||||
|
||||
1. Add a bind mount to your `devcontainer.json`:
|
||||
|
||||
```json
|
||||
"mounts": [
|
||||
{
|
||||
"source": "${localWorkspaceFolder}/.kilocode-data",
|
||||
"target": "/home/vscode/kilocode-data",
|
||||
"type": "bind"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
2. Set the custom storage path in VS Code settings:
|
||||
- Open Settings (`Ctrl+,` or `Cmd+,`)
|
||||
- Search for "Kilo Code: Custom Storage Path"
|
||||
- Enter: `/home/vscode/kilocode-data`
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Use named volumes** for automatic persistence
|
||||
2. **Back up important threads** before major container changes
|
||||
3. **Avoid deleting volumes** during cleanup
|
||||
4. **Test persistence** by rebuilding and verifying threads remain
|
||||
|
||||
## GitHub Codespaces
|
||||
|
||||
GitHub Codespaces automatically persists your VS Code settings and extensions. For Kilo Code threads, the pre-configured dev container includes the necessary volume mounts.
|
||||
|
||||
If using a custom Codespace configuration, ensure the mounts from the Required Configuration section are included.
|
||||
@@ -1,315 +0,0 @@
|
||||
---
|
||||
sidebar_label: Switching from Cline
|
||||
---
|
||||
|
||||
# Migrating from Cline to Kilo
|
||||
|
||||
A practical guide for developers switching from Cline to Kilo.
|
||||
|
||||
## Why Switch?
|
||||
|
||||
**Speed.** The Kilo Platform is designed to reduce friction across the entire development workflow. Beyond feature parity with Cline, Kilo includes Code Reviews, App Builder, Cloud Agents, and one-click Deploy.
|
||||
|
||||
**Multi-platform.** Work in VS Code, JetBrains IDEs, CLI, or the web. Your Sessions sync across all of them automatically.
|
||||
|
||||
**Specialized modes.** Instead of one agent doing everything, Kilo has five specialized modes optimized for different parts of your workflow.
|
||||
|
||||
**500+ models.** More providers, more options, better pricing flexibility. Switch models mid-conversation if you want.
|
||||
|
||||
---
|
||||
|
||||
## Understanding Kilo's Mode System
|
||||
|
||||
Cline uses a single agent with a Plan/Act toggle. Kilo takes a different approach: five specialized modes, each optimized for a specific part of development. You select modes from a dropdown in the interface in the Kilo Extension, or with slash commands in the CLI.
|
||||
|
||||
### Kilo's Five Modes
|
||||
|
||||
#### Code Mode (default)
|
||||
|
||||
- **What it does:** Implementation and refactoring
|
||||
- **Cline equivalent:** Act mode
|
||||
- **When to use:** Writing features, fixing bugs, making changes
|
||||
- **Example:** "Add user authentication to the API"
|
||||
|
||||
#### Ask Mode
|
||||
|
||||
- **What it does:** Answers questions, explains code
|
||||
- **Cline equivalent:** Plan mode (read-only exploration)
|
||||
- **When to use:** Understanding codebases, learning patterns
|
||||
- **Example:** "How does our caching layer work?"
|
||||
|
||||
#### Debug Mode
|
||||
|
||||
- **What it does:** Systematic troubleshooting and error diagnosis
|
||||
- **Cline equivalent:** Act mode focused on debugging
|
||||
- **When to use:** Tracking down bugs, fixing runtime issues
|
||||
- **Example:** "Why is this API endpoint returning 500?"
|
||||
|
||||
#### Architect Mode
|
||||
|
||||
- **What it does:** Planning, design, and technical leadership
|
||||
- **Cline equivalent:** Plan mode (exploration and planning)
|
||||
- **When to use:** Before complex refactors, designing new systems
|
||||
- **Example:** "Design a caching strategy for our API"
|
||||
|
||||
#### Orchestrator Mode
|
||||
|
||||
- **What it does:** Breaks down complex tasks, coordinates other modes
|
||||
- **Cline equivalent:** Complex multi-step workflows
|
||||
- **When to use:** Large features spanning multiple systems
|
||||
- **Example:** "Build a complete user management system"
|
||||
|
||||
### Mode Switching in Action
|
||||
|
||||
**Cline workflow:** Toggle Plan/Act → Submit task → Plan phase → Approve → Act phase → Checkpoint
|
||||
|
||||
**Kilo workflow:**
|
||||
Select mode from dropdown → Build → Switch modes as needed → Checkpoint → Session auto-saves
|
||||
|
||||
Or
|
||||
|
||||
Select Orchestrator mode → autonomously define subtasks → intelligently distribute subtasks across modes
|
||||
|
||||
#### Example: Refactoring authentication
|
||||
|
||||
**Cline:**
|
||||
|
||||
1. Enable Plan/Act mode
|
||||
2. "Refactor auth to use OAuth2"
|
||||
3. Wait for plan → Review → Approve
|
||||
4. Watch step-by-step execution
|
||||
5. Checkpoint when done
|
||||
|
||||
**Kilo:**
|
||||
|
||||
1. Select **Orchestrator** from the mode dropdown
|
||||
2. "Implement OAuth2 refactor for our authentication"
|
||||
3. Orchestrator creates subtasks for other modes automatically
|
||||
4. **Architect Mode** reviews the architecture
|
||||
5. **Code Mode** implements the OAuth2 client
|
||||
6. Session/checkpoints preserved automatically
|
||||
|
||||
#### Example: Understanding unfamiliar code
|
||||
|
||||
**Cline:** Use Plan mode (but risk accidentally switching to Act)
|
||||
|
||||
**Kilo:** Select **Ask** from the dropdown
|
||||
|
||||
- "Explain how the payment processing flow works"
|
||||
- "What external services does this integrate with?"
|
||||
- Ask mode never writes files, so exploration is always safe
|
||||
|
||||
**Why this matters:** In Cline, you might accidentally make changes while exploring. In Kilo, Ask and Architect modes can't write files, so you're safe to explore without worry. Kilo's **Orchestrator** mode lets you intelligently generate and execute subtasks that are optimized for each mode.
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
### VS Code / Cursor
|
||||
|
||||
1. Open Extensions (`Cmd/Ctrl + Shift + X`)
|
||||
2. Search "Kilo Code"
|
||||
3. Click Install
|
||||
4. Find the Kilo icon in your sidebar
|
||||
|
||||
### JetBrains IDEs
|
||||
|
||||
Supports IntelliJ, PyCharm, WebStorm, and all JetBrains IDEs.
|
||||
|
||||
**Prerequisites:**
|
||||
|
||||
- JetBrains Toolbox (required for auth)
|
||||
- Node.js LTS
|
||||
|
||||
**Install:**
|
||||
|
||||
1. Settings → Plugins → Marketplace
|
||||
2. Search "Kilo Code"
|
||||
3. Install and restart
|
||||
4. Find Kilo icon in right sidebar
|
||||
|
||||
### CLI
|
||||
|
||||
```shell
|
||||
npm install -g @kilocode/cli
|
||||
kilo
|
||||
```
|
||||
|
||||
### Web (Cloud Agents & App Builder)
|
||||
|
||||
Visit [app.kilo.ai](https://app.kilo.ai/) and sign in. This gives you access to:
|
||||
|
||||
- **Cloud Agents:** Run Kilo without a local machine
|
||||
- **App Builder:** Build and preview apps directly in your browser
|
||||
- **Kilo Deploy:** One-click deployments
|
||||
- **Code Reviews:** AI-powered PR analysis
|
||||
|
||||
---
|
||||
|
||||
## Initial Setup
|
||||
|
||||
### Create account
|
||||
|
||||
1. Click "Try Kilo Code for Free" in the Kilo panel
|
||||
2. Sign in with OAuth at kilo.ai
|
||||
3. You'll be redirected back to your IDE
|
||||
|
||||
### Configure your provider
|
||||
|
||||
**Option 1: Use Kilo Gateway (easiest)**
|
||||
|
||||
1. Open settings (⚙️ icon)
|
||||
2. Select "Kilo Gateway" as provider
|
||||
3. Choose a model (such as Claude Opus 4.5, Gemini 3, MiniMax M2.1)
|
||||
|
||||
**Option 2: Bring your own API keys**
|
||||
|
||||
1. Select your provider (Anthropic, OpenAI, etc.)
|
||||
2. Enter your API key
|
||||
3. Choose your model
|
||||
|
||||
---
|
||||
|
||||
## Beyond the IDE: Kilo's Platform Features
|
||||
|
||||
One of the biggest differences from Cline is that Kilo isn't just an IDE extension. It's a platform with multiple interfaces that can all share your Sessions and context.
|
||||
|
||||
### Cloud Agents
|
||||
|
||||
Run Kilo from [app.kilo.ai/cloud](https://app.kilo.ai/cloud) without needing your local machine. Great for:
|
||||
|
||||
- Working from a tablet or phone
|
||||
- Offloading heavy tasks
|
||||
- Parallel execution without blocking your IDE
|
||||
|
||||
### Parallel Agents
|
||||
|
||||
Run multiple agents simultaneously without conflicts, in both the IDE and CLI. Start an agent working on tests while another handles documentation.
|
||||
|
||||
### Sessions
|
||||
|
||||
Your conversation history, context, and state sync across all interfaces automatically. Start a task in the CLI, continue in VS Code, check progress on mobile.
|
||||
|
||||
### App Builder
|
||||
|
||||
Build live apps and sites directly from the web with a real-time preview. Similar to Lovable, but integrated with your Kilo Sessions. Deploy with one click when you're ready.
|
||||
|
||||
### Kilo Deploy
|
||||
|
||||
One-click deployments from directly within Kilo. Go from code to production without leaving your workflow.
|
||||
|
||||
### Code Reviews
|
||||
|
||||
Automatically analyzes your PRs using your choice of AI model. Reviews happen the moment a PR is opened or updated, covering performance, security, style, and test coverage.
|
||||
|
||||
### Codebase Indexing
|
||||
|
||||
Semantic search across your repositories using configurable embedding providers and vector stores. Kilo indexes your codebase to deliver more relevant, context-aware responses.
|
||||
|
||||
### Autocomplete
|
||||
|
||||
In-line ghost-text completions with tab to complete. Works alongside the agent modes for a complete coding experience.
|
||||
|
||||
---
|
||||
|
||||
## Complete Development Workflows
|
||||
|
||||
### New Feature Development
|
||||
|
||||
**Kilo approach:**
|
||||
|
||||
1. **Architect mode:** "Design a user notification system"
|
||||
2. Review architecture, discuss trade-offs
|
||||
3. **Code mode:** "Implement the notification service"
|
||||
4. Fast Apply builds it quickly
|
||||
5. **Debug mode:** "Email sends aren't working"
|
||||
6. Fix issues
|
||||
7. Session auto-saves as "Notifications-Complete"
|
||||
|
||||
### Debugging Production Issues
|
||||
|
||||
**Kilo approach:**
|
||||
|
||||
1. **Debug mode:** "Checkout fails with 'payment_intent_not_found'"
|
||||
2. Debug mode systematically checks logs, traces API calls
|
||||
3. **Code mode:** "Add idempotency key to prevent duplicates"
|
||||
4. Verify fix
|
||||
|
||||
### Large Refactoring
|
||||
|
||||
**Kilo approach:**
|
||||
|
||||
1. **Ask mode:** "Explain our current auth implementation"
|
||||
2. **Architect mode:** "Design migration to JWT tokens"
|
||||
3. Session saves as "Auth-Refactor-Plan"
|
||||
4. **Code mode:** Implement JWT generation, update middleware
|
||||
5. **Debug mode:** Fix failing tests
|
||||
|
||||
### Learning Unfamiliar Code
|
||||
|
||||
**Kilo approach:**
|
||||
|
||||
1. **Ask mode:** "Explain how payment processing works"
|
||||
2. "What happens when a payment fails?"
|
||||
3. "Show me the retry logic"
|
||||
4. Ask mode never writes, so exploration is completely safe
|
||||
5. When ready, switch to **Code mode** to make changes
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
|
||||
---
|
||||
|
||||
## What You Gain
|
||||
|
||||
- **Specialized modes:** Purpose-built for different parts of development
|
||||
- **Fast Apply:** 5-10x faster code application
|
||||
- **Autocomplete:** Inline AI suggestions
|
||||
- **Multi-platform:** VS Code, JetBrains, CLI, web
|
||||
- **Session Persistance:** Sessions preserve mode + context across devices
|
||||
- **500+ models:** More provider options, switch anytime
|
||||
- **Cloud Agents:** Work without your local machine
|
||||
- **App Builder:** Build and preview apps in the browser
|
||||
- **One-click Deploy:** Ship directly from Kilo
|
||||
- **Code Reviews:** AI-powered PR analysis
|
||||
- **Parallel Agents:** Run multiple agents simultaneously
|
||||
|
||||
---
|
||||
|
||||
## Common Questions
|
||||
|
||||
**Q: Do I have to switch modes constantly?** No. Orchestrator does that automatically. Code mode handles most day-to-day work. Switch when you need specialized behavior.
|
||||
|
||||
**Q: What if I forget to switch modes?** Code mode is the default and handles most tasks. It'll still work, just might not be optimized for exploration or planning.
|
||||
|
||||
**Q: Can I customize what each mode does?** Yes. Add mode-specific instructions in settings, or create custom modes.
|
||||
|
||||
**Q: Can I use both Cline and Kilo side-by-side?** Yes. They're separate extensions.
|
||||
|
||||
**Q: What's the difference between Cloud Agents and the IDE extension?** Same capabilities, different interface. Cloud Agents run in the browser, so you can work from any device without your local machine.
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
1. Install Kilo in your primary IDE
|
||||
2. Try each mode with a small task:
|
||||
- **Code:** "Add a hello world endpoint"
|
||||
- **Ask:** "Explain what this file does"
|
||||
- **Debug:** "Why is this function returning undefined?"
|
||||
- **Architect:** "Design a logging system"
|
||||
- **Orchestrator:** "Build an app, end-to-end, that…"
|
||||
3. Try Cloud Agents at [app.kilo.ai](https://app.kilo.ai/)
|
||||
4. Install the Kilo CLI with `npm install -g @kilocode/cli`
|
||||
5. Enable Autocomplete for inline suggestions
|
||||
@@ -12,7 +12,6 @@ export const AiProvidersNav: NavSection[] = [
|
||||
title: "AI Labs",
|
||||
links: [
|
||||
{ href: "/ai-providers/anthropic", children: "Anthropic" },
|
||||
{ href: "/ai-providers/claude-code", children: "Claude Code" },
|
||||
{ href: "/ai-providers/openai", children: "OpenAI" },
|
||||
{
|
||||
href: "/ai-providers/openai-chatgpt-plus-pro",
|
||||
@@ -28,7 +27,6 @@ export const AiProvidersNav: NavSection[] = [
|
||||
title: "AI Gateways",
|
||||
links: [
|
||||
{ href: "/ai-providers/openrouter", children: "OpenRouter" },
|
||||
{ href: "/ai-providers/glama", children: "Glama" },
|
||||
{ href: "/ai-providers/requesty", children: "Requesty" },
|
||||
{ href: "/ai-providers/unbound", children: "Unbound" },
|
||||
{ href: "/ai-providers/zenmux", children: "ZenMux" },
|
||||
@@ -56,7 +54,10 @@ export const AiProvidersNav: NavSection[] = [
|
||||
{ href: "/ai-providers/ollama", children: "Ollama" },
|
||||
{ href: "/ai-providers/lmstudio", children: "LM Studio" },
|
||||
{ href: "/ai-providers/atomic-chat", children: "Atomic Chat" },
|
||||
{ href: "/ai-providers/vscode-lm", children: "VS Code LM API" },
|
||||
{
|
||||
href: "/ai-providers/anaconda-desktop",
|
||||
children: "Anaconda Desktop",
|
||||
},
|
||||
{
|
||||
href: "/ai-providers/openai-compatible",
|
||||
children: "OpenAI Compatible",
|
||||
@@ -79,12 +80,7 @@ export const AiProvidersNav: NavSection[] = [
|
||||
title: "Special Modes",
|
||||
links: [
|
||||
{ href: "/ai-providers/v0", children: "v0" },
|
||||
{ href: "/ai-providers/human-relay", children: "Human Relay" },
|
||||
{ href: "/ai-providers/synthetic", children: "Synthetic Provider" },
|
||||
{
|
||||
href: "/ai-providers/virtual-quota-fallback",
|
||||
children: "Virtual Quota Fallback",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -38,11 +38,6 @@ export const AutomateNav: NavSection[] = [
|
||||
children: "Plugins",
|
||||
platform: "new",
|
||||
},
|
||||
{
|
||||
href: "/automate/extending/auto-launch",
|
||||
children: "Auto-launch Configuration",
|
||||
platform: "legacy",
|
||||
},
|
||||
{
|
||||
href: "/automate/mcp/overview",
|
||||
children: "MCP",
|
||||
@@ -66,8 +61,8 @@ export const AutomateNav: NavSection[] = [
|
||||
{
|
||||
title: "Tools",
|
||||
links: [
|
||||
{ href: "/automate/how-tools-work", children: "How Tools Work", platform: "legacy" },
|
||||
{ href: "/automate/tools", children: "Tools Details", platform: "legacy" },
|
||||
{ href: "/automate/how-tools-work", children: "How Tools Work" },
|
||||
{ href: "/automate/tools", children: "Tools Details" },
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -114,7 +114,6 @@ export const CodeWithAiNav: NavSection[] = [
|
||||
children: "Agent Behavior",
|
||||
subLinks: [
|
||||
{ href: "/code-with-ai/features/browser-use", children: "Browser Use" },
|
||||
{ href: "/code-with-ai/features/fast-edits", children: "Fast Edits" },
|
||||
{
|
||||
href: "/code-with-ai/features/task-todo-list",
|
||||
children: "Task Todo List",
|
||||
|
||||
@@ -52,11 +52,6 @@ export const CustomizeNav: NavSection[] = [
|
||||
href: "/customize/context/kilocodeignore",
|
||||
children: ".kilocodeignore",
|
||||
},
|
||||
{
|
||||
href: "/customize/context/large-projects",
|
||||
children: "Large Projects",
|
||||
platform: "legacy",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -30,12 +30,6 @@ export const GettingStartedNav: NavSection[] = [
|
||||
children: "Settings",
|
||||
subLinks: [
|
||||
{ href: "/getting-started/settings/auto-approving-actions", children: "Auto-Approving Actions" },
|
||||
{ href: "/getting-started/settings/auto-cleanup", children: "Auto Cleanup", platform: "legacy" },
|
||||
{
|
||||
href: "/getting-started/settings/system-notifications",
|
||||
children: "System Notifications",
|
||||
platform: "legacy",
|
||||
},
|
||||
{ href: "/getting-started/settings/sandboxing", children: "Sandboxing" },
|
||||
],
|
||||
},
|
||||
@@ -55,7 +49,6 @@ export const GettingStartedNav: NavSection[] = [
|
||||
{ href: "/getting-started/faq/setup-and-installation", children: "Setup and Installation" },
|
||||
{ href: "/getting-started/faq/credits-and-billing", children: "Credits and Billing" },
|
||||
{ href: "/getting-started/faq/account-and-integration", children: "Account and Integration" },
|
||||
{ href: "/getting-started/faq/known-issues", children: "Known Issues" },
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -3,49 +3,9 @@ import { NavSection } from "../types"
|
||||
export const ToolsNav: NavSection[] = [
|
||||
{
|
||||
title: "Tools",
|
||||
links: [{ href: "/automate/tools", children: "Overview" }],
|
||||
},
|
||||
{
|
||||
title: "Read Tools",
|
||||
links: [
|
||||
{ href: "/automate/tools/read-file", children: "read_file" },
|
||||
{ href: "/automate/tools/search-files", children: "search_files" },
|
||||
{ href: "/automate/tools/list-files", children: "list_files" },
|
||||
{ href: "/automate/tools/list-code-definition-names", children: "list_code_definition_names" },
|
||||
{ href: "/automate/tools/semantic-search", children: "semantic_search" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Edit Tools",
|
||||
links: [
|
||||
{ href: "/automate/tools/apply-diff", children: "apply_diff" },
|
||||
{ href: "/automate/tools/delete-file", children: "delete_file" },
|
||||
{ href: "/automate/tools/write-to-file", children: "write_to_file" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Browser Tools",
|
||||
links: [{ href: "/automate/tools/browser-action", children: "browser_action" }],
|
||||
},
|
||||
{
|
||||
title: "Command Tools",
|
||||
links: [{ href: "/automate/tools/execute-command", children: "execute_command" }],
|
||||
},
|
||||
{
|
||||
title: "MCP Tools",
|
||||
links: [
|
||||
{ href: "/automate/tools/use-mcp-tool", children: "use_mcp_tool" },
|
||||
{ href: "/automate/tools/access-mcp-resource", children: "access_mcp_resource" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Workflow Tools",
|
||||
links: [
|
||||
{ href: "/automate/tools/switch-mode", children: "switch_mode" },
|
||||
{ href: "/automate/tools/new-task", children: "new_task" },
|
||||
{ href: "/automate/tools/ask-followup-question", children: "ask_followup_question" },
|
||||
{ href: "/automate/tools/attempt-completion", children: "attempt_completion" },
|
||||
{ href: "/automate/tools/update-todo-list", children: "update_todo_list" },
|
||||
{ href: "/automate/tools", children: "Overview" },
|
||||
{ href: "/automate/tools/semantic-search", children: "Semantic Search" },
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
export type Platform = "legacy" | "new" | "all"
|
||||
export type Platform = "new" | "all"
|
||||
|
||||
export interface NavLink {
|
||||
href: string
|
||||
children: string
|
||||
platform?: Platform // "legacy" = stable VSCode only, "new" = new VSCode + CLI only, omitted = universal
|
||||
platform?: Platform // "new" = current VS Code + CLI only, omitted = universal
|
||||
subLinks?: NavLink[] // Optional nested links for second-level navigation
|
||||
}
|
||||
|
||||
|
||||
@@ -1,187 +0,0 @@
|
||||
## Mapping Existing Pages to New Structure
|
||||
|
||||
### 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` |
|
||||
|
||||
---
|
||||
|
||||
### 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` |
|
||||
|
||||
---
|
||||
|
||||
### 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` |
|
||||
|
||||
---
|
||||
|
||||
### 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 |
|
||||
|
||||
---
|
||||
|
||||
### Deploy & Secure
|
||||
|
||||
| New Item | Existing Page(s) |
|
||||
|---|---|
|
||||
| Deploy | `advanced-usage/deploy` |
|
||||
| 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` |
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**Reusable as-is:** ~70% of your content maps cleanly
|
||||
|
||||
**Needs new pages:** ~12-15 new pages, mostly for newer cloud/platform features
|
||||
|
||||
**Condense/remove:** ~10-12 pages that are either too granular or should be folded into parent pages
|
||||
|
||||
**Tools Reference:** Decide if this stays in nav or becomes a "Reference" footer link - it's useful but clutters the IA
|
||||
|
||||
Want me to mock up the actual sidebar structure with the subheaders?
|
||||
@@ -1,41 +1,8 @@
|
||||
Kilo Code supports all JetBrains IDEs including IntelliJ IDEA, WebStorm, PyCharm, and more.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Before installing the Kilo Code plugin, ensure you have:
|
||||
|
||||
1. **JetBrains Toolbox (Recommended):**
|
||||
- Download from [https://www.jetbrains.com/toolbox-app/](https://www.jetbrains.com/toolbox-app/)
|
||||
- Toolbox is required for authentication callbacks to work properly
|
||||
- Without Toolbox, you'll need to manually configure API keys
|
||||
|
||||
2. **Node.js:**
|
||||
- Download LTS version from [https://nodejs.org/](https://nodejs.org/)
|
||||
|
||||
{% callout type="tip" %}
|
||||
Try the [v7 Early Access Program plugin](#jetbrains-early-access) for a JetBrains-native experience that does not require Node.js or manual API key configuration.
|
||||
{% /callout %}
|
||||
|
||||
### Install directly
|
||||
|
||||
1. If you don't have a JetBrains IDE installed, download one from [jetbrains.com](https://www.jetbrains.com/)
|
||||
2. Then, you can click the button below to install Kilo Code directly from the JetBrains Marketplace:
|
||||
|
||||
[](https://plugins.jetbrains.com/plugin/28350-kilo-code)
|
||||
|
||||
### Install from JetBrains Marketplace
|
||||
|
||||
1. Open your JetBrains IDE
|
||||
2. Go to **Settings/Preferences → Plugins**
|
||||
3. Click **Marketplace** tab
|
||||
4. Search for "Kilo Code"
|
||||
5. Click **Install** and restart your IDE
|
||||
Kilo Code's current JetBrains plugin uses a native interface and supports JetBrains remote development without requiring Node.js.
|
||||
|
||||
### Try the v7 Early Access Program plugin {% #jetbrains-early-access %}
|
||||
|
||||
The v7 EAP plugin is available for users who want to try the newest JetBrains experience before it reaches the default Marketplace channel. It uses a JetBrains-native UI and is designed to work well with JetBrains remote development.
|
||||
|
||||
Follow the [v7 roadmap and release milestone](https://github.com/Kilo-Org/kilocode/milestone/1) for planned work and release progress.
|
||||
The v7 EAP plugin is available for users who want to try the newest JetBrains experience before it reaches the default Marketplace channel. Follow the [v7 roadmap and release milestone](https://github.com/Kilo-Org/kilocode/milestone/1) for planned work and release progress.
|
||||
|
||||
{% callout type="info" %}
|
||||
The v7 EAP plugin is compatible with JetBrains IDE builds 261 and later. EAP builds update frequently, so we recommend enabling automatic plugin updates in your JetBrains IDE from **Settings/Preferences → System Settings → Updates → Update plugins automatically**. Share feedback in the JetBrains channel on the [Kilo Discord](https://kilo.ai/discord).
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
### Install directly
|
||||
|
||||
1. If you don't have VS Code installed, download it from [code.visualstudio.com](https://code.visualstudio.com/)
|
||||
2. Then, you can click the button below to install Kilo Code directly from the VS Code Marketplace:
|
||||
|
||||
[](vscode:extension/kilocode.kilo-code)
|
||||
|
||||
### Install from VS Code Marketplace
|
||||
|
||||
1. Open VS Code
|
||||
2. Press `Ctrl+Shift+X` (Windows/Linux) or `Cmd+Shift+X` (macOS) to open Extensions
|
||||
3. Search for "Kilo Code"
|
||||
4. Click **Install**
|
||||
|
||||
### Install via Command Line
|
||||
|
||||
```bash
|
||||
code --install-extension kilocode.kilo-code
|
||||
```
|
||||
|
||||
### Verify Installation
|
||||
|
||||
After installation, you should see the Kilo Code icon ({% kiloCodeIcon /%}) in the Activity Bar on the left side of VS Code. Click it to open the Kilo Code panel.
|
||||
@@ -18,11 +18,6 @@ Kilo Code supports Alibaba Cloud Model Studio (DashScope) through the native Ali
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Use the **OpenAI Compatible** provider if the legacy provider list does not include Alibaba Cloud. Set the base URL and API key from your DashScope account, then choose or enter a supported model ID.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Alibaba Cloud. Enter your DashScope API key and choose a supported model from the model picker.
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
---
|
||||
title: "Using Anaconda Desktop with Kilo Code | Local Models"
|
||||
description: "Connect Kilo Code to a local Anaconda Desktop text-generation model server from the TUI or VS Code."
|
||||
sidebar_label: Anaconda Desktop
|
||||
---
|
||||
|
||||
# Using Anaconda Desktop With Kilo Code
|
||||
|
||||
Kilo Code can discover the text-generation model served by [Anaconda Desktop](https://www.anaconda.com/products/desktop) and connect to its local OpenAI-compatible endpoint. Kilo imports the server connection for you, so you do not need to copy an API key or configure a base URL manually.
|
||||
|
||||
**Official documentation:** [Anaconda Desktop](https://www.anaconda.com/docs/tools/anaconda-desktop/key-features)
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
Anaconda Desktop and Kilo must run on the same supported computer.
|
||||
|
||||
| Operating system | Supported installation |
|
||||
|---|---|
|
||||
| Windows | Windows 11, x86-64 |
|
||||
| macOS | macOS 13 or later, Apple Silicon |
|
||||
| Linux | Debian or Ubuntu, x86-64 or ARM64 |
|
||||
|
||||
Remote backends, remote-only model endpoints, and non-interactive or headless setup are not supported. Complete setup in the Kilo TUI or VS Code on the computer running Anaconda Desktop.
|
||||
|
||||
## Set Up Anaconda Desktop
|
||||
|
||||
1. Download and install Anaconda Desktop from the [official product page](https://www.anaconda.com/products/desktop). See Anaconda's [installation guide](https://www.anaconda.com/docs/tools/anaconda-desktop/install-desktop) for platform-specific steps.
|
||||
2. Open Anaconda Desktop and sign in with your Anaconda account or your organization's assigned credentials.
|
||||
3. Select **Model Catalog** and filter for a **Text Generation** model. Prefer a model tagged **Tool Calling** for full Kilo agent functionality.
|
||||
4. Select a quantization that fits your computer, then click **Download**. Anaconda's [model catalog guide](https://www.anaconda.com/docs/tools/anaconda-desktop/model-catalog) explains model types, hardware requirements, and quantization choices.
|
||||
5. Select **Model Servers**, choose the downloaded model and file, and start its server. Enable tool calling when the selected model and server configuration support it.
|
||||
|
||||
{% callout type="note" %}
|
||||
Kilo only discovers Desktop state and connects to an existing server. Downloading or deleting models and creating, switching, starting, stopping, or deleting servers must be done in Anaconda Desktop. See Anaconda's [model server guide](https://www.anaconda.com/docs/tools/anaconda-desktop/servers).
|
||||
{% /callout %}
|
||||
|
||||
## Connect Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="TUI" %}
|
||||
|
||||
1. Run `/connect` in the Kilo TUI.
|
||||
2. Select **Anaconda Desktop**.
|
||||
3. Follow the setup dialog. Kilo can open Anaconda Desktop; after making changes there, return and choose **Check again**.
|
||||
4. When the model server is ready, choose **Connect** to import its connection and make the served model available in the model picker.
|
||||
|
||||
To refresh an existing connection, run `/connect`, select **Anaconda Desktop**, and choose **connect / refresh now** after changing the model, server address or port, or server API key in Desktop. Kilo re-discovers the active server and replaces its stored model and connection information.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VS Code" %}
|
||||
|
||||
1. Open Kilo Code **Settings** using the gear icon and select **Providers**.
|
||||
2. Add **Anaconda Desktop**. No manual API-key field is shown.
|
||||
3. Follow the setup dialog. Kilo can open Anaconda Desktop; after making changes there, return and select **Check again**.
|
||||
4. When the model server is ready, select **Connect** to import its connection and refresh the model picker.
|
||||
|
||||
For an existing connection, open **Settings**, select **Providers**, and select **Manage / Refresh** for Anaconda Desktop after changing the model, server address or port, or server API key in Desktop.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Tool Calling
|
||||
|
||||
When Desktop reports that the model server supports tool calling, Kilo allows you to connect without an additional warning. Tool calling lets the model use Kilo's tools to inspect files, edit code, and run commands.
|
||||
|
||||
{% callout type="warning" %}
|
||||
If tool support is unavailable or cannot be detected, Kilo shows a warning and requires confirmation before connecting. You can still use the model for text generation, but normal coding-agent actions are limited and may fail. For the best experience, choose a **Text Generation** model tagged **Tool Calling** and enable the server's tool-call support when available.
|
||||
{% /callout %}
|
||||
|
||||
## How Keys Are Handled
|
||||
|
||||
Anaconda Desktop uses two separate credentials:
|
||||
|
||||
- **Desktop management key** - Allows local discovery of Desktop models and servers. Kilo reads it from Desktop's configuration only when needed and never copies it into Kilo storage.
|
||||
- **Inference server key** - Authenticates chat-completion requests to the running model server. Kilo imports this key into its normal provider authentication storage together with the local endpoint and model details.
|
||||
|
||||
Kilo never asks you to paste either key. If the inference server key or endpoint changes, use **Refresh** to import the current values.
|
||||
|
||||
## Disconnect
|
||||
|
||||
In VS Code, open **Settings** > **Providers** and select **Disconnect** for Anaconda Desktop. In a terminal, run `kilo auth logout` and select Anaconda Desktop. Disconnecting removes only Kilo's stored provider authentication and connection metadata. It does not stop Anaconda Desktop, stop the model server, or delete the downloaded model.
|
||||
|
||||
Use Anaconda Desktop itself to stop or change the server.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **Desktop is not detected:** Install it from the [official product page](https://www.anaconda.com/products/desktop), or use **Open Anaconda Desktop** if it is installed but not running.
|
||||
- **Sign-in is required:** Open Desktop, complete sign-in, and leave the Kilo setup dialog open so it can detect the change.
|
||||
- **No model is available:** Download a model whose type is **Text Generation**, not an embedding-only model.
|
||||
- **No server is available:** Start the downloaded model from **Model Servers** in Desktop.
|
||||
- **The server changed:** Use **Refresh** in Kilo to replace the stored model, endpoint, and inference key.
|
||||
- **The server is unhealthy:** Check the server status and logs in Desktop, then restart it there before refreshing Kilo.
|
||||
@@ -20,15 +20,6 @@ Anthropic is an AI safety and research company that builds reliable, interpretab
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Anthropic" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Anthropic API key into the "Anthropic API Key" field.
|
||||
4. **Select Model:** Choose your desired Claude model from the "Model" dropdown.
|
||||
5. **(Optional) Custom Base URL:** If you need to use a custom base URL for the Anthropic API, check "Use custom base URL" and enter the URL. Most people won't need to adjust this.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Anthropic and enter your API key.
|
||||
|
||||
@@ -37,23 +37,6 @@ You have three options for configuring AWS credentials:
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Bedrock" from the "API Provider" dropdown.
|
||||
3. **Select Authentication Method:**
|
||||
- **Bedrock API Key:**
|
||||
- Enter your Bedrock API key directly. This is the simplest setup option.
|
||||
- **AWS Credentials:**
|
||||
- Enter your "AWS Access Key" and "AWS Secret Key."
|
||||
- (Optional) Enter your "AWS Session Token" if you're using temporary credentials.
|
||||
- **AWS Profile:**
|
||||
- Enter your "AWS Profile" name (e.g., "default").
|
||||
4. **Select Region:** Choose the AWS region where your Bedrock service is available (e.g., "us-east-1").
|
||||
5. **(Optional) Cross-Region Inference:** Check "Use cross-region inference" if you want to access models in a region different from your configured AWS region.
|
||||
6. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add AWS Bedrock. The extension uses the AWS credentials chain for authentication — configure your AWS credentials using the AWS CLI or environment variables before adding the provider.
|
||||
|
||||
@@ -20,14 +20,6 @@ Cerebras is known for their ultra-fast AI inference powered by the Cerebras CS-3
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Cerebras" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Cerebras API key into the "Cerebras API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Cerebras and enter your API key.
|
||||
|
||||
@@ -23,14 +23,6 @@ Always refer to the official Chutes AI documentation or your dashboard for the m
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Chutes AI" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Chutes AI API key into the "Chutes AI API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Chutes AI and enter your API key.
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
---
|
||||
title: "Using Claude Code with Kilo Code"
|
||||
description: "Use your Claude Code subscription with Kilo Code. Setup guide for authenticating and selecting Claude models."
|
||||
sidebar_label: Claude Code
|
||||
---
|
||||
|
||||
{% callout type="warning" title="Important Notice" %}
|
||||
In January 2026, Anthropic decided to restrict Claude Code CLI to official Claude Code clients. Claude Code credentials cannot be used in Kilo Code or other third-party harnesses.
|
||||
|
||||
For continued use of Anthropic models in Kilo Code, please use the [Anthropic API provider](/docs/ai-providers/anthropic) with an API key instead.
|
||||
{% /callout %}
|
||||
|
||||
# Using Claude Code With Kilo Code
|
||||
|
||||
Claude Code is Anthropic's official CLI that provides direct access to Claude models from your terminal. Using Claude Code with Kilo Code lets you leverage your existing CLI setup without needing separate API keys.
|
||||
|
||||
**Website:** [https://docs.anthropic.com/en/docs/claude-code/setup](https://docs.anthropic.com/en/docs/claude-code/setup)
|
||||
|
||||
## Installing and Setting Up Claude Code
|
||||
|
||||
1. **Install Claude Code:** Follow the installation instructions at [Anthropic's Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code/setup).
|
||||
2. **Authenticate:** Run `claude` in your terminal. Claude Code offers multiple authentication options including the Anthropic Console (default), Claude App with Pro/Max plans, and enterprise platforms like Amazon Bedrock or Google Vertex AI. See [Anthropic's authentication documentation](https://docs.anthropic.com/en/docs/claude-code/setup) for complete details.
|
||||
3. **Verify Installation:** Test that everything works by running `claude --version` in your terminal.
|
||||
|
||||
{% callout type="warning" title="Environment Variable Usage" %}
|
||||
The `claude` command-line tool, like other Anthropic SDKs, can use the `ANTHROPIC_API_KEY` environment variable for authentication. This is a common method for authorizing CLI tools in non-interactive environments.
|
||||
|
||||
If this environment variable is set on your system, the `claude` tool may use it for authentication instead of the interactive `/login` method. When Kilo Code executes the tool, it will accurately reflect that an API key is being used, as this is the underlying behavior of the `claude` CLI itself.
|
||||
{% /callout %}
|
||||
|
||||
**Website:** [https://docs.anthropic.com/en/docs/claude-code/setup](https://docs.anthropic.com/en/docs/claude-code/setup)
|
||||
|
||||
## Supported Models
|
||||
|
||||
The specific models available depend on your Claude subscription and plan. See [Anthropic's Model Documentation](https://docs.anthropic.com/en/docs/about-claude/models) for more details on each model's capabilities.
|
||||
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Claude Code" from the "API Provider" dropdown.
|
||||
3. **Select Model:** Choose your desired Claude model from the "Model" dropdown.
|
||||
4. **(Optional) Custom CLI Path:** If you installed Claude Code to a location other than the default `claude` command, enter the full path to your Claude executable in the "Claude Code Path" field. Most users won't need to change this.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
{% callout type="warning" %}
|
||||
Claude Code credentials no longer work in Kilo Code. Please use the [Anthropic provider](/docs/ai-providers/anthropic) with an API key instead.
|
||||
{% /callout %}
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
Claude Code uses your existing Anthropic credentials (from the `claude` CLI). Make sure the Claude Code CLI is installed and authenticated:
|
||||
|
||||
```bash
|
||||
claude --version
|
||||
claude auth login
|
||||
```
|
||||
|
||||
If you have an `ANTHROPIC_API_KEY` environment variable set, the Claude CLI will use it automatically:
|
||||
|
||||
```bash
|
||||
export ANTHROPIC_API_KEY="your-api-key"
|
||||
```
|
||||
|
||||
**Config file** (`~/.config/kilo/kilo.json` or `./kilo.json`):
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"provider": {
|
||||
"anthropic": {
|
||||
"env": ["ANTHROPIC_API_KEY"],
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Then set your default model:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"model": "anthropic/claude-sonnet-4-20250514",
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Tips and Notes
|
||||
|
||||
- **No API Keys Required:** Claude Code uses your existing CLI authentication, so you don't need to manage separate API keys.
|
||||
- **Cost Transparency:** Usage costs are reported directly by the Claude CLI, giving you clear visibility into your spending.
|
||||
- **Advanced Reasoning:** Full support for Claude's thinking modes and reasoning capabilities when available.
|
||||
- **Context Windows:** Claude models have large context windows, allowing you to include significant amounts of code and context in your prompts.
|
||||
- **Enhance Prompt Feature:** Full compatibility with Kilo Code's Enhance Prompt feature, allowing you to automatically improve and refine your prompts before sending them to Claude.
|
||||
- **Custom Paths:** If you installed Claude Code in a non-standard location, you can specify the full path in the settings. Examples:
|
||||
- Windows: `C:\tools\claude\claude.exe`
|
||||
- macOS/Linux: `/usr/local/bin/claude` or `~/bin/claude`
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"Claude Code process exited with error":** Verify Claude Code is installed (`claude --version`) and authenticated (`claude auth login`). Make sure your subscription includes the selected model.
|
||||
- **Custom path not working:** Use the full absolute path to the Claude executable and verify the file exists and is executable. On Windows, include the `.exe` extension.
|
||||
@@ -20,14 +20,6 @@ Kilo Code supports accessing models through the DeepSeek API, including `deepsee
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "DeepSeek" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your DeepSeek API key into the "DeepSeek API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add DeepSeek and enter your API key.
|
||||
|
||||
@@ -19,14 +19,6 @@ Fireworks AI is a high-performance platform for running AI models that offers fa
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Fireworks AI" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Fireworks AI API key into the "Fireworks AI API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Fireworks AI and enter your API key.
|
||||
|
||||
@@ -20,14 +20,6 @@ Kilo Code supports Google's Gemini family of models through the Google AI Gemini
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Google Gemini" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Gemini API key into the "Gemini API Key" field.
|
||||
4. **Select Model:** Choose your desired Gemini model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Google Gemini and enter your API key.
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
---
|
||||
title: "Using Glama with Kilo Code"
|
||||
description: "Connect Glama's unified AI gateway to Kilo Code to access Claude, GPT, and other leading models through a single API key."
|
||||
sidebar_label: Glama
|
||||
---
|
||||
|
||||
# Using Glama With Kilo Code
|
||||
|
||||
Glama provides access to a variety of language models through a unified API, including models from Anthropic, OpenAI, and others. It offers features like prompt caching and cost tracking.
|
||||
|
||||
**Website:** [https://glama.ai/](https://glama.ai/)
|
||||
|
||||
## Getting an API Key
|
||||
|
||||
1. **Sign Up/Sign In:** Go to the [Glama sign-up page](https://glama.ai/sign-up). Sign up using your Google account or name/email/password.
|
||||
2. **Get API Key:** After signing up, navigate to the [API Keys](https://glama.ai/settings/gateway/api-keys) page to get an API key.
|
||||
3. **Copy the Key:** Copy the displayed API key.
|
||||
|
||||
## Supported Models
|
||||
|
||||
Kilo Code will automatically try to fetch a list of available models from the Glama API. Some models that are commonly available through Glama include:
|
||||
|
||||
- **Anthropic Claude models:** (e.g., `anthropic/claude-3-5-sonnet`) These are generally recommended for best performance with Kilo Code.
|
||||
- **OpenAI models:** (e.g., `openai/o3-mini-high`)
|
||||
- **Other providers and open-source models**
|
||||
|
||||
Refer to the [Glama documentation](https://glama.ai/models) for the most up-to-date list of supported models.
|
||||
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Glama" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Glama API key into the "Glama API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Glama and enter your API key.
|
||||
|
||||
The extension stores this in your `kilo.json` config file. You can also edit the config file directly — see the **CLI** tab for the file format.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
{% callout type="warning" %}
|
||||
Glama is not yet available as a CLI provider. Check the [Kilo Code releases](https://github.com/Kilo-Org/kilocode/releases) for updates on provider support.
|
||||
{% /callout %}
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Tips and Notes
|
||||
|
||||
- **Pricing:** Glama operates on a pay-per-use basis. Pricing varies depending on the model you choose.
|
||||
- **Prompt Caching:** Glama supports prompt caching, which can significantly reduce costs and improve performance for repeated prompts.
|
||||
@@ -23,14 +23,6 @@ Kilo Code will attempt to fetch the list of available models from the Groq API.
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Groq" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Groq API key into the "Groq API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Groq and enter your API key.
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
---
|
||||
title: "Using Human Relay with Kilo Code | No API Key Needed"
|
||||
description: "Use Kilo Code with web-based AI chats like ChatGPT and Claude without an API key by manually relaying messages via Human Relay."
|
||||
sidebar_label: Human Relay
|
||||
---
|
||||
|
||||
# Human Relay Provider
|
||||
|
||||
The Human Relay provider allows you to use Kilo Code with web-based AI models like ChatGPT or Claude without needing an API key. Instead, it relies on you to manually relay messages between Kilo Code and the AI's web interface.
|
||||
|
||||
## How it Works
|
||||
|
||||
1. **Select Human Relay**: Choose "Human Relay" as your API provider in Kilo Code's settings. No API key is required.
|
||||
2. **Initiate a Request**: Start a chat or task with Kilo Code as usual.
|
||||
3. **Dialog Prompt**: A dialog box will appear in VS Code. Your message to the AI is automatically copied to your clipboard.
|
||||
4. **Paste to Web AI**: Go to the web interface of your chosen AI (e.g., chat.openai.com, claude.ai) and paste the message from your clipboard into the chat input.
|
||||
5. **Copy AI Response**: Once the AI responds, copy its complete response text.
|
||||
6. **Paste Back to Kilo Code**: Return to the dialog box in VS Code, paste the AI's response into the designated field, and click "Confirm".
|
||||
7. **Continue**: Kilo Code will process the response as if it came directly from an API.
|
||||
|
||||
## Use Cases
|
||||
|
||||
This provider is useful if:
|
||||
|
||||
- You want to use models that don't offer direct API access.
|
||||
- You prefer not to manage API keys.
|
||||
- You need to leverage the specific capabilities or context available only in the web UI of certain AI models.
|
||||
|
||||
## Limitations
|
||||
|
||||
- **Manual Effort**: Requires constant copy-pasting between VS Code and your browser.
|
||||
- **Slower Interaction**: The back-and-forth process is significantly slower than direct API integration.
|
||||
- **Potential for Errors**: Manual copying and pasting can introduce errors or omissions.
|
||||
|
||||
Choose this provider when the benefits of using a specific web AI outweigh the inconvenience of the manual relay process.
|
||||
@@ -26,14 +26,6 @@ Refer to Inception's current website and developer documentation for the most up
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Inception" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Inception API key into the "Inception API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Inception and enter your API key.
|
||||
|
||||
@@ -34,6 +34,7 @@ Major AI companies offering powerful models via API:
|
||||
Run models on your own hardware for privacy and offline use:
|
||||
|
||||
- **[Atomic Chat](/docs/ai-providers/atomic-chat)** - Local models with TurboQuant inference and auto-discovery in Kilo Code
|
||||
- **[Anaconda Desktop](/docs/ai-providers/anaconda-desktop)** - Discover and connect to a local text-generation model server
|
||||
- **[Ollama](/docs/ai-providers/ollama)** - Easy local model management
|
||||
- **[LM Studio](/docs/ai-providers/lmstudio)** - Desktop app for local models
|
||||
- **[OpenAI Compatible](/docs/ai-providers/openai-compatible)** - Any OpenAI-compatible endpoint
|
||||
@@ -43,7 +44,6 @@ Run models on your own hardware for privacy and offline use:
|
||||
Route requests through unified APIs with additional features:
|
||||
|
||||
- **[OpenRouter](/docs/ai-providers/openrouter)** - Access multiple providers through one API
|
||||
- **[Glama](/docs/ai-providers/glama)** - Enterprise AI gateway
|
||||
- **[Requesty](/docs/ai-providers/requesty)** - Smart routing and fallbacks
|
||||
- **[Cloudflare AI Gateway](/docs/ai-providers/cloudflare)** - Route providers through your Cloudflare account
|
||||
|
||||
@@ -63,10 +63,6 @@ Route requests through unified APIs with additional features:
|
||||
- **Models** - Access exclusive or specialized models
|
||||
- **Regional** - Better latency in certain locations
|
||||
|
||||
{% callout type="note" %}
|
||||
In the **VSCode (Legacy)** version, API keys use VS Code's Secret Storage. In the current **VSCode & CLI** version, keys are set via environment variables or referenced in `kilo.json` config files. See individual provider pages for setup instructions for each platform.
|
||||
{% /callout %}
|
||||
|
||||
## Disabling Built-in Providers
|
||||
|
||||
You can prevent specific providers from loading using `disabled_providers` in your `kilo.json` (or `kilo.jsonc`). This is useful to hide models from built-in or detected providers that you don't intend to use.
|
||||
|
||||
@@ -30,15 +30,6 @@ Kilo Code supports running models locally using LM Studio. LM Studio provides a
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "LM Studio" from the "API Provider" dropdown.
|
||||
3. **Enter Model ID:** Enter the _file name_ of the model you loaded in LM Studio (e.g., `codellama-7b.Q4_0.gguf`). You can find this in the LM Studio "Local Server" tab.
|
||||
4. **(Optional) Base URL:** By default, Kilo Code will connect to LM Studio at `http://localhost:1234`. If you've configured LM Studio to use a different address or port, enter the full URL here.
|
||||
5. **(Optional) Timeout:** By default, API requests time out after 10 minutes. Local models can be slow, if you hit this timeout you can consider increasing it here: VS Code Extensions panel > Kilo Code gear menu > Settings > API Request Timeout.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add LM Studio. No API key is needed since LM Studio runs locally. You can configure the base URL if LM Studio is running on a different host or port.
|
||||
|
||||
@@ -20,14 +20,6 @@ MiniMax is a global AI foundation model company focused on fast, cost-efficient
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Navigate to **Providers**. Choose **MiniMax** from the API Provider dropdown.
|
||||
3. **Enter API Key:** Paste your MiniMax API key into the MiniMax API Key field.
|
||||
4. **Select Model:** Choose your desired MiniMax model from the Model dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add MiniMax and enter your API key.
|
||||
|
||||
@@ -20,14 +20,6 @@ Kilo Code supports accessing models through the Mistral AI API, including both s
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Mistral" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Mistral API key into the "Mistral API Key" field if you're using a `mistral` model. If you intend to use `codestral-latest`, see the "Codestral" section below.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Mistral and enter your API key.
|
||||
|
||||
@@ -20,14 +20,6 @@ Moonshot.ai is a Chinese AI company known for their **Kimi** models featuring ul
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Moonshot.ai" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Moonshot.ai API key into the "Moonshot.ai API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Moonshot.ai and enter your API key.
|
||||
|
||||
@@ -75,15 +75,6 @@ By default, API requests time out after 10 minutes. Local models can be slow, if
|
||||
### Configure Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
- Open the Kilo Code panel ({% kiloCodeIcon size="1em" /%}).
|
||||
- Click the Settings gear icon ({% codicon name="gear" /%}).
|
||||
- Select "Ollama" as the API Provider.
|
||||
- Select the model configured in the previous step.
|
||||
- (Optional) You can configure the base URL if you're running Ollama on a different machine. The default is `http://localhost:11434`.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Ollama. No API key is needed since Ollama runs locally. You can configure the base URL if Ollama is running on a different host.
|
||||
|
||||
@@ -22,16 +22,6 @@ Your ChatGPT subscription works with Kilo Code's core functionality (VS Code ext
|
||||
## Setup
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. Open Kilo Code settings (click the gear icon {% codicon name="gear" /%} in the Kilo Code panel).
|
||||
2. In **API Provider**, select **OpenAI – ChatGPT Plus/Pro**.
|
||||
3. Click **Sign in to OpenAI Codex**.
|
||||
4. Finish the sign-in flow in your browser.
|
||||
5. Back in Kilo Code settings, pick a model from the dropdown.
|
||||
6. Save.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab. ChatGPT Plus/Pro uses OAuth authentication — follow the sign-in flow to connect your ChatGPT subscription.
|
||||
|
||||
@@ -23,29 +23,6 @@ Use Kilo Code's native `azure` provider instead. If your Azure deployment name d
|
||||
## General Configuration
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
The key to using an OpenAI-compatible provider is to configure two main settings:
|
||||
|
||||
1. **Base URL:** This is the API endpoint for the provider. It will _not_ be `https://api.openai.com/v1` (that's for the official OpenAI API). For Azure OpenAI GPT-5, do not enter your Azure endpoint here. Configure the native `azure` provider instead.
|
||||
2. **API Key:** This is the secret key you obtain from the provider.
|
||||
3. **Model ID:** This is the model name of the specific model.
|
||||
|
||||
You'll find these settings in the Kilo Code settings panel (click the {% codicon name="gear" /%} icon):
|
||||
|
||||
- **API Provider:** Select "OpenAI Compatible".
|
||||
- **Base URL:** Enter the base URL provided by your chosen provider. **This is crucial.**
|
||||
- **API Key:** Enter your API key.
|
||||
- **Model:** Choose a model.
|
||||
- **Model Configuration:** This lets you customize advanced configuration for the model
|
||||
- Max Output Tokens
|
||||
- Context Window
|
||||
- Image Support
|
||||
- Computer Use
|
||||
- Input Price
|
||||
- Output Price
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
1. Open **Settings** (gear icon) and go to the **Providers** tab.
|
||||
|
||||
@@ -24,14 +24,6 @@ Kilo Code supports accessing models directly through the official OpenAI API.
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "OpenAI" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your OpenAI API key into the "OpenAI API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add OpenAI and enter your API key.
|
||||
|
||||
@@ -56,15 +56,6 @@ Then set your default model:
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "OpenRouter" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your OpenRouter API key into the "OpenRouter API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
5. **(Optional) Custom Base URL:** If you need to use a custom base URL for the OpenRouter API, check "Use custom base URL" and enter the URL. Leave this blank for most users.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -72,9 +63,6 @@ Then set your default model:
|
||||
|
||||
OpenRouter provides an [optional "middle-out" message transform](https://openrouter.ai/docs/guides/features/message-transforms) to help with prompts that exceed the maximum context size of a model.
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode & CLI" %}
|
||||
|
||||
The middle-out transform is not exposed as a dedicated UI control in the VS Code extension. To enable it, set `transforms` on the model's `options` in your `kilo.json` config file. Anything under `options` is forwarded verbatim to the OpenRouter AI SDK as `providerOptions.openrouter`:
|
||||
|
||||
```jsonc
|
||||
@@ -93,21 +81,10 @@ The middle-out transform is not exposed as a dedicated UI control in the VS Code
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
The legacy extension does not expose a control for the middle-out transform, and it does not read configuration from `kilo.json`. To use this option, switch to the new VS Code extension or the CLI.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Provider Routing
|
||||
|
||||
OpenRouter can route to many different inference providers. This can be controlled directly via OpenRouter's [`provider` routing parameter](https://openrouter.ai/docs/features/provider-routing).
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode & CLI" %}
|
||||
|
||||
Provider routing is not exposed as dedicated UI controls in the VS Code extension. To configure it, set OpenRouter's `provider` routing fields under the model's `options` in your `kilo.json` config file. Everything under `options` is forwarded to the OpenRouter AI SDK as `providerOptions.openrouter`, so any field from the [OpenRouter provider routing docs](https://openrouter.ai/docs/features/provider-routing) can be used.
|
||||
|
||||
```jsonc
|
||||
@@ -134,29 +111,6 @@ Provider routing is not exposed as dedicated UI controls in the VS Code extensio
|
||||
|
||||
Omit any field to fall back to your OpenRouter account's default. Fields are passed through without validation — see OpenRouter's docs for the full list of supported values.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
The legacy settings UI exposes Provider Routing as two dropdowns under **Provider Routing**:
|
||||
|
||||
**Provider Sorting**
|
||||
|
||||
- Default provider sorting: use the setting in your OpenRouter account
|
||||
- Prefer providers with lower price
|
||||
- Prefer providers with higher throughput (i.e. more tokens per seconds)
|
||||
- Prefer providers with lower latency (i.e. shorter time to first token)
|
||||
- A specific provider preference can also be chosen.
|
||||
|
||||
**Data Policy**
|
||||
|
||||
- No data policy set: use the settings in your OpenRouter account.
|
||||
- Allow prompt training: providers that may train on your prompts or completions are allowed. Free models generally require this option to be enabled.
|
||||
- Deny prompt training: providers that may train on your prompts or completions are not allowed.
|
||||
- Zero data retention: only providers with a strict zero data retention policy are allowed. This option is not recommended, as it will disable many popular providers, such as Anthropic and OpenAI.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Tips and Notes
|
||||
|
||||
- **Model Selection:** OpenRouter offers a wide range of models. Experiment to find the best one for your needs.
|
||||
|
||||
@@ -27,14 +27,6 @@ You can report any bugs or feedbacks by chatting with us in our [Discord server]
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "OVHcloud AI Endpoints" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your AI Endpoints API key into the "OVHcloud AI Endpoints API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add OVHcloud AI Endpoints and enter your API key.
|
||||
|
||||
@@ -18,14 +18,6 @@ Kilo Code supports accessing models through the [Requesty](https://www.requesty.
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Requesty" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Requesty API key into the "Requesty API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Requesty and enter your API key.
|
||||
|
||||
@@ -80,23 +80,6 @@ The exact list of available models depends on your SAP AI Core configuration and
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "SAP AI Core" from the "API Provider" dropdown.
|
||||
3. **Enter Credentials:**
|
||||
- **Client ID:** Enter your SAP AI Core OAuth2 client ID
|
||||
- **Client Secret:** Enter your SAP AI Core OAuth2 client secret
|
||||
- **Base URL:** Enter your SAP AI Core API base URL (e.g., `https://api.ai.ml.hana.ondemand.com`)
|
||||
- **Auth URL:** Enter your SAP AI Core OAuth2 auth URL (e.g., `https://your-subdomain.authentication.sap.hana.ondemand.com`)
|
||||
- **Resource Group:** (Optional) Enter your resource group name, defaults to "default"
|
||||
4. **Choose Operating Mode:**
|
||||
- **Orchestration Mode:** Check the "Use Orchestration" checkbox for broader model access
|
||||
- **Foundation Models Mode:** Leave unchecked to use foundation models with deployments
|
||||
5. **Select Model:** Choose your desired model from the dropdown
|
||||
6. **Select Deployment:** (Foundation Models Mode only) Choose an active deployment for your selected model
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add SAP AI Core. Enter your OAuth2 client credentials (Client ID, Client Secret, Base URL, and Auth URL) in the provider settings.
|
||||
|
||||
@@ -24,10 +24,36 @@ Kilo Code supports all "always on" Synthetic AI models. The available models inc
|
||||
|
||||
## Configuration in Kilo Code
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Synthetic" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Synthetic API key into the "Synthetic API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Synthetic and enter your API key.
|
||||
|
||||
The extension stores this in your `kilo.json` config file. You can also edit the config file directly — see the **CLI** tab for the file format.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="CLI" %}
|
||||
|
||||
Set the API key as an environment variable or configure it in your `kilo.json` config file:
|
||||
|
||||
```bash
|
||||
export SYNTHETIC_API_KEY="your-api-key"
|
||||
```
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"provider": {
|
||||
"synthetic": {
|
||||
"env": ["SYNTHETIC_API_KEY"],
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Select a Synthetic model from the model picker after authentication, or set its full `synthetic/<model-id>` identifier as your default model.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Tips and Notes
|
||||
|
||||
|
||||
@@ -23,14 +23,6 @@ Unbound allows you configure a list of supported models in your application, and
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Unbound" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Unbound API key into the "Unbound API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Unbound and enter your API key.
|
||||
|
||||
@@ -18,20 +18,6 @@ To use v0 with Kilo Code, you'll need:
|
||||
## Configuration
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Setting up v0 in Kilo Code is straightforward:
|
||||
|
||||
1. In Kilo Code settings (click the {% codicon name="gear" /%} icon):
|
||||
- Under **API Provider**, select: **OpenAI Compatible**
|
||||
- Set the **Base URL**: `https://api.v0.dev/v1`
|
||||
- Paste in your v0 API key
|
||||
- Set the **Model ID**: `v0-1.0-md`
|
||||
- Click **Verify** to confirm the connection
|
||||
|
||||
<!-- <img src="/docs/img/providers/v0-setup.png" alt="v0 configuration in Kilo Code settings" width="600" /> -->
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add a **Custom provider**. Select **OpenAI Compatible** under **Provider API**, set the base URL to `https://api.v0.dev/v1`, and enter your v0 API key.
|
||||
|
||||
@@ -18,11 +18,6 @@ Kilo Code supports Venice AI through the native Venice provider. Venice offers p
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Use the **OpenAI Compatible** provider if the legacy provider list does not include Venice AI. Enter your Venice API base URL, API key, and model ID from the Venice dashboard.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Venice AI and enter your API key.
|
||||
|
||||
@@ -56,14 +56,6 @@ Check the model description in the dropdown for specific capabilities.
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Vercel AI Gateway" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your Vercel AI Gateway API key into the "Vercel AI Gateway API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add Vercel AI Gateway and enter your API key.
|
||||
|
||||
@@ -23,20 +23,6 @@ Kilo Code supports accessing models through Google Cloud Platform's Vertex AI, a
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "GCP Vertex AI" from the "API Provider" dropdown.
|
||||
3. **Configure Authentication:**
|
||||
- **If using Application Default Credentials (ADC):** No further action is needed here. ADC will be used automatically if configured correctly (see Prerequisites).
|
||||
- **If _not_ using ADC (Service Account Key):**
|
||||
- **Option A: Paste JSON Content:** Paste the entire content of your Service Account JSON key file into the **Google Cloud Credentials** field.
|
||||
- **Option B: Provide File Path:** Enter the absolute path to your downloaded Service Account JSON key file in the **Google Cloud Key File Path** field.
|
||||
4. **Enter Project ID:** Enter your Google Cloud Project ID.
|
||||
5. **Select Region:** Choose the region where your Vertex AI resources are located (e.g., `us-east5`).
|
||||
6. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add GCP Vertex AI. The extension uses Google Application Default Credentials (ADC) for authentication — run `gcloud auth application-default login` before adding the provider. Set your project ID and region in the provider settings.
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
---
|
||||
title: "Virtual Quota Fallback in Kilo Code"
|
||||
description: "Configure automatic provider fallback in Kilo Code to handle quota limits and keep your AI coding workflow uninterrupted."
|
||||
sidebar_label: Virtual Quota Fallback
|
||||
---
|
||||
|
||||
# Using the Virtual Quota Fallback Provider
|
||||
|
||||
The Virtual Quota Fallback provider is a powerful meta-provider that allows you to configure and manage multiple API providers, automatically switching between them based on predefined usage limits and availability. This ensures you can maximize your usage of free-tier services and maintain continuous access to AI models by seamlessly falling back to other providers when one reaches its quota or encounters an error.
|
||||
|
||||
It's the perfect solution for users who leverage multiple LLM services and want to orchestrate them intelligently—for example, using a free provider up to its limit before automatically switching to a pay-as-you-go service.
|
||||
|
||||
## How It Works
|
||||
|
||||
The Virtual Quota Fallback provider does not connect to an LLM service directly. Instead, it acts as a manager for your other configured provider profiles.
|
||||
|
||||
- **Prioritized List:** You create a prioritized list of your existing provider profiles. The provider at the top of the list is used first.
|
||||
- **Usage Tracking:** You can set custom limits for each provider based on the number of tokens or requests per minute, hour, or day. Kilo Code tracks the usage for each provider against these limits.
|
||||
- **Automatic Fallback:** When the currently active provider exceeds one of its defined limits or returns an API error, the system automatically deactivates it temporarily and switches to the next available provider in your list.
|
||||
- **Notifications:** You will receive an information message in VS Code whenever an automatic switch occurs, keeping you informed of which provider is currently active.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before configuring this provider, you must have at least one other API provider already configured as a separate profile in Kilo Code. This provider is only useful if there are other profiles for it to manage.
|
||||
|
||||
## Configuration in Kilo Code
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "Virtual Quota Fallback" from the "API Provider" dropdown. This will open its dedicated configuration panel.
|
||||
|
||||
<!-- <img src="/docs/img/providers/virtualQuotaSelectDropdown.png" alt="virtuaQuotaFallback dropdown selection in Kilo Code settings" width="600" /> -->
|
||||
|
||||
3. **Add a Provider Profile:**
|
||||
- In the configuration panel, click the **"Add Profile"** button to create a new entry in the list.
|
||||
- Click the dropdown menu on the new entry to select one of your other pre-configured provider profiles (e.g., "OpenAI", "Chutes AI Free Tier").
|
||||
|
||||
4. **Set Usage Limits (Optional):**
|
||||
- Once a profile is added, you can specify usage limits. If you leave these fields blank, no limit will be enforced for that specific metric.
|
||||
- **Tokens per minute/hour/day:** Limits usage based on the total number of tokens processed (input + output).
|
||||
- **Requests per minute/hour/day:** Limits the total number of API calls made.
|
||||
|
||||
5. **Order Your Providers:**
|
||||
- The order of the profiles is crucial, as it defines the fallback priority. The provider at the top is used first.
|
||||
- Use the **up and down arrows** next to each profile to change its position in the list.
|
||||
|
||||
6. **Add More Providers:** Repeat steps 3-5 to build your complete fallback chain. You can add as many profiles as you have configured.
|
||||
|
||||
<!-- <img src="/docs/img/providers/virtualQuotaFullConfig.png" alt="virtuaQuotaFallback configuration in Kilo Code settings" width="600" /> -->
|
||||
|
||||
## Usage Monitoring
|
||||
|
||||
The configuration screen also serves as a dashboard for monitoring the current usage of each provider in your list.
|
||||
|
||||
- You can see the tokens and requests used within the last minute, hour, and day.
|
||||
- If you need to reset these counters, click the **"Clear Usage Data"** button. This will reset all statistics to zero and immediately re-enable any providers that were temporarily disabled due to exceeding their limits.
|
||||
|
||||
## Example Use Case
|
||||
|
||||
Imagine you have two profiles configured:
|
||||
|
||||
1. **Chutes AI Free:** A free-tier provider with a limit of 5,000 tokens per hour.
|
||||
2. **OpenAI Paid:** Your personal pay-as-you-go OpenAI account.
|
||||
|
||||
**Configuration:**
|
||||
|
||||
- Place "Chutes AI Free" first in the list.
|
||||
- Set its "Tokens per hour" limit to `5000`.
|
||||
- Place "OpenAI Paid" second in the list, with no limits defined.
|
||||
|
||||
**Result:**
|
||||
Kilo Code will send all requests to Chutes AI. Once your usage exceeds 5,000 tokens within an hour, it will automatically switch to your OpenAI account. The system will switch back to Chutes AI in the next hour when its quota window has reset.
|
||||
|
||||
## Tips and Notes
|
||||
|
||||
- **Priority is Key:** Always double-check the order of your profiles. The intended primary or free-tier providers should be at the top.
|
||||
- **Error-Based Fallback:** If you don't set any limits for a profile, fallback will only occur if the provider's API returns an error (e.g., a hard rate limit from the service itself, a network issue, or an invalid API key).
|
||||
- **No Nesting:** You cannot select another "Virtual Quota Fallback" profile within this provider's configuration, as this would create a circular dependency.
|
||||
@@ -1,47 +0,0 @@
|
||||
---
|
||||
title: "Using the VS Code Language Model API with Kilo Code"
|
||||
description: "Use GitHub Copilot's models in Kilo Code via the VS Code Language Model API. Setup guide and requirements."
|
||||
sidebar_label: VS Code Language Model API
|
||||
---
|
||||
|
||||
# Using VS Code Language Model API With Kilo Code
|
||||
|
||||
Kilo Code includes _experimental_ support for the [VS Code Language Model API](https://code.visualstudio.com/docs/copilot/customization/language-models). This API allows extensions to provide access to language models directly within VS Code. This means you can potentially use models from:
|
||||
|
||||
- **GitHub Copilot:** If you have a Copilot subscription and the extension installed.
|
||||
- **Other VS Code Extensions:** Any extension that implements the Language Model API.
|
||||
|
||||
**Important:** This integration is highly experimental and may not work as expected. It is dependent on other extensions correctly implementing the VS Code Language Model API.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **VS Code:** The Language Model API is available through VS Code (and is not currently supported by Cursor).
|
||||
- **A Language Model Provider Extension:** You need an extension that provides a language model. Examples include:
|
||||
- **GitHub Copilot:** If you have a Copilot subscription, the GitHub Copilot and GitHub Copilot Chat extensions can provide models.
|
||||
- **Other Extensions:** Search the VS Code Marketplace for extensions that mention "Language Model API" or "lm". There may be other experimental extensions available.
|
||||
|
||||
## Configuration
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "VS Code LM API" from the "API Provider" dropdown.
|
||||
3. **Select Model:** The "Language Model" dropdown will (eventually) list available models. The format is `vendor/family`. For example, if you have Copilot, you might see options like:
|
||||
- `copilot - claude-3.5-sonnet`
|
||||
- `copilot - o3-mini`
|
||||
- `copilot - o1-ga`
|
||||
- `copilot - gemini-2.0-flash`
|
||||
|
||||
## Limitations
|
||||
|
||||
- **Experimental API:** The VS Code Language Model API is still under development. Expect changes and potential instability.
|
||||
- **Extension Dependent:** This feature relies entirely on other extensions providing models. Kilo Code cannot directly control which models are available.
|
||||
- **Limited Functionality:** The VS Code Language Model API may not support all the features of other API providers (e.g., image input, streaming, detailed usage information).
|
||||
- **No Direct Cost Control:** You are subject to the pricing and terms of the extension providing the model. Kilo Code cannot directly track or limit costs.
|
||||
- **GitHub Copilot Rate Limits:** When using the VS Code LM API with GitHub Copilot, be aware that GitHub may impose rate limits on Copilot usage. These limits are controlled by GitHub, not Kilo Code.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **No Models Appear:**
|
||||
- Ensure you have VS Code installed.
|
||||
- Ensure you have a language model provider extension installed and enabled (e.g., GitHub Copilot, GitHub Copilot Chat).
|
||||
- If using Copilot, make sure that you have sent a Copilot Chat message using the model you would like to use.
|
||||
- **Unexpected Behavior:** If you encounter unexpected behavior, it's likely an issue with the underlying Language Model API or the provider extension. Consider reporting the issue to the provider extension's developers.
|
||||
@@ -34,16 +34,6 @@ SuperGrok and X Premium subscription access works with Kilo Code's core function
|
||||
### Setup with SuperGrok / X Premium
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. Open Kilo Code settings (click the gear icon {% codicon name="gear" /%} in the Kilo Code panel).
|
||||
2. In **API Provider**, select **xAI**.
|
||||
3. Click **Sign in with xAI (SuperGrok / X Premium)**.
|
||||
4. Complete the authorization flow in your browser.
|
||||
5. Back in Kilo Code settings, select your desired Grok model.
|
||||
6. Save.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab. Click **Show more providers**, then search for or select **xAI**. Choose the **xAI Grok OAuth (SuperGrok / X Premium)** sign-in option and complete the OAuth flow in your browser.
|
||||
@@ -99,14 +89,6 @@ If you prefer pay-as-you-go access or do not have a SuperGrok or X Premium subsc
|
||||
### Configuration with API Key
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "xAI" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your xAI API key into the "xAI API Key" field.
|
||||
4. **Select Model:** Choose your desired Grok model from the "Model" dropdown.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab. Click **Show more providers**, then search for or select **xAI** and enter your API key.
|
||||
|
||||
@@ -17,15 +17,6 @@ sidebar_label: ZenMux
|
||||
## Configuration in Kilo Code
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
1. **Open Kilo Code Settings:** Click the gear icon ({% codicon name="gear" /%}) in the Kilo Code panel.
|
||||
2. **Select Provider:** Choose "ZenMux" from the "API Provider" dropdown.
|
||||
3. **Enter API Key:** Paste your ZenMux API key into the "ZenMux API Key" field.
|
||||
4. **Select Model:** Choose your desired model from the "Model" dropdown.
|
||||
5. **(Optional) Custom Base URL:** If you need to use a custom base URL for the ZenMux API, check "Use custom base URL" and enter the URL. Leave this blank for most users.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Open **Settings** (gear icon) and go to the **Providers** tab to add ZenMux and enter your API key.
|
||||
|
||||
@@ -153,7 +153,9 @@ The tool supports two modes:
|
||||
| `worktree` | Creates one Agent Manager git worktree and session per task |
|
||||
| `local` | Creates Agent Manager sessions in the current workspace without git worktree isolation |
|
||||
|
||||
Each request can include 1-20 tasks. Each task must include at least one of `prompt`, `name`, or `branchName`. Use `versions: true` only when the tasks are alternate versions of the same work to compare; otherwise, multiple tasks start as independent sessions.
|
||||
Each request can include 1-20 tasks. Each task must include at least one of `prompt`, `name`, or `branchName`. A task with an initial prompt can also specify a `model` (by name, e.g. `Claude Opus 4.1`) and one of that model's reasoning `variant` values. Agent Manager resolves the provider for the chosen model, preferring the provider used by the current default model and falling back to the Kilo Gateway; a qualified `provider/model` ID is also accepted to force a specific provider. Tasks without those fields use the normal model defaults. Use `versions: true` only when the tasks are alternate versions of the same work to compare; otherwise, multiple tasks start as independent sessions.
|
||||
|
||||
The companion `agent_manager_models` tool searches models and their supported reasoning variants on demand. Results are grouped by model name (with the offering providers listed for reference) and limited to 20 per call, so the full catalog is never added to the conversation context.
|
||||
|
||||
The tool uses the `agent_manager` permission. Approval prompts are scoped to the requested mode, so approving `worktree` does not automatically approve `local`.
|
||||
|
||||
|
||||
@@ -139,13 +139,6 @@ Use `/review` for all local code reviews:
|
||||
- **`/review <commit-hash>`** — Review a specific commit
|
||||
- **`/review <PR URL or number>`** — Review a pull request
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Select 'Review' from the mode dropdown after making local changes, and click 'Send' for AI-powered feedback and suggestions.
|
||||
|
||||
{% image src="/docs/img/code-reviewer/review-mode.png" alt="VS Code interface showing Review option in mode dropdown" width="800" caption="Review Mode" /%}
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
|
||||
@@ -1,156 +0,0 @@
|
||||
---
|
||||
title: "Auto-launch Configuration"
|
||||
description: "Configure automatic agent launching"
|
||||
---
|
||||
|
||||
# Auto-Launch Configuration
|
||||
|
||||
Auto-Launch Configuration allows you to automatically start a Kilo Code task when opening a workspace, with support for specific profiles and modes. This was originally developed as an internal test feature, but we decided to expose it to users in case anyone finds it useful!
|
||||
|
||||
{% callout type="info" %}
|
||||
Auto-Launch Configuration is particularly useful for testing the same prompt against multiple models or project directories.
|
||||
{% /callout %}
|
||||
|
||||
## How It Works
|
||||
|
||||
When you open a workspace in VS Code, Kilo Code automatically checks for a launch configuration JSON file. If found, it:
|
||||
|
||||
- Switches to the specified provider profile (if provided)
|
||||
- Changes to the specified mode (if provided)
|
||||
- Launches a task with your predefined prompt
|
||||
|
||||
This happens seamlessly in the background, requiring no manual intervention.
|
||||
|
||||
## Creating a Launch Configuration
|
||||
|
||||
### Basic Setup
|
||||
|
||||
1. Create a `.kilocode` directory in your workspace root (if it doesn't exist)
|
||||
2. Create a `launchConfig.json` file inside the `.kilocode` directory
|
||||
3. Configure your launch settings using the JSON format below
|
||||
|
||||
### Configuration Format
|
||||
|
||||
```json
|
||||
{
|
||||
"prompt": "Your task description here",
|
||||
"profile": "Profile Name (optional)",
|
||||
"mode": "mode-name (optional)"
|
||||
}
|
||||
```
|
||||
|
||||
#### Required Fields
|
||||
|
||||
- **`prompt`** (string): The task message that will be sent to the AI when the workspace opens
|
||||
|
||||
#### Optional Fields
|
||||
|
||||
- **`profile`** (string): Name of an existing [API Configuration Profile](/docs/ai-providers) to use for this task. Must exactly match a profile name from your settings.
|
||||
|
||||
- **`mode`** (string): The Kilo Code mode to use for this task. Available modes:
|
||||
- `"code"` - General-purpose coding tasks
|
||||
- `"architect"` - Planning and technical design
|
||||
- `"ask"` - Questions and explanations
|
||||
- `"debug"` - Problem diagnosis and troubleshooting
|
||||
- `"test"` - Testing-focused workflows
|
||||
- Custom mode slugs (if you have [custom modes](/docs/customize/custom-modes))
|
||||
|
||||
## Example Configurations
|
||||
|
||||
### Basic Task Launch
|
||||
|
||||
```json
|
||||
{
|
||||
"prompt": "Review this codebase and suggest improvements for performance and maintainability"
|
||||
}
|
||||
```
|
||||
|
||||
### Profile-Specific Task
|
||||
|
||||
```json
|
||||
{
|
||||
"prompt": "Create comprehensive unit tests for all components in the src/ directory",
|
||||
"profile": "GPT-4 Turbo"
|
||||
}
|
||||
```
|
||||
|
||||
### Architecture Planning with Claude
|
||||
|
||||
```json
|
||||
{
|
||||
"prompt": "Design a scalable microservices architecture for this e-commerce platform with focus on security and performance",
|
||||
"profile": "🎻 Sonnet 4",
|
||||
"mode": "architect"
|
||||
}
|
||||
```
|
||||
|
||||
### Model Comparison Setup
|
||||
|
||||
```json
|
||||
{
|
||||
"prompt": "Optimize this algorithm for better time complexity and explain your approach",
|
||||
"profile": "🧠 Qwen",
|
||||
"mode": "code"
|
||||
}
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
|
||||
### Development Workflows
|
||||
|
||||
- **Project Templates**: Include launch configurations in project templates to immediately start with appropriate AI assistance
|
||||
- **Code Reviews**: Automatically trigger code review tasks when opening pull request branches
|
||||
- **Documentation**: Launch documentation generation tasks for new projects
|
||||
|
||||
### Testing and Comparison
|
||||
|
||||
- **Model Testing**: Create different configurations to test how various AI models handle the same prompt
|
||||
- **A/B Testing**: Compare approaches by switching between different profiles and modes
|
||||
- **Benchmarking**: Systematically test AI performance across different scenarios
|
||||
|
||||
### Team Collaboration
|
||||
|
||||
- **Consistent Setup**: Ensure all team members use the same AI configuration for specific projects
|
||||
- **Onboarding**: Help new team members start with optimal AI settings automatically
|
||||
- **Standards**: Enforce coding standards by launching with specific profiles and modes
|
||||
|
||||
## File Location
|
||||
|
||||
The configuration file must be located at:
|
||||
|
||||
```
|
||||
your-workspace/
|
||||
└── .kilocode/
|
||||
└── launchConfig.json
|
||||
```
|
||||
|
||||
This file should be at the root of your workspace (the same level as your main project files).
|
||||
|
||||
## Behavior and Timing
|
||||
|
||||
- Auto-launch triggers approximately 500ms after Kilo Code extension activation
|
||||
- The sidebar automatically receives focus before the task launches
|
||||
- Profile switching happens before mode switching (if both are specified)
|
||||
- The task launches after all configuration changes are applied
|
||||
- If profile or mode switching fails, the task continues with current settings
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Configuration Not Loading
|
||||
|
||||
1. Verify file location: `.kilocode/launchConfig.json` in workspace root
|
||||
2. Check JSON syntax with a JSON validator
|
||||
3. Ensure `prompt` field is present and not empty
|
||||
4. Check VS Code Developer Console for error messages
|
||||
|
||||
### Profile Not Switching
|
||||
|
||||
1. Verify the profile name exactly matches one from your settings
|
||||
2. Profile names are case-sensitive and must match exactly (including emojis)
|
||||
3. Check that the profile exists in your [API Configuration Profiles](/docs/ai-providers)
|
||||
|
||||
### Mode Not Switching
|
||||
|
||||
1. Verify the mode name is valid (code, architect, ask, debug, test)
|
||||
2. For custom modes, use the exact mode slug from your configuration
|
||||
3. Mode names are case-sensitive and should be lowercase
|
||||
@@ -58,7 +58,7 @@ Config files live in the same locations as the rest of your CLI configuration
|
||||
Drop TypeScript or JavaScript files into a `plugin/` or `plugins/` folder inside any config directory:
|
||||
|
||||
- Global: `~/.config/kilo/plugin/`
|
||||
- Project: `.kilo/plugin/`, `.kilocode/plugin/`, or `.opencode/plugin/`
|
||||
- Project: `.kilo/plugin/` or legacy `.kilocode/plugin/`
|
||||
|
||||
Every `.ts` or `.js` file in those directories is auto-registered at startup — no need to list them in the config file.
|
||||
|
||||
@@ -86,7 +86,7 @@ kilo plugin my-plugin --global
|
||||
kilo plugin my-plugin --force
|
||||
```
|
||||
|
||||
The command resolves the package, reads its `package.json` for plugin entrypoints, and writes the entry into the appropriate config file (currently `.opencode/opencode.jsonc` / `.opencode/tui.jsonc` for local installs, or `~/.config/kilo/opencode.jsonc` / `~/.config/kilo/tui.jsonc` for `--global`) while preserving JSONC comments.
|
||||
The command resolves the package, reads its `package.json` for plugin entrypoints, and writes the entry into the appropriate config file (`.kilo/opencode.jsonc` / `.kilo/tui.jsonc` for local installs, or `~/.config/kilo/opencode.jsonc` / `~/.config/kilo/tui.jsonc` for `--global`) while preserving JSONC comments.
|
||||
|
||||
### How plugins are installed
|
||||
|
||||
@@ -446,7 +446,7 @@ If a custom tool uses the same name as a built-in tool, **the custom tool wins**
|
||||
|
||||
### Alternative: standalone tool files
|
||||
|
||||
For tools that don't need the full plugin context, drop them in a `tool/` or `tools/` folder inside any config directory — for example `.kilo/tool/database.ts` or `~/.config/kilo/tool/database.ts`. The filename becomes the tool name, and each file exports a `tool()` definition directly. The layout is identical to the [OpenCode custom tools guide](https://opencode.ai/docs/custom-tools); substitute `.kilo/` (or `.kilocode/` / `.opencode/`) for `.opencode/`.
|
||||
For tools that don't need the full plugin context, drop them in a `tool/` or `tools/` folder inside any config directory — for example `.kilo/tool/database.ts` or `~/.config/kilo/tool/database.ts`. The filename becomes the tool name, and each file exports a `tool()` definition directly. The layout is identical to the [OpenCode custom tools guide](https://opencode.ai/docs/custom-tools); use `.kilo/`, or legacy `.kilocode/`, instead of `.opencode/`.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -7,345 +7,6 @@ description: "Integrate Kilo Code with your shell environment"
|
||||
|
||||
Terminal Shell Integration is a key feature that enables Kilo Code to execute commands in your terminal and intelligently process their output. This bidirectional communication between the AI and your development environment unlocks powerful automation capabilities.
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
## What is Shell Integration?
|
||||
|
||||
Shell integration is automatically enabled in Kilo Code and connects directly to your terminal's command execution lifecycle without requiring any setup from you. This built-in feature allows Kilo Code to:
|
||||
|
||||
- Execute commands on your behalf through the [`execute_command`](/docs/automate/tools/execute-command) tool
|
||||
- Read command output in real-time without manual copy-pasting
|
||||
- Automatically detect and fix errors in running applications
|
||||
- Observe command exit codes to determine success or failure
|
||||
- Track working directory changes as you navigate your project
|
||||
- React intelligently to terminal output without user intervention
|
||||
|
||||
When Kilo Code needs to perform tasks like installing dependencies, starting a development server, or analyzing build errors, shell integration works behind the scenes to make these interactions smooth and effective.
|
||||
|
||||
## Getting Started with Shell Integration
|
||||
|
||||
Shell integration is built into Kilo Code and works automatically in most cases. If you see "Shell Integration Unavailable" messages or experience issues with command execution, try these solutions:
|
||||
|
||||
1. **Update VS Code/Cursor** to the latest version (VS Code 1.93+ required)
|
||||
2. **Ensure a compatible shell is selected**: Command Palette (`Ctrl+Shift+P` or `Cmd+Shift+P`) → "Terminal: Select Default Profile" → Choose bash, zsh, PowerShell, or fish
|
||||
3. **Windows PowerShell users**: Run `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` then restart VS Code
|
||||
4. **WSL users**: Add `. "$(code --locate-shell-integration-path bash)"` to your `~/.bashrc`
|
||||
|
||||
## Terminal Integration Settings
|
||||
|
||||
Kilo Code provides several settings to fine-tune shell integration. Access these in the Kilo Code panel under Settings → Terminal.
|
||||
|
||||
### Basic Settings
|
||||
|
||||
#### Terminal Output Limit
|
||||
|
||||
{% image src="/docs/img/shell-integration/terminal-output-limit.png" alt="Terminal output limit slider set to 500" width="500" caption="Terminal output limit slider set to 500" /%}
|
||||
Controls the maximum number of lines captured from terminal output. When exceeded, it keeps 20% of the beginning and 80% of the end with a truncation message in between. This prevents excessive token usage while maintaining context. Default: 500 lines.
|
||||
|
||||
#### Terminal Shell Integration Timeout
|
||||
|
||||
{% image src="/docs/img/shell-integration/shell-integration-timeout.png" alt="Terminal shell integration timeout slider set to 15s" width="500" caption="Terminal shell integration timeout slider set to 15s" /%}
|
||||
|
||||
Maximum time to wait for shell integration to initialize before executing commands. Increase this value if you experience "Shell Integration Unavailable" errors. Default: 15 seconds.
|
||||
|
||||
#### Terminal Command Delay
|
||||
|
||||
{% image src="/docs/img/shell-integration/terminal-command-delay.png" alt="Terminal command delay slider set to 0ms" width="500" caption="Terminal command delay slider set to 0ms" /%}
|
||||
|
||||
Adds a small pause after running commands to help Kilo Code capture all output correctly. This setting can significantly impact shell integration reliability due to VSCode's implementation of terminal integration across different operating systems and shell configurations:
|
||||
|
||||
- **Default**: 0ms
|
||||
- **Common Values**:
|
||||
- 0ms: Works best for some users with newer VSCode versions
|
||||
- 50ms: Historical default, still effective for many users
|
||||
- 150ms: Recommended for PowerShell users
|
||||
- **Note**: Different values may work better depending on your:
|
||||
- VSCode version
|
||||
- Shell customizations (oh-my-zsh, powerlevel10k, etc.)
|
||||
- Operating system and environment
|
||||
|
||||
### Advanced Settings
|
||||
|
||||
{% callout type="info" title="Important" %}
|
||||
**Terminal restart required for these settings**
|
||||
|
||||
Changes to advanced terminal settings only take effect after restarting your terminals. To restart a terminal:
|
||||
|
||||
1. Click the trash icon in the terminal panel to close the current terminal
|
||||
2. Open a new terminal with Terminal → New Terminal or <kbd>Ctrl</kbd>+<kbd>`</kbd> (backtick)
|
||||
|
||||
Always restart all open terminals after changing any of these settings.
|
||||
{% /callout %}
|
||||
|
||||
#### PowerShell Counter Workaround
|
||||
|
||||
{% image src="/docs/img/shell-integration/power-shell-workaround.png" alt="PowerShell counter workaround checkbox" width="600" caption="PowerShell counter workaround checkbox" /%}
|
||||
|
||||
Helps PowerShell run the same command multiple times in a row. Enable this if you notice Kilo Code can't run identical commands consecutively in PowerShell.
|
||||
|
||||
#### Clear ZSH EOL Mark
|
||||
|
||||
{% image src="/docs/img/shell-integration/clear-zsh-eol-mark.png" alt="Clear ZSH EOL mark checkbox" width="600" caption="Clear ZSH EOL mark checkbox" /%}
|
||||
|
||||
Prevents ZSH from adding special characters at the end of output lines that can confuse Kilo Code when reading terminal results.
|
||||
|
||||
#### Oh My Zsh Integration
|
||||
|
||||
{% image src="/docs/img/shell-integration/oh-my-zsh.png" alt="Enable Oh My Zsh integration checkbox" width="600" caption="Enable Oh My Zsh integration checkbox" /%}
|
||||
|
||||
Makes Kilo Code work better with the popular [Oh My Zsh](https://ohmyz.sh/) shell customization framework. Turn this on if you use Oh My Zsh and experience terminal issues.
|
||||
|
||||
#### Powerlevel10k Integration
|
||||
|
||||
{% image src="/docs/img/shell-integration/power10k.png" alt="Enable Powerlevel10k integration checkbox" width="600" caption="Enable Powerlevel10k integration checkbox" /%}
|
||||
|
||||
Improves compatibility if you use the Powerlevel10k theme for ZSH. Turn this on if your fancy terminal prompt causes issues with Kilo Code.
|
||||
|
||||
#### ZDOTDIR Handling
|
||||
|
||||
{% image src="/docs/img/shell-integration/zdotdir.png" alt="Enable ZDOTDIR handling checkbox" width="600" caption="Enable ZDOTDIR handling checkbox" /%}
|
||||
|
||||
Helps Kilo Code work with custom ZSH configurations without interfering with your personal shell settings and customizations.
|
||||
|
||||
## Troubleshooting Shell Integration
|
||||
|
||||
### PowerShell Execution Policy (Windows)
|
||||
|
||||
PowerShell restricts script execution by default. To configure:
|
||||
|
||||
1. Open PowerShell as Administrator
|
||||
2. Check current policy: `Get-ExecutionPolicy`
|
||||
3. Set appropriate policy: `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`
|
||||
|
||||
Common policies:
|
||||
|
||||
- `Restricted`: No scripts allowed (default)
|
||||
- `RemoteSigned`: Local scripts can run; downloaded scripts need signing
|
||||
- `Unrestricted`: All scripts run with warnings
|
||||
- `AllSigned`: All scripts must be signed
|
||||
|
||||
### Manual Shell Integration Installation
|
||||
|
||||
If automatic integration fails, add the appropriate line to your shell configuration:
|
||||
|
||||
**Bash** (`~/.bashrc`):
|
||||
|
||||
```bash
|
||||
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path bash)"
|
||||
```
|
||||
|
||||
**Zsh** (`~/.zshrc`):
|
||||
|
||||
```bash
|
||||
[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)"
|
||||
```
|
||||
|
||||
**PowerShell** (`$Profile`):
|
||||
|
||||
```powershell
|
||||
if ($env:TERM_PROGRAM -eq "vscode") { . "$(code --locate-shell-integration-path pwsh)" }
|
||||
```
|
||||
|
||||
**Fish** (`~/.config/fish/config.fish`):
|
||||
|
||||
```fish
|
||||
string match -q "$TERM_PROGRAM" "vscode"; and . (code --locate-shell-integration-path fish)
|
||||
```
|
||||
|
||||
### Terminal Customization Issues
|
||||
|
||||
If you use terminal customization tools:
|
||||
|
||||
**Powerlevel10k**:
|
||||
|
||||
```bash
|
||||
# Add before sourcing powerlevel10k in ~/.zshrc
|
||||
typeset -g POWERLEVEL9K_TERM_SHELL_INTEGRATION=true
|
||||
```
|
||||
|
||||
**Alternative**: Enable the Powerlevel10k Integration setting in Kilo Code.
|
||||
|
||||
### Verifying Shell Integration Status
|
||||
|
||||
Confirm shell integration is active with these commands:
|
||||
|
||||
**Bash**:
|
||||
|
||||
```bash
|
||||
set | grep -i '[16]33;'
|
||||
echo "$PROMPT_COMMAND" | grep vsc
|
||||
trap -p DEBUG | grep vsc
|
||||
```
|
||||
|
||||
**Zsh**:
|
||||
|
||||
```zsh
|
||||
functions | grep -i vsc
|
||||
typeset -p precmd_functions preexec_functions
|
||||
```
|
||||
|
||||
**PowerShell**:
|
||||
|
||||
```powershell
|
||||
Get-Command -Name "*VSC*" -CommandType Function
|
||||
Get-Content Function:\Prompt | Select-String "VSCode"
|
||||
```
|
||||
|
||||
**Fish**:
|
||||
|
||||
```fish
|
||||
functions | grep -i vsc
|
||||
functions fish_prompt | grep -i vsc
|
||||
```
|
||||
|
||||
Visual indicators of active shell integration:
|
||||
|
||||
1. Shell integration indicator in terminal title bar
|
||||
2. Command detection highlighting
|
||||
3. Working directory updates in terminal title
|
||||
4. Command duration and exit code reporting
|
||||
|
||||
## WSL Terminal Integration Methods
|
||||
|
||||
When using Windows Subsystem for Linux (WSL), there are two distinct ways to use VSCode with WSL, each with different implications for shell integration:
|
||||
|
||||
### Method 1: VSCode Windows with WSL Terminal
|
||||
|
||||
In this setup:
|
||||
|
||||
- VSCode runs natively in Windows
|
||||
- You use the WSL terminal integration feature in VSCode
|
||||
- Shell commands are executed through the WSL bridge
|
||||
- May experience additional latency due to Windows-WSL communication
|
||||
- Shell integration markers may be affected by the WSL-Windows boundary: you must make sure that `source "$(code --locate-shell-integration-path <shell>)"` is loaded for your shell within the WSL environment because it may not get automatically loaded; see above.
|
||||
|
||||
### Method 2: VSCode Running Within WSL
|
||||
|
||||
In this setup:
|
||||
|
||||
- You launch VSCode directly from within WSL using `code .`
|
||||
- VSCode server runs natively in the Linux environment
|
||||
- Direct access to Linux filesystem and tools
|
||||
- Better performance and reliability for shell integration
|
||||
- Shell integration is loaded automatically since VSCode runs natively in the Linux environment
|
||||
- Recommended approach for WSL development
|
||||
|
||||
For optimal shell integration with WSL, we recommend:
|
||||
|
||||
1. Open your WSL distribution
|
||||
2. Navigate to your project directory
|
||||
3. Launch VSCode using `code .`
|
||||
4. Use the integrated terminal within VSCode
|
||||
|
||||
## Known Issues and Workarounds
|
||||
|
||||
### VS Code + Fish + Cygwin (Windows)
|
||||
|
||||
If you use Fish in Cygwin, a minimal setup is usually enough:
|
||||
|
||||
1. In your Cygwin Fish config (`~/.config/fish/config.fish`), add:
|
||||
|
||||
```fish
|
||||
string match -q "$TERM_PROGRAM" "vscode"; and . (code --locate-shell-integration-path fish)
|
||||
|
||||
```
|
||||
|
||||
2. Configure a terminal profile in VS Code that launches Fish (directly or via Cygwin bash).
|
||||
3. Restart VS Code and open a new terminal to verify integration.
|
||||
|
||||
{% image src="/docs/img/shell-integration/shell-integration-8.png" alt="Fish Cygwin Integration Example" width="600" caption="Fish Cygwin Integration Example" /%}
|
||||
|
||||
### Shell Integration Failures After VS Code 1.98
|
||||
|
||||
**Issue**: After VS Code updates beyond version 1.98, shell integration may fail with the error "VSCE output start escape sequence (]633;C or ]133;C) not received".
|
||||
|
||||
**Solutions**:
|
||||
|
||||
1. **Set Terminal Command Delay**:
|
||||
- Set the Terminal Command Delay to 50ms in Kilo Code settings
|
||||
- Restart all terminals after changing this setting
|
||||
- This matches older default behavior and may resolve the issue; some users report 0ms works better depending on shell and environment. This is a workaround for upstream VS Code behavior.
|
||||
|
||||
2. **Roll Back VS Code Version**:
|
||||
- Download VS Code v1.98 from [VS Code Updates](https://code.visualstudio.com/updates/v1_98)
|
||||
- Replace your current VS Code installation
|
||||
- No backup of Kilo settings needed
|
||||
|
||||
3. **WSL-Specific Workaround**:
|
||||
- If using WSL, ensure you launch VSCode from within WSL using `code .`
|
||||
|
||||
4. **ZSH Users**:
|
||||
- Try enabling some or all ZSH-related workarounds in Kilo Code settings
|
||||
- These settings can help regardless of your operating system
|
||||
|
||||
## Additional Known Issues
|
||||
|
||||
### Ctrl+C Behavior
|
||||
|
||||
**Issue**: If text is already typed in the terminal when Kilo Code tries to run a command, Kilo Code will press Ctrl+C first to clear the line, which can interrupt running processes.
|
||||
|
||||
**Workaround**: Make sure your terminal prompt is empty (no partial commands typed) before asking Kilo Code to execute terminal commands.
|
||||
|
||||
### Multi-line Command Issues
|
||||
|
||||
**Issue**: Commands that span multiple lines can confuse Kilo Code and may show output from previous commands mixed in with current output.
|
||||
|
||||
**Workaround**: Instead of multi-line commands, use command chaining with `&&` to keep everything on one line (e.g., `echo a && echo b` instead of typing each command on a separate line).
|
||||
|
||||
### PowerShell-Specific Issues
|
||||
|
||||
1. **Premature Completion**: PowerShell sometimes tells Kilo Code a command is finished before all the output has been shown.
|
||||
2. **Repeated Commands**: PowerShell may refuse to run the same command twice in a row.
|
||||
|
||||
**Workaround**: Enable the "PowerShell counter workaround" setting and set a terminal command delay of 150ms in the settings to give commands more time to complete.
|
||||
|
||||
### Incomplete Terminal Output
|
||||
|
||||
**Issue**: Sometimes VS Code doesn't show or capture all the output from a command.
|
||||
|
||||
**Workaround**: If you notice missing output, try closing and reopening the terminal tab, then run the command again. This refreshes the terminal connection.
|
||||
|
||||
## Troubleshooting Resources
|
||||
|
||||
### Checking Debug Logs
|
||||
|
||||
When shell integration issues occur, check the debug logs:
|
||||
|
||||
1. Open Help → Toggle Developer Tools → Console
|
||||
2. Set "Show All Levels" to see all log messages
|
||||
3. Look for messages containing `[Terminal Process]`
|
||||
4. Check `preOutput` content in error messages:
|
||||
- Empty preOutput (`''`) means VS Code sent no data
|
||||
- This indicates a potential VS Code shell integration issue, or an upstream bug that is out of our control
|
||||
- The absence of shell integration markers may require adjusting settings to work around possible upstream bugs or local workstation configuration issues related to shell initialization and VS Code loading shell hooks
|
||||
|
||||
### Using the VS Code Terminal Integration Test Extension
|
||||
|
||||
The [VS Code Terminal Integration Test Extension](https://github.com/KJ7LNW/vsce-test-terminal-integration) helps diagnose shell integration issues by testing different settings combinations:
|
||||
|
||||
1. **When Commands Stall**:
|
||||
- If you see "command already running" warnings, click "Reset Stats" to reset the terminal state
|
||||
- These warnings indicate shell integration is not working
|
||||
- Try different settings combinations until you find one that works
|
||||
- If it really gets stuck, restart the extension by closing the window and pressing F5
|
||||
|
||||
2. **Testing Settings**:
|
||||
- Systematically try different combinations of:
|
||||
- Terminal Command Delay
|
||||
- Shell Integration settings
|
||||
- Document which combinations succeed or fail
|
||||
- This helps identify patterns in shell integration issues
|
||||
|
||||
3. **Reporting Issues**:
|
||||
- Once you find a problematic configuration
|
||||
- Document the exact settings combination
|
||||
- Note your environment (OS, VS Code version, shell, and any shell prompt customization)
|
||||
- Open an issue with these details to help improve shell integration
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode & CLI" %}
|
||||
|
||||
## How Shell Execution Works
|
||||
|
||||
The new CLI and extension take a fundamentally different approach to shell execution. Instead of relying on VS Code's terminal shell integration, the CLI spawns and manages shell processes directly using the `bash` tool.
|
||||
@@ -414,9 +75,6 @@ Shell execution in the new CLI is significantly simpler than the **VSCode** vers
|
||||
|
||||
If commands fail to execute, check the CLI's log output for error details. The CLI logs the shell it detected and any errors during command execution.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Support
|
||||
|
||||
If you've followed these steps and are still experiencing problems, please:
|
||||
|
||||
@@ -18,9 +18,6 @@ Describe what you want to accomplish in natural language, and Kilo Code will:
|
||||
|
||||
## Tool Categories
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
| Category | Purpose | Tool Names |
|
||||
|:---|:---|:---|
|
||||
| Read | Access file content and code structure | `read`, `glob`, `grep` |
|
||||
@@ -29,27 +26,10 @@ Describe what you want to accomplish in natural language, and Kilo Code will:
|
||||
| Web | Fetch and search web content | `webfetch`, `websearch` |
|
||||
| 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` |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Example: Using Tools
|
||||
|
||||
Here's how a typical tool interaction works:
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
{% callout type="info" title="Tool Approval UI" %}
|
||||
When a tool is proposed, you'll see an approval prompt in the **Permission Dock** at the bottom of the chat. You can approve once, approve always (saves to config), or deny.
|
||||
{% /callout %}
|
||||
@@ -60,43 +40,8 @@ When a tool is proposed, you'll see an approval prompt in the **Permission Dock*
|
||||
|
||||
The extension shows the file path and proposed content for review. Click **Approve** to execute or **Deny** to cancel.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
{% callout type="info" title="Tool Approval UI" %}
|
||||
When a tool is proposed, you'll see Save and Reject buttons along with an optional Auto-approve checkbox for trusted operations.
|
||||
{% /callout %}
|
||||
|
||||
**User:** Create a file named `greeting.js` that logs a greeting message
|
||||
|
||||
**Kilo Code:** (Proposes the `write_to_file` tool as shown in the image above)
|
||||
|
||||
```xml
|
||||
<write_to_file>
|
||||
<path>greeting.js</path>
|
||||
<content>
|
||||
function greet(name) {
|
||||
console.log(`Hello, ${name}!`);
|
||||
}
|
||||
|
||||
greet('World');
|
||||
</content>
|
||||
<line_count>5</line_count>
|
||||
</write_to_file>
|
||||
```
|
||||
|
||||
**User:** (Clicks "Save" in the interface)
|
||||
|
||||
**Kilo Code:** (Confirms file creation)
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Tool Safety and Approval
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
Every tool use is subject to a permission check. The default action for any tool with no matching rule in your config is **`ask`** — meaning Kilo will pause and prompt you before executing it.
|
||||
|
||||
**Default permissions by tool:**
|
||||
@@ -135,25 +80,8 @@ To pre-configure permissions in your config file:
|
||||
|
||||
This safety mechanism ensures you maintain control over which files are modified, what commands are executed, and how your codebase is changed.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Every tool use requires your explicit approval. When Kilo proposes a tool, you'll see:
|
||||
|
||||
- A "Save" button to approve and execute the tool
|
||||
- A "Reject" button to decline the proposed tool
|
||||
- An optional "Auto-approve" setting for trusted operations
|
||||
|
||||
This safety mechanism ensures you maintain control over which files are modified, what commands are executed, and how your codebase is changed. Always review tool proposals carefully before saving them.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Core Tools Reference
|
||||
|
||||
{% tabs %}
|
||||
{% tab label="VSCode" %}
|
||||
|
||||
| Tool Name | Description | Category |
|
||||
|:---|:---|:---|
|
||||
| `read` | Reads file contents with line numbers | Read |
|
||||
@@ -172,28 +100,6 @@ This safety mechanism ensures you maintain control over which files are modified
|
||||
| `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 |
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Learn More About Tools
|
||||
|
||||
For more detailed information about each tool, including complete parameter references and advanced usage patterns, see the [Tool Use Overview](/docs/automate/tools) documentation.
|
||||
|
||||
@@ -53,7 +53,6 @@ Customize and extend Kilo Code's capabilities:
|
||||
|
||||
- [**Local Models**](/docs/automate/extending/local-models) — Run local AI models
|
||||
- [**Shell Integration**](/docs/automate/extending/shell-integration) — Shell command integration
|
||||
- [**Auto-Launch**](/docs/automate/extending/auto-launch) — Automatic agent startup
|
||||
|
||||
## Common Automation Patterns
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Kilo Integrations lets you connect GitHub or GitLab for repository workflows and
|
||||
- **Connect GitHub, GitLab, or DoltHub to Kilo Code** in a few clicks
|
||||
- **Enable advanced features** like Cloud Agents, Code Reviews, and Kilo Deploy
|
||||
- **Authorize GitHub or GitLab repository access** so Kilo can analyze and work with your code
|
||||
- **Query Dolt-versioned data** from your workspace through Kilo Connect
|
||||
- **Query Dolt-versioned data** and authorize DoltHub access for Gas Town Wasteland
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -114,15 +114,21 @@ For self-hosted GitLab instances using OAuth, you need to register an OAuth appl
|
||||
|
||||
## Connecting DoltHub
|
||||
|
||||
DoltHub is available through [Kilo Connect](/docs/code-with-ai/platforms/kilo-connect) for teams that work with Dolt-versioned data.
|
||||
Use the DoltHub integration page to connect your DoltHub account. Kilo uses this OAuth connection for [Kilo Connect](/docs/code-with-ai/platforms/kilo-connect) and as the default auth method for [Gas Town Wasteland](/docs/code-with-ai/gastown/wasteland).
|
||||
|
||||
1. Go to the **Integrations** page:
|
||||
- **Personal**: [app.kilo.ai/integrations/dolthub](https://app.kilo.ai/integrations/dolthub)
|
||||
- **Organization**: Your organization → Integrations → DoltHub
|
||||
2. Click **Connect DoltHub**.
|
||||
3. Authorize the connection with DoltHub.
|
||||
3. Approve Kilo on DoltHub.
|
||||
4. Return to Kilo and confirm DoltHub shows a **Connected** status.
|
||||
|
||||
{% image src="/docs/img/integrations/dolthub/connect.png" alt="DoltHub integration page before OAuth connection" width="900" caption="DoltHub integration page in Kilo" /%}
|
||||
|
||||
{% image src="/docs/img/integrations/dolthub/authorize.png" alt="DoltHub OAuth authorization screen for Kilo" width="700" caption="DoltHub OAuth authorization screen" /%}
|
||||
|
||||
{% image src="/docs/img/integrations/dolthub/connected.png" alt="Connected DoltHub integration page showing api_read_write permission" width="900" caption="Connected DoltHub integration" /%}
|
||||
|
||||
To remove the connection, click **Disconnect** from the DoltHub integration page.
|
||||
|
||||
---
|
||||
@@ -153,6 +159,7 @@ Once your integrations are connected, the following features are enabled in Kilo
|
||||
|
||||
- Query Dolt-versioned databases from your workspace
|
||||
- Use DoltHub alongside GitHub or GitLab when a workflow also needs repository access
|
||||
- Authorize Gas Town Wasteland to fork commons databases, push claims and evidence, and manage DoltHub PRs. Wasteland also supports an advanced API token option when OAuth is not available.
|
||||
|
||||
### Upcoming:
|
||||
|
||||
@@ -185,6 +192,7 @@ From the **Integrations** page:
|
||||
From the **Integrations** page, open DoltHub to:
|
||||
|
||||
- View the connected status
|
||||
- View granted permissions
|
||||
- Disconnect DoltHub from Kilo
|
||||
|
||||
---
|
||||
|
||||
@@ -81,18 +81,6 @@ The CLI accepts several config filenames. The recommended file is `kilo.json`:
|
||||
| **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. |
|
||||
|
||||
Project-level configs can be committed to version control to share with your team.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -122,29 +110,6 @@ Add MCP servers under the `mcp` key in your config file. Each server has a uniqu
|
||||
|
||||
You can disable a server by setting `enabled` to `false` without removing it from your config.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
Both global and project-level files use a JSON format with a `mcpServers` object containing named server configurations:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"server1": {
|
||||
"command": "python",
|
||||
"args": ["/path/to/server.py"],
|
||||
"env": {
|
||||
"API_KEY": "your_api_key"
|
||||
},
|
||||
"alwaysAllow": ["tool1", "tool2"],
|
||||
"disabled": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
_Example of MCP Server config in Kilo Code (STDIO Transport)_
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -204,25 +169,6 @@ In the VS Code extension, open **Settings → MCP**, click **Add Server**, and c
|
||||
| `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)" %}
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"local-server": {
|
||||
"command": "node",
|
||||
"args": ["/path/to/server.js"],
|
||||
"env": {
|
||||
"API_KEY": "your_api_key"
|
||||
},
|
||||
"alwaysAllow": ["tool1", "tool2"],
|
||||
"disabled": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -268,25 +214,6 @@ In the VS Code extension, open **Settings → MCP**, click **Add Server**, and c
|
||||
| `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)" %}
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"remote-server": {
|
||||
"type": "streamable-http",
|
||||
"url": "https://your-server-url.com/mcp",
|
||||
"headers": {
|
||||
"Authorization": "Bearer your-token"
|
||||
},
|
||||
"alwaysAllow": ["tool3"],
|
||||
"disabled": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -385,37 +312,6 @@ Use `{env:VARIABLE_NAME}` syntax in config files to reference environment variab
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
### Editing MCP Settings Files
|
||||
|
||||
You can edit both global and project-level MCP configuration files directly from the Kilo Code settings.
|
||||
|
||||
1. Click the {% codicon name="gear" /%} icon in the top navigation of the Kilo Code pane to open `Settings`.
|
||||
2. Click the `Agent Behaviour` tab on the left side
|
||||
3. Select the `MCP Servers` sub-tab
|
||||
4. Click the appropriate button:
|
||||
- **`Edit Global MCP`**: Opens the global `mcp_settings.json` file.
|
||||
- **`Edit Project MCP`**: Opens the project-specific `.kilocode/mcp.json` file. If this file doesn't exist, Kilo Code will create it for you.
|
||||
|
||||
{% image src="/docs/img/using-mcp-in-kilo-code/mcp-installed-config.png" alt="Edit Global MCP and Edit Project MCP buttons" width="600" caption="Edit Global MCP and Edit Project MCP buttons" /%}
|
||||
|
||||
### Deleting a Server
|
||||
|
||||
1. Press the {% codicon name="trash" /%} next to the MCP server you would like to delete
|
||||
2. Press the `Delete` button on the confirmation box
|
||||
|
||||
{% image src="/docs/img/using-mcp-in-kilo-code/using-mcp-in-kilo-code-5.png" alt="Delete confirmation box" width="400" caption="Delete confirmation box" /%}
|
||||
|
||||
### Restarting a Server
|
||||
|
||||
1. Press the {% codicon name="refresh" /%} button next to the MCP server you would like to restart
|
||||
|
||||
### Enabling or Disabling a Server
|
||||
|
||||
1. Press the {% codicon name="activate" /%} toggle switch next to the MCP server to enable/disable it
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -431,15 +327,6 @@ Set the `timeout` field (in milliseconds) in the server's config entry. The defa
|
||||
|
||||
Set the `timeout` field (in milliseconds) in the server's config entry. The default is 30000 (30 seconds).
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
To set the maximum time to wait for a response after a tool call to the MCP server:
|
||||
|
||||
1. Click the `Network Timeout` pulldown at the bottom of the individual MCP server's config box and change the time. Default is 1 minute but it can be set between 30 seconds and 5 minutes.
|
||||
|
||||
{% image src="/docs/img/using-mcp-in-kilo-code/using-mcp-in-kilo-code-6.png" alt="Network Timeout pulldown" width="400" caption="Network Timeout pulldown" /%}
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -484,19 +371,6 @@ Add `permission` entries to your config to auto-approve specific tools. MCP tool
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
MCP tool auto-approval works on a per-tool basis and is disabled by default. To configure auto-approval:
|
||||
|
||||
1. First enable the global "Use MCP servers" auto-approval option in [auto-approving-actions](/docs/getting-started/settings/auto-approving-actions)
|
||||
2. Navigate to Settings > Agent Behaviour > MCP Servers, then locate the specific tool you want to auto-approve
|
||||
3. Check the `Always allow` checkbox next to the tool name
|
||||
|
||||
{% image src="/docs/img/using-mcp-in-kilo-code/using-mcp-in-kilo-code-7.png" alt="Always allow checkbox for MCP tools" width="120" caption="Always allow checkbox for MCP tools" /%}
|
||||
|
||||
When enabled, Kilo Code will automatically approve this specific tool without prompting. Note that the global "Use MCP servers" setting takes precedence - if it's disabled, no MCP tools will be auto-approved.
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -564,39 +438,6 @@ Use `npx` directly:
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
### Windows
|
||||
|
||||
Use `cmd` as the command and put the rest of the invocation in `args`:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"puppeteer": {
|
||||
"command": "cmd",
|
||||
"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-puppeteer"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### macOS and Linux
|
||||
|
||||
Use `npx` directly:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"puppeteer": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
@@ -688,14 +529,6 @@ Example: "Analyze the performance of my API" might use an MCP tool that tests AP
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it is not disabled (`"enabled": false`) in your config.
|
||||
- **Slow Performance:** Increase the `timeout` value for the specific MCP server in your config.
|
||||
|
||||
{% /tab %}
|
||||
{% tab label="VSCode (Legacy)" %}
|
||||
|
||||
- **Server Not Responding:** Check if the server process is running and verify network connectivity
|
||||
- **Permission Errors:** Ensure proper API keys and credentials are configured in your `mcp_settings.json` (for global settings) or `.kilocode/mcp.json` (for project settings).
|
||||
- **Tool Not Available:** Confirm the server is properly implementing the tool and it's not disabled in settings
|
||||
- **Slow Performance:** Try adjusting the network timeout value for the specific MCP server
|
||||
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user