@satanwagen/reviewkit-cli
v0.1.13
Published
ReviewKit terminal tools: `reviewkit` (list/triage review comments from the terminal, MCP bridge for Claude Code & Cursor) and `reviewkit-emblema` (local sync agent pairing a project with the Emblema desktop app).
Maintainers
Readme
@satanwagen/reviewkit-cli
Two binaries, zero dependencies, Node 21+.
reviewkit — review comments in your terminal, and the bridge to coding agents
npm install -g @satanwagen/reviewkit-cli
cd my-site
reviewkit # first time: pairs the repo (one click in the site's review panel), then live viewBare reviewkit in a repo that is not paired yet runs setup first and flows
straight into the live view, so it is always the same one word. setup finds the site's own settings in the repo (the token, plus a custom syncToken / syncUrl if any
literals or *REVIEW_SYNC_* env vars), opens a loopback pairing port, and waits.
In the browser: review panel → gear → Connect terminal / agent… → Connect.
The panel finds the waiting terminal by itself and pushes the connection; the
result lands in <repo>/.reviewkit/project.json (gitignored). No copy-paste.
setup also registers the MCP bridge in Claude Code (claude mcp add) and
Cursor (~/.cursor/mcp.json) when they are installed.
| command | what |
| --- | --- |
| reviewkit | interactive live view: who is online, every item across pages and environments, detail strip, live toasts. ↑↓ move, ⏎ actions, space select, a hand selected / all open items to an agent inside the view (Claude Code or Cursor → model → prompt review with n note / e $EDITOR → run card), Tab + ⏎ open a run (items, log, follow-up line), r follow-up to the focused finished run (same session), Tab switch runs, f filters, / search, 1–4 bulk status, ? help, Ctrl+C quits. Piped or RK_NO_TUI=1: plain table + event stream |
| reviewkit list [--route /p] [--status open] [--type comment] [--must] [--json] | filtered table |
| reviewkit show <id> | detail (id prefix is enough) |
| reviewkit status <id> applied | open accepted rejected applied reopen; reviewers see it flip live |
| reviewkit delete <id> | permanent, tombstoned for everyone |
| reviewkit watch | live events only |
| reviewkit export [-o file] | ReviewSession JSON, same as the panel's Export |
| reviewkit prompt | agent-ready work list of open items, grouped by page, must first |
| reviewkit rooms | pages with review data (item counts, who is online) |
| reviewkit env / env add <url> / env rm <url> | environments of this site (localhost, dev domain, production). All show at once; o switches in the live view; --env <origin> filters list / watch. Pairing from another environment adds it automatically |
| reviewkit projects / use <name> / forget <name> | paired sites; -p <name> acts on one from anywhere |
| reviewkit connect <rkc_key> / key | pair a machine without a browser next to it |
| reviewkit mcp / mcp-install | the MCP server (stdio) and its registration |
One repo, several environments: .reviewkit/project.json holds every origin you
paired (open the dev domain with the review link → Connect adds it). The live view
lists them all with a where column; o narrows to one.
Project resolution order: -p name → .reviewkit/project.json walking up from
cwd → .reviewkit/emblema-sync.json settings → the global active project in
~/.config/reviewkit/projects.json.
Agents (Claude Code, Cursor, anything MCP)
Inside the live view a hands items to whichever agent CLI is installed: claude (Claude Code) or cursor-agent (Cursor). Both run in print mode with streamed JSON, so each step shows in the agent pane while statuses flip live.
reviewkit mcp exposes reviewkit_prompt, reviewkit_list, reviewkit_show,
reviewkit_set_status, reviewkit_delete, reviewkit_export, reviewkit_rooms,
reviewkit_projects. Typical loop: the agent calls reviewkit_prompt, edits the
code, then reviewkit_set_status(id, "applied") per item. Registration by hand:
claude mcp add --scope user reviewkit -- npx -y @satanwagen/reviewkit-cli mcpThe MCP server resolves the project per call from its cwd (Claude Code runs it in the project directory), so pairing a new site while the agent runs needs no restart.
The CLI needs the site to have live sync on (the default); it reads the shared rooms, not a reviewer's local browser storage.
reviewkit-emblema — local sync agent for the Emblema desktop app
npx -p @satanwagen/reviewkit-cli reviewkit-emblema init --origin https://your-site --sync-token <secret> # --sync-url only for a self-hosted server
npx -p @satanwagen/reviewkit-cli reviewkit-emblema serveState lives in
.reviewkit/emblema-sync.json; init adds .reviewkit/ to .gitignore.
Commands: init, key, rotate, revoke, serve. The realtime bridge in
serve runs when a sync token is configured (URL defaults to the public
server); the local API always serves. Full docs: main package README, "Pairing with Emblema".
