- omp-usage.js / opencode-usage.js: poll each CLI's own session store into sessions (tool omp/opencode), token_usage per model and subagent agents; transcript routes read them (omp journals, OpenCode's opencode.db). - Grok runs the Claude hooks in ~/.claude/settings.json: its hooks are now recognised (hookEventName + workspaceRoot), tagged tool=grok, and their transcript_path dropped instead of being parsed as a Claude transcript. - Catalog `resumeById`: omp/Grok/Cursor `--resume <id>`, OpenCode `--session <id>`; session ids may carry `_`. The client offers Resume for any tool that resumes by id. - Kimi Code and GitHub Copilot leave the catalog (their session stores could not be verified).
2.1 KiB
AI Tools catalog
One JSON file per AI coding CLI AgentHub can run in a lane. Loaded by
server/lib/ai-tools.js; the fields are described in
docs/superpowers/specs/2026-09-28-ai-tools-a1-design.md § 1. A file in
DASHBOARD_AI_TOOLS_DIR with the same id replaces the built-in one (it may
not set launcher).
Resume by id
resumeById (string array, e.g. ["--resume"]): the flag(s) a NAMED session's
id follows, as one more argv element — pty-run.js emits them in place of
resume when a start carries resumeSessionId, and only for an id that starts
with a letter or digit. A tool without it (and without a launcher) refuses a
resume by id (EUNSUPPORTED) rather than start fresh under a "resume".
Built-in: omp, Grok and Cursor (--resume), OpenCode (--session). A session id may carry _ (OpenCode's ses_…).
Install / update (A2)
Two optional fields, honoured only in built-in files and in the copy of the
newest release's catalog that server/lib/ai-tools-sync.js keeps in
<data dir>/runtime/ai-tools-remote/ — a file in DASHBOARD_AI_TOOLS_DIR
carrying either is rejected, because an Install click would run what it names:
install:{ "kind": "npm", "package": "<npm name>" }(runsnpm install -g <package>@latestwith the login shell's npm) or{ "kind": "script", "url": "https://…" }(https, same site — last two host labels — ashomepageUrl; downloaded by the server, run asbash <file>).update:{ "kind": "npm" }or{ "kind": "script" }(reuseinstall), or{ "kind": "self", "args": ["update"] }(the tool's own updater).
Before adding an npm package, check its owner (npm view <pkg> maintainers repository.url) and that its bin matches detect: a squatted name would
install a stranger's code on every machine that clicks Install.
Attribution
The commands, prompt modes, permission-bypass flags and homepages of the tools
other than Claude Code, Codex and Antigravity come from Orca
(https://github.com/stablyai/orca, MIT License, Copyright (c) Stably AI):
src/renderer/src/lib/agent-catalog.tsx, src/shared/tui-agent-config.ts and
src/shared/tui-agent-permissions.ts.