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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/sandbox-settings-page.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"kilo-code": patch
"@kilocode/cli": minor
"@kilocode/sdk": minor
---

Configure sandboxing through first-class sandbox settings, and show its controls in the dedicated Sandboxing page for all supported macOS and Linux users while keeping it disabled by default.
73 changes: 47 additions & 26 deletions .github/workflows/visual-regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ on:
pull_request:
types: [opened, synchronize, reopened]

permissions:
contents: read
pull-requests: read

jobs:
check-paths:
name: Check changed paths
Expand Down Expand Up @@ -42,9 +46,10 @@ jobs:
- name: Check baseline auto-commit permissions
id: autocommit-check
env:
BOT_PAT: ${{ secrets.BOT_PAT }}
MAINTAINER_APP_ID: ${{ secrets.KILO_MAINTAINER_APP_ID }}
MAINTAINER_APP_SECRET: ${{ secrets.KILO_MAINTAINER_APP_SECRET }}
run: |
if [ "${{ steps.fork-check.outputs.is_fork }}" != "true" ] && [ -n "$BOT_PAT" ]; then
if [ "${{ steps.fork-check.outputs.is_fork }}" != "true" ] && [ -n "$MAINTAINER_APP_ID" ] && [ -n "$MAINTAINER_APP_SECRET" ]; then
echo "can_autocommit=true" >> "$GITHUB_OUTPUT"
else
echo "can_autocommit=false" >> "$GITHUB_OUTPUT"
Expand All @@ -63,8 +68,8 @@ jobs:
uses: actions/checkout@v6
with:
lfs: true
# use BOT_PAT only when later baseline pushes are allowed; github.token is read-only on Dependabot PRs.
token: ${{ secrets.BOT_PAT }}
# Use github.token for LFS access. The maintainer app is used only for generated commits.
token: ${{ github.token }}
ref: ${{ github.head_ref }}

- name: Checkout (read-only)
Expand Down Expand Up @@ -171,25 +176,33 @@ jobs:
exit 1
fi

- name: Commit and push new baselines (if any)
- name: Check for baseline updates
if: needs.check-paths.outputs.can_autocommit == 'true' && steps.check-baseline-commit.outputs.is_baseline_update != 'true'
id: commit-baselines
env:
GH_TOKEN: ${{ secrets.BOT_PAT }}
id: baseline-changes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add packages/kilo-docs/public/img/screenshot-tests/kilo-ui/
if git diff --cached --quiet; then
echo "No new baselines — nothing to commit."
echo "changed=false" >> "$GITHUB_OUTPUT"
else
git commit -m "chore: update visual regression baselines"
git lfs push --all origin
git push --no-verify
echo "changed=true" >> "$GITHUB_OUTPUT"
fi

- name: Setup Git Committer
if: steps.baseline-changes.outputs.changed == 'true'
uses: ./.github/actions/setup-git-committer
with:
kilo-maintainer-app-id: ${{ secrets.KILO_MAINTAINER_APP_ID }}
kilo-maintainer-app-secret: ${{ secrets.KILO_MAINTAINER_APP_SECRET }}

- name: Commit and push new baselines (if any)
if: steps.baseline-changes.outputs.changed == 'true'
id: commit-baselines
run: |
git commit -m "chore: update visual regression baselines"
git lfs push --all origin
git push --no-verify origin "HEAD:${GITHUB_HEAD_REF}"
echo "changed=true" >> "$GITHUB_OUTPUT"

- name: Fail if baselines changed
if: needs.check-paths.outputs.can_autocommit == 'true' && steps.commit-baselines.outputs.changed == 'true'
run: |
Expand Down Expand Up @@ -219,8 +232,8 @@ jobs:
uses: actions/checkout@v6
with:
lfs: true
# use BOT_PAT only when later baseline pushes are allowed; github.token is read-only on Dependabot PRs.
token: ${{ secrets.BOT_PAT }}
# Use github.token for LFS access. The maintainer app is used only for generated commits.
token: ${{ github.token }}
ref: ${{ github.head_ref }}

- name: Checkout (read-only)
Expand Down Expand Up @@ -357,25 +370,33 @@ jobs:
exit 1
fi

- name: Commit and push new baselines (if any)
- name: Check for baseline updates
if: needs.check-paths.outputs.can_autocommit == 'true' && steps.check-baseline-commit-vscode.outputs.is_baseline_update != 'true'
id: commit-baselines-vscode
env:
GH_TOKEN: ${{ secrets.BOT_PAT }}
id: baseline-changes-vscode
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/
if git diff --cached --quiet; then
echo "No new baselines — nothing to commit."
echo "changed=false" >> "$GITHUB_OUTPUT"
else
git commit -m "chore: update kilo-vscode visual regression baselines"
git lfs push --all origin
git push --no-verify
echo "changed=true" >> "$GITHUB_OUTPUT"
fi

- name: Setup Git Committer
if: steps.baseline-changes-vscode.outputs.changed == 'true'
uses: ./.github/actions/setup-git-committer
with:
kilo-maintainer-app-id: ${{ secrets.KILO_MAINTAINER_APP_ID }}
kilo-maintainer-app-secret: ${{ secrets.KILO_MAINTAINER_APP_SECRET }}

- name: Commit and push new baselines (if any)
if: steps.baseline-changes-vscode.outputs.changed == 'true'
id: commit-baselines-vscode
run: |
git commit -m "chore: update kilo-vscode visual regression baselines"
git lfs push --all origin
git push --no-verify origin "HEAD:${GITHUB_HEAD_REF}"
echo "changed=true" >> "$GITHUB_OUTPUT"

- name: Fail if baselines changed
if: needs.check-paths.outputs.can_autocommit == 'true' && steps.commit-baselines-vscode.outputs.changed == 'true'
run: |
Expand Down
7 changes: 6 additions & 1 deletion packages/kilo-docs/pages/getting-started/settings/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,12 @@ For **session** export and import, use the CLI commands:
{% /tab %}
{% /tabs %}

## Sandbox

On macOS and Linux, the VS Code extension includes a dedicated **Sandboxing** settings tab. The sandbox is disabled by default. When enabled, it limits agent filesystem writes and can block outbound network access from model-originated tools. Windows users do not see these settings because Windows sandboxing is not supported.

See [Sandboxing](/docs/getting-started/settings/sandboxing) for setup instructions, the exact filesystem and network boundaries, and platform limitations.

## Experimental Features

{% tabs %}
Expand All @@ -175,7 +181,6 @@ Available experimental settings include:
- **Paste summary** - summarize large clipboard pastes before including them
- **Batch tool** - allow the agent to batch multiple tool calls in one step
- **OpenTelemetry** - enable Kilo telemetry and optional OTLP export when configured
- **Sandbox** - confine agent shell commands and file writes to the project and Kilo state directories, with optional outbound network blocking. See [Sandboxing](/docs/getting-started/settings/sandboxing).

Advanced options not exposed in the UI can be configured via the `experimental` key in `kilo.jsonc`:

Expand Down
Loading
Loading