app
adom-vscode
Public Made by Adomby adom
Let Claude, Codex and Kimi drive VS Code inside your Adom container
← Commit history
1.1.26: title-bar icons rebuilt on VS Code's toolbar (hover, tooltips, glyph), Claude opens in a new tab, TUI icons, tabs.close
3 files changed
+6−2
README.md+3−1@@ -82,6 +82,8 @@ Everything the CLI does is a plain HTTP call, so HD, HW, and any script can hit | claude.new | `POST /claude/new` | New Claude Code conversation | | ai.providers | `GET /ai/providers` | Which AIs are installed here (Claude Code, Codex, Kimi, Antigravity), the command a new tab runs, and which icons the user shows | | ai.new | `POST /ai/new` `{type, tui?, group?}` | Open a new thread for that AI in an editor group (default: the active one) and keep it there; `tui:true` puts the AI's CLI in a terminal tab instead |+| ai.icons | `POST /ai/icons` `{icons:[...]}` | Which AI icons the title bar shows (the checklist in the menu writes this; setting `adom-vscode.aiIcons`) |+| tabs.close | `POST /tabs/close` `{label?, kind?, group?}` | Close every tab matching an exact label and/or kind (claude, codex, kimi, terminal, ...), optionally in one group; the cleanup half of a ralph test | | tabs.list | `GET /tabs` | Event-driven tab census from the extension host (`window.tabGroups`): every tab with `kind` (claude \| codex \| kimi \| terminal \| other), label, group/tab index, active flags; Codex rows carry `sessionId` from the editor URI. No DOM, no CDP | | tabs.events | `GET /tabs/events` (SSE) | The same census pushed on every tab open/close/move/focus change (`event: census`), plus `event: claude-session` when the SessionStart hook reports a new Claude session. Hydrogen holds one stream per workspace instead of polling the iframes | | claude.session-start | `POST /claude/session-start` `{session_id, transcript_path?, cwd?, source?}` | Ingest for a Claude `SessionStart` hook: records the session (last 100) and broadcasts it on `/tabs/events` |@@ -273,4 +275,4 @@ v1.1.20: /command returns errorCode command_not_found (HTTP 400) with did-you-me v1.1.21: event-driven tab census + Claude session identity (John 2026-09-03: never poll the iframes again). GET /tabs and the SSE stream GET /tabs/events publish the extension host's own tabGroups census on every change; POST /claude/session-start ingests the Claude SessionStart hook (id + transcript path, before the jsonl is flushed) and GET /claude/sessions lists it; POST /claude/open-session opens an existing conversation by id and confirms the bind (retagging sdk-cli transcripts, which the Claude extension otherwise declines). Capability markers in /health: tabs.list, tabs.events, claude.open-session, claude.session-start, claude.sessions. -v1.1.26: AI thread icons in the window title bar (John 2026-09-06), the layout-controls row at the top right. VS Code has no contribution point there, so `browser/ai-titlebar.js` rides workbench.html (written by `adom-vscode install`, back on every reload) and calls this extension over `/proxy/<port>/ai/*`: one icon per INSTALLED AI in the vendor's own colour (Claude Code, Codex, and Kimi or Antigravity when their extension is present), a sparkle menu listing every installed AI plus its TUI (the CLI in a terminal tab), and a VS Code-style checklist of which icons to show (saved as `adom-vscode.aiIcons`; TUIs off by default). A click opens the thread in THIS window's active group (each Hydrogen VS Code tab is its own window and extension host; the script matches its visible tabs against every candidate port's census, so the thread never lands in another window) and moves it back if the AI extension split the editor. GET /ai/providers, POST /ai/new {type, tui?, group?}, POST /ai/icons {icons}. Also: `extensions install --vsix` and `adom-vscode install` used the remote-cli wrapper, which only works inside a VS Code terminal and reported success while installing nothing; both now use the code-server binary and require its own "successfully installed" line.+v1.1.26: AI thread icons in the window title bar (John 2026-09-06), the layout-controls row at the top right. VS Code has no contribution point there, so `browser/ai-titlebar.js` rides workbench.html (written by `adom-vscode install`, back on every reload) and calls this extension over `/proxy/<port>/ai/*`: one icon per INSTALLED AI in the vendor's own colour (Claude Code, Codex, and Kimi or Antigravity when their extension is present), a sparkle menu listing every installed AI plus its TUI (the CLI in a terminal tab), and a VS Code-style checklist of which icons to show (saved as `adom-vscode.aiIcons`; TUIs off by default). A click opens the thread in THIS window's active group (each Hydrogen VS Code tab is its own window and extension host; the script matches its visible tabs against every candidate port's census, so the thread never lands in another window) and moves it back if the AI extension split the editor. GET /ai/providers, POST /ai/new {type, tui?, group?} (a TUI goes through the /terminal/tui registry with the AI Threads panel's icon and colour), POST /ai/icons {icons}, POST /tabs/close {label|kind}. The icons are drawn as a real monaco-toolbar (VS Code's own action-item markup, hover and active styling) with monaco-hover tooltips; the menu glyph is a plus with a dropdown chevron. Also: `extensions install --vsix` and `adom-vscode install` used the remote-cli wrapper, which only works inside a VS Code terminal and reported success while installing nothing; both now use the code-server binary and require its own "successfully installed" line.
bin/adom-vscode⋯ 1 unchanged line ⋯
skills/adom-vscode-extensions/SKILL.md+3−1@@ -57,7 +57,8 @@ HTTP: `POST /extensions/search {query}`, `POST /extensions/install {id}`. The top-right row of the window (next to VS Code's layout controls) carries one icon per INSTALLED AI, in the vendor's own colour: Claude Code (orange), Codex, and Kimi or Antigravity when their extension is present. A "+" badge means a new thread in a tab; a ">_" badge means-the AI's CLI in a terminal tab (TUI). The sparkle icon opens a VS Code-style menu: every+the AI's CLI in a terminal tab (TUI, the tab carries the same icon and colour the AI Threads panel+gives it). The plus-with-chevron icon opens a VS Code-style menu: every installed AI, its TUI, and a checklist (check marks, like the activity bar's own menu) of which icons to show, saved as the user setting `adom-vscode.aiIcons` (default: every installed AI, no TUIs). VS Code has no extension contribution point for that row, so the icons are drawn by@@ -77,6 +78,7 @@ adom-vscode ai new '{"type":"codex"}' # a Codex thread in the active g 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 ai icons '{"icons":["claude","codex"]}' # the checklist+adom-vscode tabs close '{"label":"Claude Code"}' # clean up after a test (exact label, or kind) ``` `POST /ai/new` answers `{ok, type, command, tab_seen, label, group, placed, ms}`; `placed` is