Skip to content

feat(kits): add experimental vscode mixin using --display - #215

Draft
djs55 wants to merge 2 commits into
docker:mainfrom
djs55:feat/vscode-mixin
Draft

feat(kits): add experimental vscode mixin using --display#215
djs55 wants to merge 2 commits into
docker:mainfrom
djs55:feat/vscode-mixin

Conversation

@djs55

@djs55 djs55 commented Aug 19, 2026

Copy link
Copy Markdown

Summary

Add kit which runs VS Code inside the sandbox and forwards the display to the host using the --display experimental option.

Spec choices worth flagging for review

My first kit, so it's hard to tell!

Origin

It's a simple wrapper of Linux VS Code. Previously VS Code always ran on the host and could connect into the sandbox. This kit colocates VS Code in the sandbox.

Test plan

For manual testing with sbx 0.39:

sbx settings set platform.allowExperimentalFeatures true
sbx settings set feature.sandbox-display true
sbx settings set kit.allowedSources '["docker.io/","github.com/djs55/"]'

sbx run claude \
    --display \
    --kit "git+https://github.com/djs55/sbx-kits-contrib.git#ref=1db5bff055d16d2fa23dc69576b3c736acde611b&dir=vscode" \
    ~/my-project

CI runs kit validate and the TCK on every PR. CI does not run e2e on
fork PRs (Docker Hub secrets aren't exposed there), so the e2e step below is
required from your side before requesting review.

  • sbx kit validate ./<kit>/ passes
  • ./scripts/test-kit.sh <kit> passes (the TCK)
  • ./scripts/test-kit-e2e.sh <kit> passes. The script applies the same
    deny-all baseline CI uses and scopes everything to its own daemon
    (--app-name sbx-kits-contrib-tck), so my main sbx state is untouched.
    Every entry I added to network.allowedDomains came from
    sbx --app-name sbx-kits-contrib-tck policy log <tck-e2e-…>, not a guess.
  • Manual smoke: sbx run --kit ./<kit>/ <agent> and verified the kit's
    binary / files / env are inside the running container.

One-time setup if you haven't run e2e on this machine before:
sbx --app-name sbx-kits-contrib-tck login.

See CONTRIBUTING.md → Verifying locally
and README → Declare every domain your kit needs
for the cross-arch domain gotchas (archive.ubuntu.com,
security.ubuntu.com, ports.ubuntu.com) and the package-manager refresh trap.

Installs VS Code from Microsoft's apt repo and starts it as a Wayland
client on the host compositor, opening the sandbox workspace. Requires
--display (behind feature.sandbox-display). Includes a README with
prerequisites and agentInstructions so the running agent knows the
editor is open.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: David Scott <dave@recoil.org>
@djs55
djs55 force-pushed the feat/vscode-mixin branch from 2eb6671 to 72a784e Compare August 19, 2026 13:35
Signed-off-by: David Scott <dave@recoil.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant