← Commit history
.gitignoreadded+9
@@ -0,0 +1,9 @@+extension/node_modules/+extension/out/+extension/*.vsix+cli/target/++# Prebuilt binary produced by build.sh, staged for `adompkg publish`.+# Not part of the source tree — checked into the Wiki page only.+bin/+*.tgz
ARCHITECTURE.mdadded+248
@@ -0,0 +1,248 @@+# adom-vscode — VS Code Extension + Rust CLI++## Context++Docker processes (shotlog, gallia, Claude Code) need to control VS Code (code-server) programmatically — open files, reveal folders, search/install extensions, start new Claude Code chats. The Hydrogen workspace API only controls the outer shell; VS Code is an iframe running code-server with its own API. A VS Code extension inside code-server exposes a local HTTP server, and a Rust CLI wraps those calls for the AI.++Source lives in its own repo `adom-inc/adom-vscode`. Pre-built binary + VSIX attached to GitHub Releases. `gallia/install.mjs` downloads them — no Rust toolchain needed on user containers.++## Architecture++```+Claude Code / scripts / shotlog+    ↓  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+```++## File Structure++**Repo**: `adom-inc/adom-vscode`+```+/home/adom/project/adom-vscode/+├── extension/+│   ├── package.json                   — Extension manifest+│   ├── src/extension.ts               — HTTP server + route handlers+│   ├── tsconfig.json                  — TS config (IDE only, esbuild compiles)+│   └── .vscodeignore                  — Exclude src/ from VSIX+├── cli/+│   ├── Cargo.toml                     — Rust CLI+│   └── src/main.rs                    — CLI entry (clap, raw HTTP client)+├── SKILL.md                           — Claude Code skill (CLI usage, endpoints, modes)+├── COMMANDS.md                        — Full VS Code + extension command reference+├── ARCHITECTURE.md                    — This plan file, saved permanently+├── README.md                          — Project overview, links to ARCHITECTURE.md+├── build.sh                           — Local build + install (dev only)+└── .gitignore+```++**Distribution** (GitHub Releases on adom-inc/adom-vscode):+- `adom-vscode` — single pre-built Linux x86_64 binary (embeds VSIX + SKILL.md via `include_bytes!`/`include_str!`)++**Gallia integration** — `install.mjs` downloads the one binary, then self-installs:+- `gh release download` → `/usr/local/bin/adom-vscode`+- `adom-vscode install-extension` (extracts embedded VSIX, installs into code-server)+- `adom-vscode skills install` (writes embedded SKILL.md to `~/.claude/skills/`)++## Extension (TypeScript)++### Port: 8821 (127.0.0.1 only)++### Endpoints++| Method | Path | Body | VS Code API |+|--------|------|------|-------------|+| GET | `/health` | — | — |+| POST | `/open` | `{"path":"..."}` | `showTextDocument(uri)` |+| POST | `/reveal` | `{"path":"..."}` | `executeCommand('revealInExplorer')` |+| POST | `/preview-markdown` | `{"path":"..."}` | `executeCommand('markdown.showPreview')` |+| POST | `/extensions/search` | `{"query":"..."}` | `executeCommand('workbench.extensions.search')` |+| POST | `/extensions/install` | `{"id":"..."}` | `executeCommand('workbench.extensions.installExtension')` |+| POST | `/claude/new` | `{}` | `executeCommand('claude-vscode.newConversation')` |+| POST | `/command` | `{"command":"...","args":[]}` | `executeCommand(cmd, ...args)` |+| POST | `/notify` | `{"message":"...","level":"info"}` | `showInformationMessage()` |+| POST | `/mode/claudecode` | `{}` | See below — enters Claude Code-only mode |+| POST | `/mode/reset` | `{}` | Restores default VS Code layout |++### Claude Code-only mode (`POST /mode/claudecode`)++Strips VS Code down to just a Claude Code chat. For onboarding new users.++The handler runs these VS Code commands in sequence:+1. `workbench.action.closeAllEditors` — clear all tabs+2. `workbench.action.closeSidebar` — hide file explorer+3. `workbench.action.closePanel` — hide terminal/bottom panel+4. `workbench.action.toggleActivityBarVisibility` — hide left icon strip (check if visible first via config)+5. `workbench.action.toggleStatusBarVisibility` — hide bottom status bar+6. `claude-vscode.editor.open` — open Claude Code in full-width editor tab++Result: clean full-screen AI chat, nothing else.++`POST /mode/reset` reverses it — shows activity bar, status bar, sidebar.++### URL-based auto-trigger (`?mode=claudecode`)++Code-server persists all URL query params to `~/.local/share/code-server/coder.json` under the `query` key. When a user visits `https://slug.adom.cloud/?mode=claudecode`, that file becomes:+```json+{ "query": { "folder": "...", "mode": "claudecode" } }+```++On extension activation, read that file and check `query.mode`:+```typescript+const coderSettings = JSON.parse(fs.readFileSync(+  path.join(os.homedir(), '.local/share/code-server/coder.json'), 'utf-8'+));+if (coderSettings.query?.mode === 'claudecode') {+  await enterClaudeCodeMode();+}+```++No temp files, no middleware, no proxy changes. Just the URL param and the extension.++### Key details++- `activationEvents: ["*"]` — starts with code-server+- Node.js `http` module (built into extension host), zero runtime deps+- CORS headers, EADDRINUSE retry, `context.subscriptions` cleanup+- On activate: read `~/.local/share/code-server/coder.json` for `query.mode` auto-trigger+- Build: `esbuild` bundles to single `out/extension.js` (~3KB)+- Package: `npx @vscode/vsce package --no-dependencies`++## Rust CLI++### Binary: `adom-vscode`++```+# File operations+adom-vscode open /path/to/file.png+adom-vscode reveal /path/to/folder/+adom-vscode preview /path/to/README.md++# Extensions+adom-vscode extensions search "python"+adom-vscode extensions install ms-python.python++# Claude Code+adom-vscode claude new++# UI modes+adom-vscode mode claudecode+adom-vscode mode reset++# Generic VS Code command (escape hatch)+adom-vscode command workbench.action.toggleSidebarVisibility+adom-vscode command workbench.action.reloadWindow++# Notifications+adom-vscode notify "Build complete!" --level info++# Skill management+adom-vscode skills install+adom-vscode skills list++# Extension management+adom-vscode install-extension          # writes embedded VSIX to /tmp, installs into code-server++# Health+adom-vscode health+```++### AI-oriented output++```+OK: Opened /home/adom/project/README.md in VS Code tab.+OK: Revealed /home/adom/project/src/ in VS Code Explorer sidebar.+OK: Opened new Claude Code conversation in VS Code.++ERROR: Cannot connect to adom-vscode extension on port 8821.+Hint: The extension may need a window reload. Install with: bash /home/adom/project/adom-vscode/build.sh+```++### Deps: `clap`, `serde_json` only. Raw TCP HTTP client (no reqwest).++## Gallia Integration++### install.mjs addition (~line 136, after adom-cli install)++```javascript+// ── Install adom-vscode (binary + extension from GitHub Releases) ─────+console.log('\n1e. Installing adom-vscode...');+{+  try {+    execSync(+      'gh release download --repo adom-inc/adom-vscode --pattern "adom-vscode" --output /usr/local/bin/adom-vscode --clobber',+      { stdio: 'ignore' }+    );+    execSync('sudo chmod +x /usr/local/bin/adom-vscode', { stdio: 'ignore' });+    console.log('   ✓ adom-vscode CLI installed');+  } catch { console.log('   ⚠ Could not download adom-vscode CLI'); }++  // Self-install extension + skill (both embedded in binary)+  try {+    execSync('adom-vscode install-extension', { stdio: 'ignore' });+    console.log('   ✓ adom-vscode extension installed');+  } catch { console.log('   ⚠ Could not install adom-vscode extension'); }+  try {+    execSync('adom-vscode skills install', { stdio: 'ignore' });+    console.log('   ✓ adom-vscode skills installed');+  } catch { console.log('   ⚠ Could not install adom-vscode skills'); }+}+```++### build.sh (dev only — for building locally before cutting a release)++1. `cd extension && npm install && npx esbuild ... && npx @vscode/vsce package`+2. Install VSIX into local code-server+3. `cd ../cli && cargo build --release && sudo cp target/release/adom-vscode /usr/local/bin/`++### Releasing++```bash+cd /home/adom/project/adom-vscode+bash build.sh+gh release create v0.1.0 \+  cli/target/release/adom-vscode \+  --repo adom-inc/adom-vscode \+  --title "v0.1.0" --notes "Initial release — single binary ships CLI + extension + skill"+```++## Implementation Steps++1. Create `extension/` — package.json, tsconfig.json, .vscodeignore, src/extension.ts+2. Build + package VSIX, install into code-server+3. Reload VS Code window, verify `curl http://127.0.0.1:8821/health`+4. Test each endpoint with curl+5. Create `cli/` — Cargo.toml, src/main.rs+6. Build CLI, install to /usr/local/bin/+7. Test: `adom-vscode health`, `adom-vscode open /path/to/file`+8. Write SKILL.md + build.sh+9. Add install.mjs hook+10. Add row to main adom SKILL.md capabilities table+11. Update shotlog filepath links to use `adom-vscode open` instead of code-server CLI directly++## Verification++```bash+curl http://127.0.0.1:8821/health+adom-vscode open /home/adom/project/shotlog/data/test/shot-2026-03-28T13-43-30.png+adom-vscode reveal /home/adom/project/shotlog/data/test/+adom-vscode claude new+adom-vscode extensions search "python"+adom-vscode notify "Hello from adom-vscode!"+```++## Critical Files++| File | Purpose |+|------|---------|+| `/home/adom/project/adom-vscode/extension/src/extension.ts` | HTTP server + VS Code API handlers |+| `/home/adom/project/adom-vscode/extension/package.json` | Extension manifest |+| `/home/adom/project/adom-vscode/cli/src/main.rs` | Rust CLI |+| `/home/adom/project/adom-vscode/SKILL.md` | Claude Code skill (embedded in binary) |+| `/home/adom/project/adom-vscode/ARCHITECTURE.md` | This plan file |+| `/home/adom/project/adom-vscode/README.md` | Project overview |+| `/home/adom/project/adom-vscode/build.sh` | Build + install script |+| `/home/adom/gallia/install.mjs` | Add download hook (~line 136) |
COMMANDS.mdadded+99
@@ -0,0 +1,99 @@+# VS Code Command Reference++Full reference of useful VS Code commands that work with `adom-vscode command <id>`.++## Layout & UI++| Command | What it does | Show/Hide |+|---------|-------------|-----------|+| `workbench.action.toggleSidebarVisibility` | Toggle primary sidebar (left) | toggle |+| `workbench.action.focusSideBar` | Show + focus primary sidebar | show |+| `workbench.action.closeSidebar` | Hide primary sidebar | hide |+| `workbench.action.toggleAuxiliaryBar` | Toggle secondary sidebar (right) | toggle |+| `workbench.action.focusAuxiliaryBar` | Show + focus secondary sidebar | show |+| `workbench.action.closeAuxiliaryBar` | Hide secondary sidebar | hide |+| `workbench.action.togglePanel` | Toggle bottom panel | toggle |+| `workbench.action.focusPanel` | Show + focus bottom panel | show |+| `workbench.action.closePanel` | Hide bottom panel | hide |+| `workbench.action.toggleActivityBarVisibility` | Toggle activity bar (left icon strip) | toggle |++## Terminal++| Command | What it does |+|---------|-------------|+| `workbench.action.terminal.toggleTerminal` | Toggle terminal |+| `workbench.action.terminal.new` | New terminal |+| `workbench.action.terminal.focus` | Focus terminal (shows it) |+| `workbench.action.terminal.clear` | Clear terminal |+| `workbench.action.terminal.kill` | Kill active terminal |++## Editors & Tabs++| Command | What it does |+|---------|-------------|+| `workbench.action.closeAllEditors` | Close all tabs |+| `workbench.action.closeActiveEditor` | Close current tab |+| `workbench.action.showAllEditors` | Show all open tabs picker |+| `workbench.action.quickOpen` | Quick file picker (Ctrl+P) |+| `workbench.action.files.newUntitledFile` | New untitled file |+| `editor.action.formatDocument` | Format current file |++## Settings & Config++| Command | What it does |+|---------|-------------|+| `workbench.action.openSettings` | Open Settings UI |+| `workbench.action.openSettingsJson` | Open settings.json |+| `workbench.action.openGlobalKeybindings` | Open keyboard shortcuts |+| `workbench.action.reloadWindow` | Reload VS Code window |++## Claude Code++| Command | What it does |+|---------|-------------|+| `claude-vscode.newConversation` | New Claude Code chat |+| `claude-vscode.editor.open` | Open Claude Code in new tab |+| `claude-vscode.editor.openLast` | Open last conversation |+| `claude-vscode.sidebar.open` | Open Claude Code in sidebar |+| `claude-vscode.terminal.open` | Open Claude Code in terminal |+| `claude-vscode.focus` | Focus Claude Code input |+| `claude-vscode.blur` | Blur Claude Code input |+| `claude-vscode.showLogs` | Show Claude Code logs |+| `claude-vscode.update` | Update Claude Code extension |++## MicroPico (Raspberry Pi Pico)++| Command | What it does |+|---------|-------------|+| `micropico.connect` | Connect to Pico |+| `micropico.disconnect` | Disconnect |+| `micropico.upload` | Upload project to Pico |+| `micropico.run` | Run current file on Pico |+| `micropico.remote.run` | Run current file on Pico (remote) |+| `micropico.universalStop` | Stop execution |+| `micropico.reset.hard` | Hard reset Pico |+| `micropico.reset.soft` | Soft reset Pico |+| `micropico.extra.getSerial` | List serial ports |+| `micropico.extra.pins` | Show Pico pin map |+| `micropico.downloadFile` | Download file from Pico |+| `micropico.uploadFile` | Upload file to Pico |+| `micropico.deleteAllFiles` | Delete all files from board |+| `micropico.flashPico` | Flash Pico in BOOTSEL mode |++## Code Runner++| Command | What it does |+|---------|-------------|+| `code-runner.run` | Run current file |+| `code-runner.runByLanguage` | Run by language |+| `code-runner.stop` | Stop running code |++## Python++| Command | What it does |+|---------|-------------|+| `python.execInTerminal` | Run Python file in terminal |+| `python.execSelectionInTerminal` | Run selection in terminal |+| `python.createTerminal` | Create Python terminal |+| `python.setInterpreter` | Select Python interpreter |+| `python.configureTests` | Configure test framework |
LICENSEadded+31
@@ -0,0 +1,31 @@+Adom Proprietary License++Copyright (c) 2026 Adom Industries, Inc. All rights reserved.++This software (the "Software"), including the prebuilt binary distributed as+part of this package, is the proprietary property of Adom Industries, Inc.++Permitted use+- You may install and run the Software inside an Adom Docker container or+  any other environment provided by Adom Industries, Inc., for the purpose+  of using Adom products and services.++Restricted use+- You may not copy, modify, reverse-engineer, decompile, disassemble, or+  attempt to derive the source code of the Software.+- You may not redistribute, sublicense, sell, lease, or otherwise transfer+  the Software to any third party.+- The accompanying source code, where any is referenced, is not licensed+  for public use, modification, or redistribution and remains the+  confidential property of Adom Industries, Inc.++Disclaimer+The Software is provided "AS IS", without warranty of any kind, express or+implied, including but not limited to the warranties of merchantability,+fitness for a particular purpose, and noninfringement. In no event shall+Adom Industries, Inc. be liable for any claim, damages, or other liability,+whether in an action of contract, tort, or otherwise, arising from, out of,+or in connection with the Software or its use.++Contact+For licensing inquiries, contact [email protected].
SKILL.mdadded+145
@@ -0,0 +1,145 @@+---+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, search/install extensions, 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, search extensions, claude new chat, vscode command, vscode mode, vscode notify."+---++# adom-vscode — VS Code Control++> **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`+> controls puppeteer / Chrome browser windows, not VS Code.+>+> **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.+>+> If the user mentions "vscode", "explorer", or wants to see a+> file in the editor, default to `adom-vscode`. Save+> `adom-desktop` for cases where the trigger is clearly Chrome /+> browser / pup / shotlog tab.++## 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+paths inside that folder.** Anything outside it is invisible to the+Explorer sidebar and to most workspace-aware commands.++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 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+  artifact relates to (e.g. `chip-fetcher/library/<MPN>/<MPN>-thumb.png`).+- `/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.++**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"+or "your link doesn't do anything" or "show me the folder," the cause+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+absolute paths under `/home/adom/project/...` always click through;+relative paths must be relative to that root.++## File operations++CLI + VS Code extension for controlling code-server from Docker processes. The extension runs an HTTP server on port 8821; the CLI wraps those calls with AI-oriented colored output.++Binary: `/usr/local/bin/adom-vscode`+Extension port: **8821** (127.0.0.1 only)++## File operations+```bash+adom-vscode open /path/to/file.png       # Open any file in VS Code tab+adom-vscode reveal /path/to/folder/      # Reveal in Explorer sidebar+adom-vscode preview /path/to/README.md   # Markdown preview+```++## Layout+```bash+adom-vscode sidebar show                 # Guaranteed show+adom-vscode sidebar hide                 # Guaranteed hide+adom-vscode sidebar toggle               # Flip current state+adom-vscode panel show|hide|toggle       # Bottom panel+adom-vscode terminal show|hide|toggle|new  # Terminal+adom-vscode activity-bar show|hide|toggle  # Left icon strip+```++## Extensions+```bash+adom-vscode extensions search "python"           # Open Extensions sidebar with search+adom-vscode extensions install ms-python.python   # Install by ID+```++## Claude Code+```bash+adom-vscode claude new                   # New Claude Code conversation+```++## Modes+Full-screen focused experiences. Use `mode reset` to exit.+```bash+adom-vscode mode claudecode              # Claude Code panel UI (graphical chat)+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, restore default layout+```++## Generic command (escape hatch)+```bash+adom-vscode command workbench.action.reloadWindow+adom-vscode command workbench.action.toggleSidebarVisibility+```+For the full VS Code command reference, read `COMMANDS.md` in the adom-vscode repo.++## Notifications+```bash+adom-vscode notify "Build complete" --level info+adom-vscode notify "Check this" --level warning+adom-vscode notify "Failed" --level error+```++## Management+```bash+adom-vscode health              # Check extension is running (shows version + port)+adom-vscode install             # Install everything: extension, skill, completions+adom-vscode reload              # Reload VS Code window (warning: kills active Claude Code sessions)+```++## 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++## Output format+- Success: `OK: <what happened>` (green)+- Failure: `ERROR: <what went wrong>` (red) + `Hint: <next action>` (dim)++## If extension not running+```bash+adom-vscode install+adom-vscode reload+```
VERSIONadded+1
@@ -0,0 +1 @@+1.0.12
install.shadded+35
@@ -0,0 +1,35 @@+#!/usr/bin/env bash+# adompkg install script for adom-vscode.+#+# Drops the binary into ~/.local/bin (matches every other adompkg CLI —+# adom-google, adom-mouser, adom-tts, the parts CLIs — so no `--allow-sudo`+# needed). Then runs `adom-vscode install` to register the VS Code extension+# with code-server, fetch SKILL.md, install bash completions, and patch the+# paste-screenshot interceptor into workbench.html.+#+# The workbench.html patch is the only step that touches a root-owned path;+# it's idempotent (re-runs return "Browser scripts already up to date") so+# daemon-managed updates after the initial bake are pure user-space refreshes.++set -euo pipefail++HERE="$(cd "$(dirname "$0")" && pwd)"+BIN_SRC="$HERE/bin/adom-vscode"+BIN_DST="${HOME}/.local/bin/adom-vscode"++if [ ! -f "$BIN_SRC" ]; then+  echo "ERROR: $BIN_SRC missing from package payload" >&2+  exit 1+fi++mkdir -p "$(dirname "$BIN_DST")"+install -m 0755 "$BIN_SRC" "$BIN_DST"+echo "Installed adom-vscode -> $BIN_DST"++# Sanity check $PATH so users actually pick up the new binary.+case ":${PATH}:" in+  *":${HOME}/.local/bin:"*) ;;+  *) echo "Note: $HOME/.local/bin is not on PATH. Add: export PATH=\"\$HOME/.local/bin:\$PATH\"" ;;+esac++"$BIN_DST" install
package.jsonadded+32
@@ -0,0 +1,32 @@+{+  "slug": "adom-vscode",+  "version": "4.0.8",+  "type": "app",+  "description": "CLI + VS Code extension that lets AI assistants drive VS Code from inside an Adom Docker container \u2014 open files, switch modes, paste screenshots, and run any VS Code command via a local HTTP API on port 8821.",+  "license": "PROPRIETARY",+  "tags": [+    "cli",+    "vscode",+    "code-server",+    "ide",+    "claude",+    "automation",+    "docker"+  ],+  "dependencies": {},+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "needs_sudo": false,+  "visibility": "public",+  "files": [+    "README.md",+    "SKILL.md",+    "LICENSE",+    "install.sh",+    "uninstall.sh",+    "bin/**",+    "screenshots/**"+  ]+}\ No newline at end of file
page.json+65−8
@@ -3,14 +3,71 @@   "type": "app",   "slug": "adom-vscode",   "title": "adom-vscode",-  "brief": "CLI + VS Code extension that lets AI assistants drive VS Code from inside an Adom Docker container — open files, switch modes, paste screenshots, and run any VS Code command via a local HTTP API on po",-  "version": "4.0.8",-  "author": {-    "id": "6738b00a4dc87b8adbb0a5a3",-    "name": "John Lauer",-    "email": "[email protected]"-  },+  "brief": "Drive VS Code from your AI \u2014 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": "1.0.6",+  "license": "PROPRIETARY",   "visibility": {     "public": true-  }+  },+  "hero": {+    "type": "image",+    "path": "screenshots/hero.png",+    "thumbnail": "screenshots/hero.png"+  },+  "tags": [+    "cli",+    "vscode",+    "code-server",+    "ide",+    "ai",+    "claude",+    "codex",+    "automation",+    "docker"+  ],+  "discovery_triggers": [+    "adom-vscode",+    "vscode extension",+    "open file in vscode",+    "reveal in explorer",+    "vscode file explorer",+    "claude mode",+    "vscode mode",+    "claudetty",+    "claudecode mode",+    "terminal mode",+    "vscode tty",+    "vscode sidebar",+    "control vscode",+    "vscode layout",+    "toggle sidebar",+    "toggle panel",+    "vscode activity bar",+    "paste screenshot in terminal",+    "ctrl+v image",+    "code-server",+    "claude context viewer",+    "ai context viewer"+  ],+  "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 \u2014 open files, switch modes, paste screenshots, view live AI session stats, and run any VS Code command.",+  "sample_prompts": [+    {+      "prompt": "open my markdown in vscode"+    },+    {+      "prompt": "reveal /home/adom/project/ne555-timer in VS Code Explorer"+    },+    {+      "prompt": "switch VS Code to Claude Code mode"+    },+    {+      "prompt": "preview the README"+    },+    {+      "prompt": "toggle the VS Code sidebar"+    },+    {+      "prompt": "open a new Claude Code conversation in VS Code"+    }+  ] }\ No newline at end of file
uninstall.shadded+25
@@ -0,0 +1,25 @@+#!/usr/bin/env bash+# adompkg uninstall script for adom-vscode.++set -euo pipefail++USER_BIN="${HOME}/.local/bin/adom-vscode"+LEGACY_BIN="/usr/local/bin/adom-vscode"++if [ -f "$USER_BIN" ]; then+  rm -f "$USER_BIN"+  echo "Removed $USER_BIN"+fi++if [ -f "$LEGACY_BIN" ]; then+  # The pre-needs_sudo:false versions of adom-vscode installed into+  # /usr/local/bin. Clean that up too (best-effort; sudo may not be+  # available in daemon contexts — that's fine, the user-local copy+  # is gone so the daemon won't manage it anymore).+  if command -v sudo >/dev/null 2>&1; then+    sudo rm -f "$LEGACY_BIN" 2>/dev/null || true+  fi+fi++COMP="${HOME}/.local/share/bash-completion/completions/adom-vscode"+[ -f "$COMP" ] && rm -f "$COMP"