app
adom-vscode
Public Made by Adomby adom
Let Claude, Codex and Kimi drive VS Code inside your Adom container
← Commit history
4.1.1: de-em-dash docs, refresh page.json discovery metadata for the new verb surface
4 files changed
+86−56
README.md+12−12@@ -2,15 +2,15 @@ A CLI + VS Code extension that lets AI assistants and the Hydrogen Desktop / Hydrogen Web frontend drive VS Code from inside an Adom Docker container: open files, change settings live, run container commands, pass events to the frontend, switch modes, paste screenshots, and run any VS Code command via a local HTTP API on port 8821. -## The Adom panel — your AI's cockpit inside VS Code+## The Adom panel, your AI's cockpit inside VS Code -Click the Adom icon in the activity bar to open a side panel with the Overview, Modes, Commands, AI Prompts, Settings & Theme, Exec & Queue, Container & Keys, Extensions, and the live **Claude Context** viewer — every active Claude Code session in the container with token cost and last activity at a glance.+Click the Adom icon in the activity bar to open a side panel with the Overview, Modes, Commands, AI Prompts, Settings & Theme, Exec & Queue, Container & Keys, Extensions, and the live **Claude Context** viewer, every active Claude Code session in the container with token cost and last activity at a glance. -+ ## The Extension: About page -Installed in every Adom container. Open the Extensions sidebar and search for `adom-vscode` — the details pane renders the full quick-start guide, mode reference, and version metadata.+Installed in every Adom container. Open the Extensions sidebar and search for `adom-vscode`: the details pane renders the full quick-start guide, mode reference, and version metadata.  @@ -20,23 +20,23 @@ Installed in every Adom container. Open the Extensions sidebar and search for `a - **Reveal** files/folders in the Explorer sidebar - **Preview** Markdown files in rendered view - **Settings, live**: get/set any VS Code setting, theme, fonts, font sizes. Changes apply immediately via the native VS Code API (no reload, active AI sessions survive)-- **Exec**: run shell commands in the container as the workspace user, streamed (SSE) or buffered — no host-side `wsl.exe` needed+- **Exec**: run shell commands in the container as the workspace user, streamed (SSE) or buffered, no host-side `wsl.exe` needed - **Event queue**: any container process pushes events; the HD/HW frontend pulls them when it wants (login-refresh needed, long-job progress, anything) - **Container identity**: query whether this is an `hd` (local Hydrogen Desktop) or `hw` (Adom cloud) container, OS, kernel, key env vars - **API key**: check the health of `/var/run/adom/api-key` and inject a fresh key after a frontend login refresh - **Extensions**: list installed extensions (with Claude/Codex/Kimi summary), query version + running state + pending update, update one or all, search, install - **Start** new Claude Code conversations-- **Modes** — switch VS Code into different full-screen experiences:- - `claudecode` — Claude Code panel UI (graphical AI chat)- - `claudetty` — full-screen terminal running the claude CLI- - `tty` — generic full-screen terminal with optional auto-command-- **Control layout** — sidebar, panel, terminal, activity bar (show/hide/toggle)+- **Modes**: switch VS Code into different full-screen experiences:+ - `claudecode`: Claude Code panel UI (graphical AI chat)+ - `claudetty`: full-screen terminal running the claude CLI+ - `tty`: generic full-screen terminal with optional auto-command+- **Control layout**: sidebar, panel, terminal, activity bar (show/hide/toggle) - **Run** any VS Code command (generic escape hatch)-- **Paste image into terminal** — Ctrl+V an image while focused in a code-server terminal uploads to `/tmp/shots/` and pastes the file path (so the CLI Claude Code can ingest it)+- **Paste image into terminal**: Ctrl+V an image while focused in a code-server terminal uploads to `/tmp/shots/` and pastes the file path (so the CLI Claude Code can ingest it) ## Already installed -Adom VS Code ships with every Adom container — you have it on day one. Try it now: ask Claude in any terminal:+Adom VS Code ships with every Adom container, you have it on day one. Try it now: ask Claude in any terminal: > *"open `ne555-timer.kicad_sch`"* · *"set my editor font size to 14"* · *"switch to Claude Code mode"* · *"is my api key still good?"*
SKILL.md+16−16@@ -1,21 +1,21 @@ --- name: adom-vscode-description: "Control VS Code Server (code-server) from inside the Docker container. THIS is the wrapper for the VS Code FILE EXPLORER sidebar, editor tabs, markdown preview, etc. — when the user says 'reveal in file explorer' or 'open in vscode' they mean this CLI, NOT adom-desktop (which controls Chrome browser windows). Open files, reveal in Explorer sidebar, preview markdown, get/set any VS Code setting LIVE (config, theme, fonts, font sizes — no reload), run container shell commands (exec, streamed), push/pull events on the HD frontend queue, query container identity (hd vs hw), check/inject the Adom api key, list/query/update extensions (incl. Claude/Codex/Kimi), start Claude Code chats, switch UI modes (claudecode, claudetty, tty), show notifications, run any VS Code command. Trigger words: adom-vscode, open in vscode, reveal in explorer, file explorer, sidebar reveal, preview markdown, install extension, update extension, extension version, search extensions, claude new chat, vscode command, vscode mode, vscode notify, vscode setting, change theme, set font, font size, chat font, exec in container, event queue, queue push, queue pull, container type, hd or hw, api key status, refresh api key, port 8821."+description: "Control VS Code Server (code-server) from inside the Docker container. THIS is the wrapper for the VS Code FILE EXPLORER sidebar, editor tabs, markdown preview, etc., when the user says 'reveal in file explorer' or 'open in vscode' they mean this CLI, NOT adom-desktop (which controls Chrome browser windows). Open files, reveal in Explorer sidebar, preview markdown, get/set any VS Code setting LIVE (config, theme, fonts, font sizes, no reload), run container shell commands (exec, streamed), push/pull events on the HD frontend queue, query container identity (hd vs hw), check/inject the Adom api key, list/query/update extensions (incl. Claude/Codex/Kimi), start Claude Code chats, switch UI modes (claudecode, claudetty, tty), show notifications, run any VS Code command. Trigger words: adom-vscode, open in vscode, reveal in explorer, file explorer, sidebar reveal, preview markdown, install extension, update extension, extension version, search extensions, claude new chat, vscode command, vscode mode, vscode notify, vscode setting, change theme, set font, font size, chat font, exec in container, event queue, queue push, queue pull, container type, hd or hw, api key status, refresh api key, port 8821." --- -# adom-vscode — VS Code Control+# adom-vscode, VS Code Control -> **Disambiguation — read first.** When the user says "open in+> **Disambiguation, read first.** When the user says "open in > file explorer" / "reveal" / "show me where this file is" / > "click to open in vscode" they almost always mean the > **VS Code Server's sidebar Explorer** (the panel inside this > Docker container's running VS Code instance). That's THIS > CLI: `adom-vscode reveal <path>`. >-> **Do NOT** reach for `adom-desktop` for that — `adom-desktop`+> **Do NOT** reach for `adom-desktop` for that, `adom-desktop` > controls puppeteer / Chrome browser windows, not VS Code. >-> **Do NOT** use the desktop `code` CLI either — it is not on+> **Do NOT** use the desktop `code` CLI either, it is not on > PATH in code-server containers (`which code` returns nothing). > The wrapper that talks to the running code-server's REST API > on port 8821 is this binary.@@ -28,7 +28,7 @@ description: "Control VS Code Server (code-server) from inside the Docker contai ## CRITICAL: workspace scope is `/home/adom/project` The Hydrogen panel boots code-server with `?folder=/home/adom/project`.-That is the workspace root — **VS Code can only see and operate on+That is the workspace root, **VS Code can only see and operate on paths inside that folder.** Anything outside it is invisible to the Explorer sidebar and to most workspace-aware commands. @@ -36,19 +36,19 @@ Concrete consequences when generating files for the user to review: | Action | Outside `/home/adom/project` | Inside it | |-------------------------------------|------------------------------|-----------|-| `adom-vscode open <file>` | Opens a loose tab (no Explorer link); the CLI returns `OK` because `vscode.open` accepts any path, but the user can't navigate to it | Works fully — tab opens AND the Explorer entry is highlightable |-| `adom-vscode reveal <path>` | Silently no-op; the extension's `revealInExplorer` accepts the call but the workspace doesn't contain the path so nothing visible happens. The CLI still returns `OK`. | Works — sidebar scrolls and selects the entry |+| `adom-vscode open <file>` | Opens a loose tab (no Explorer link); the CLI returns `OK` because `vscode.open` accepts any path, but the user can't navigate to it | Works fully, tab opens AND the Explorer entry is highlightable |+| `adom-vscode reveal <path>` | Silently no-op; the extension's `revealInExplorer` accepts the call but the workspace doesn't contain the path so nothing visible happens. The CLI still returns `OK`. | Works, sidebar scrolls and selects the entry | | `adom-vscode preview <file.md>` | Loose preview tab with no nav back to the source | Full preview + Explorer integration | **Rule for AI-generated artifacts (thumbnails, dumps, smoke outputs, intermediate files the user is going to look at):** put them inside `/home/adom/project/...`, not in `/tmp/...`. A few good homes: -- `/home/adom/project/<tool>/...` — colocated with the tool the+- `/home/adom/project/<tool>/...`: colocated with the tool the artifact relates to (e.g. `chip-fetcher/library/<MPN>/<MPN>-thumb.png`).-- `/home/adom/project/.smoke/<task>/` — temporary smoke outputs the+- `/home/adom/project/.smoke/<task>/`: temporary smoke outputs the user is reviewing; `.smoke/` is gitignored at the repo root.-- `/home/adom/project/.scratch/` — quick throwaway exploration files.+- `/home/adom/project/.scratch/`: quick throwaway exploration files. **Symptom to watch for:** if you call `adom-vscode reveal /tmp/...` or `adom-vscode open /tmp/foo.png` and the user reports "I can't see it"@@ -57,7 +57,7 @@ is almost always workspace scoping. Move the artifact under `/home/adom/project/`, then re-issue the reveal. This applies equally to relative-path Markdown links surfaced in chat-(`[label](path)`) — those resolve relative to the workspace root, so+(`[label](path)`), those resolve relative to the workspace root, so absolute paths under `/home/adom/project/...` always click through; relative paths must be relative to that root. @@ -179,10 +179,10 @@ adom-vscode reload # Reload VS Code window (warning: kills active C ## URL auto-trigger Add `?mode=X` to the VS Code URL to auto-enter a mode on page load:-- `?mode=claudecode` — Claude Code panel UI-- `?mode=claudetty` — terminal + claude CLI-- `?mode=tty` — blank terminal-- `?mode=tty&cmd=COMMAND` — terminal with auto-command+- `?mode=claudecode`: Claude Code panel UI+- `?mode=claudetty`: terminal + claude CLI+- `?mode=tty`: blank terminal+- `?mode=tty&cmd=COMMAND`: terminal with auto-command ## Output format - Success: `OK: <what happened>` (green)
package.json+1−1@@ -1,6 +1,6 @@ { "slug": "adom-vscode",- "version": "4.1.0",+ "version": "4.1.1", "type": "app", "description": "CLI + VS Code extension that lets AI assistants and the Hydrogen Desktop frontend drive VS Code from inside an Adom container: open files, live get/set of any setting/theme/font (no reload), native streamed exec, a frontend event queue, container identity (hd/hw), api-key status/inject, extension query/update, modes, paste screenshots, and any VS Code command via a local HTTP API on port 8821 (with port-file fallback discovery).", "license": "PROPRIETARY",
page.json+57−27@@ -3,8 +3,8 @@ "type": "app", "slug": "adom-vscode", "title": "adom-vscode",- "brief": "Drive VS Code from your AI — a CLI + extension that lets Claude Code, Codex, and any other process open files, switch modes, paste screenshots, view live AI session stats, and run any VS Code command via a local HTTP API. Pre-installed in every Adom container.",- "version": "4.1.0",+ "brief": "Drive VS Code from your AI: a CLI + extension that lets Claude Code, Codex, Kimi, and the Hydrogen Desktop frontend open files, change settings/theme/fonts LIVE (no reload), run streamed container commands, pass events on a frontend queue, check container identity and the Adom api key, query/update extensions, and run any VS Code command via a local HTTP API. Pre-installed in every Adom container.",+ "version": "4.1.1", "license": "PROPRIETARY", "visibility": "public", "hero": {@@ -13,43 +13,58 @@ "thumbnail": "screenshots/hero.png" }, "tags": [- "automation",- "claude", "cli",+ "vscode", "code-server",- "docker",- "exec",- "hydrogen-desktop", "ide",- "queue",- "settings",- "vscode"+ "claude",+ "automation",+ "docker" ], "discovery_triggers": [ "adom-vscode",- "vscode extension",- "open file in vscode",- "reveal in explorer",- "vscode file explorer",+ "ai context viewer",+ "api key status",+ "change vscode theme",+ "chat font",+ "claude context viewer", "claude mode",- "vscode mode",- "claudetty", "claudecode mode",- "terminal mode",- "vscode tty",- "vscode sidebar",+ "claudetty",+ "code-server",+ "container type", "control vscode",- "vscode layout",- "toggle sidebar",+ "ctrl+v image",+ "event queue",+ "exec in container",+ "extension version",+ "hd or hw",+ "is claude installed",+ "open file in vscode",+ "paste screenshot in terminal",+ "port 8821",+ "queue pull",+ "queue push",+ "refresh api key",+ "reveal in explorer",+ "set vscode font",+ "stream exec",+ "terminal mode", "toggle panel",+ "toggle sidebar",+ "update extension", "vscode activity bar",- "paste screenshot in terminal",- "ctrl+v image",- "code-server",- "claude context viewer",- "ai context viewer"+ "vscode extension",+ "vscode file explorer",+ "vscode font size",+ "vscode layout",+ "vscode mode",+ "vscode port",+ "vscode settings live",+ "vscode sidebar",+ "vscode tty" ],- "discovery_pitch": "adom-vscode is a CLI + extension that lets AI assistants (Claude Code, Codex, any other process) drive VS Code from inside an Adom Docker container — open files, switch modes, paste screenshots, view live AI session stats, and run any VS Code command.",+ "discovery_pitch": "adom-vscode is the in-container control surface for VS Code: AI assistants and the HD/HW frontend use it to open files, apply settings/theme/font changes live without a reload, run shell commands natively (no wsl.exe), push/pull frontend events, check hd/hw container identity and api-key health, and query or update extensions.", "sample_prompts": [ { "prompt": "open my markdown in vscode"@@ -68,6 +83,21 @@ }, { "prompt": "open a new Claude Code conversation in VS Code"+ },+ {+ "prompt": "set my editor font size to 14"+ },+ {+ "prompt": "switch my VS Code theme to Adom Dark without reloading"+ },+ {+ "prompt": "is the container api key still good?"+ },+ {+ "prompt": "what version of the Claude Code extension is running, and is an update available?"+ },+ {+ "prompt": "push a login-refresh event to the HD frontend queue" } ], "description": "CLI + VS Code extension that lets AI assistants and the Hydrogen Desktop frontend drive VS Code from inside an Adom container: open files, live get/set of any setting/theme/font (no reload), native streamed exec, a frontend event queue, container identity (hd/hw), api-key status/inject, extension query/update, modes, paste screenshots, and any VS Code command via a local HTTP API on port 8821 (with port-file fallback discovery).",