Adom VS Code
UnreviewedVS Code Server control CLI + extension — open files, reveal in explorer, paste screenshots, context viewer, workspace modes. v1.0.5.
Adom VS Code
VS Code extension and CLI for controlling code-server from inside Adom Docker containers. AI agents (Claude Code) and scripts use this to open files, manage extensions, control the layout, and switch VS Code into different modes.
Pre-installed in all Adom containers. Runs an HTTP server on port 8821 and provides the adom-vscode CLI.
Quick Start
adom-vscode health # Check extension is running
adom-vscode open /path/to/file.png # Open file in VS Code tab
adom-vscode reveal /path/to/folder/ # Reveal in Explorer sidebar
adom-vscode preview /path/to/README.md # Markdown preview
adom-vscode claude new # New Claude Code chat
adom-vscode sidebar toggle # Toggle sidebar
adom-vscode panel toggle # Toggle bottom panel
adom-vscode terminal new # New terminal
adom-vscode activity-bar toggle # Toggle activity bar
adom-vscode extensions search "python" # Search extensions
adom-vscode extensions install ms-python.python # Install by ID
adom-vscode notify "Build complete" # Toast notification
adom-vscode reload # Reload VS Code window
adom-vscode command <any-vscode-command> # Generic escape hatch
adom-vscode --help # All commands
Modes
Modes take over VS Code's full screen for a focused experience. Use mode reset to return to normal.
adom-vscode mode claudecode # Claude Code panel UI
adom-vscode mode claudetty # Full-screen terminal + claude CLI
adom-vscode mode tty # Blank full-screen terminal
adom-vscode mode tty -c "echo hello" -n "Demo" # TTY with auto-command
adom-vscode mode reset # Exit any mode
URL Auto-Trigger
Add ?mode=X to any VS Code URL to auto-enter a mode on page load. Perfect for sharing onboarding links with new users.
| URL param | Mode |
|---|---|
?mode=claudecode |
Claude Code panel UI |
?mode=claudetty |
Full-screen terminal + claude CLI |
?mode=tty |
Blank full-screen terminal |
?mode=tty&cmd=echo%20hello |
TTY with auto-command |
Paste-Screenshot Interceptor
When you press Ctrl+V with an image on the clipboard while focused in a code-server terminal (e.g. running CLI Claude Code), the interceptor uploads the image to the extension at POST /paste-screenshot, which saves it to /tmp/shots/ (deduplicated via SHA-256) and writes the file path back to the terminal so the CLI can ingest it.
Without this, code-server's clipboard.readText() returns an empty string when the clipboard holds only an image, so the paste does nothing — useful workflows like screenshotting a UI bug and dropping it into the CLI for the AI to inspect would silently fail.
Activity Bar
Click the Adom icon in the VS Code activity bar to open a sidebar with:
- Overview — what the extension does
- Modes — Claude Code and TTY modes with quick-launch buttons
- Commands — all CLI commands with descriptions
- AI Prompts — sample prompts for Claude Code
How It Works
Claude Code / scripts
| runs CLI
adom-vscode open /foo/bar.png
| HTTP POST to localhost:8821
Adom VS Code Extension (inside code-server)
| vscode.* API
VS Code UI
The extension starts an HTTP server on localhost:8821 when VS Code activates. The companion CLI sends requests to this server. The extension translates them into native vscode.* API calls.
Reinstall
Already installed in all Adom containers. To reinstall after a code-server update:
adom-vscode install
Changes in v1.0.1
The legacy adom-vscode screenshot command was removed. It used an inline html2canvas bridge injected into workbench.html, but webview iframes and GPU content rendered as black rectangles, the bridge bloated the browser payload by ~50KB, and the injection occasionally corrupted on partial cleanups. For pixel-perfect captures, use av_tab_capture. Running adom-vscode install after upgrading also strips the legacy bridge from workbench.html automatically.