main
Kyle Bergstedt Publish 1.1.113 2bde675 4d ago

Parent skill: adom-vscode

adom-vscode-extensions, query and update extensions

List and query

adom-vscode extensions list                    # non-builtin extensions + the AI summary
adom-vscode extensions list --all              # include VS Code builtins
adom-vscode extensions status anthropic.claude-code            # version + active state
adom-vscode extensions status anthropic.claude-code --latest   # + gallery check
  • list returns {count, ai, extensions}. Each entry: {id, displayName, version, active, builtin, path}. active is whether the extension host has activated it (running), not merely installed.
  • The ai object maps the AI assistants directly, null when absent: claude anthropic.claude-code, codex openai.chatgpt, kimi moonshot-ai.kimi-code, antigravity google.google-antigravity. GET /ai/providers is the authoritative list (it also reports each provider's command, surfaces and CLI).
  • --latest queries the Open VSX gallery (code-server's registry) and returns latestVersion + updateAvailable. Best-effort with a 3s cap: latestVersion: null means the gallery was unreachable or the extension is not published there, NOT that it is current.

HTTP: GET /extensions, GET /extensions?all=1, GET /extensions?id=<id>&latest=1.

Update

adom-vscode extensions update anthropic.claude-code   # one extension
adom-vscode extensions update                         # all extensions

Updates download in the background; the NEW version only activates on a window reload. So the honest report to a user is "update requested, activates on reload", and extensions status <id> keeps showing the running (old) version until then. Warn before reloading: adom-vscode reload kills active Claude Code sessions.

HTTP: POST /extensions/update {id?} (omit id for all).

Search and install

adom-vscode extensions search "python"            # opens the Extensions sidebar with the query
adom-vscode extensions install ms-python.python   # install by marketplace id

HTTP: POST /extensions/search {query}, POST /extensions/install {id}.

AI buttons in the editor title bar (macOS line)

The macOS line of adom-vscode ships NO title-bar script: the AI buttons next to VS Code's layout controls come from Hydrogen's own agent-bar extension (one button per signed-in agent), and which buttons and activity-bar icons show at all is Hydrogen's editor chrome policy (GET/POST /agents/chrome on the Hydrogen control port; the AI accounts popup's "Editor buttons & sidebar" section edits it). adom-vscode contributes nothing to those two surfaces and has no icon settings. Upstream adom-vscode (John's Windows line) still draws its own title bar via browser/ai-titlebar.js; the macOS installer strips that block if an upstream install left one behind.

For callers:

adom-vscode ai providers                       # installed? command? icon shown?
adom-vscode ai new '{"type":"codex"}'           # a Codex thread in the active group
adom-vscode ai new '{"type":"claude","group":2}' # in editor group 2 (1-based)
adom-vscode ai new '{"type":"claude","tui":true}' # the Claude CLI in a terminal tab
adom-vscode tabs close '{"label":"Claude Code"}'      # clean up after a test (exact label, or kind)
adom-vscode tabs reload                                # close + reopen the active (else first) Codex tab
adom-vscode tabs reload '{"resource_contains":"local/<threadId>"}'   # one conversation by resource

Package updates from the editor (1.1.99). The Adom sidebar's Packages section shows the countdown to the next background package check (adom/hook's cron runs on the hour and the half hour) and the last run's time and verdict. Its Update now button, the palette entry "Update Adom packages now", or POST /packages/update runs adom-wiki pkg update in a terminal named "Adom packages" so the whole stream is visible; nothing is captured or parsed. An updated adom-vscode activates only on the next window reload: adom-vscode install now asks the running host (POST /notify with actions: [{label, command}]) to show a toast with a Reload now button, and until the reload the old version keeps running.

"Codex could not start its user interface": reload that tab, nothing else (John 2026-09-18: "just reload the tab seems to do the trick"). POST /tabs/reload (the verb above) closes the Codex tab and reopens the same conversation in the same column; the user has the same action on the tab's right-click menu as Reload Codex tab (1.1.94). Nothing polls for the error: the menu entry is declarative and the verb runs only when called, so never add a watcher around it.

POST /ai/new answers {ok, type, command, tab_seen, label, group, placed, ms}; placed is stayed or moved a -> b. Antigravity answers surface: "tab" (its extension's editor-panel mode, a new conversation in the tab while the side bar keeps its own; two conversations is the ceiling) or, with surface:"sidebar" in the body, moves it back to the side bar. /ai/providers lists surfaces per AI. An AI that is not installed answers ok:false with the provider list, so never guess: read installed. Hydrogen's /ai-threads/new remains the route for anything that also wants tags, names, the AI picker, or a run-prompt job.

Gotchas

  • An extension can be installed but active: false (activates lazily). For the AI assistants, active = the assistant's panel/agent is actually live.
  • Version directories accumulate on disk (~/.local/share/code-server/extensions/); the version reported by these verbs is the RUNNING one, trust it over ls.