@whoworked/ai-reporter-cli
v0.1.9
Published
Guarded CLI reporter for WhoWorked AI attribution and skill usage.
Readme
WhoWorked AI Reporter CLI
Guarded CLI reporter for WhoWorked AI attribution and skill usage. It captures local AI tool events and sends them to a WhoWorked workspace as reviewable AI attributions and SkillSteward usage events.
The reporter defaults to guarded content capture: it sends metadata such as tool name, event type, repo, branch, edited file count, and tool-call count, plus bounded, redacted prompt/response snippets when the local tool payload or transcript exposes them. It does not capture screen content or raw full-content logs by default.
Install
One-command setup uses the public npm package, installs the reporter globally, launches the OAuth flow, and configures attribution and skill-usage hooks for Claude Code and Codex when they are detected.
macOS, Linux, and Windows:
npm exec --yes --package @whoworked/ai-reporter-cli@latest -- whoworked-reporter-setupThe monorepo is private, so the installer does not depend on raw GitHub URLs. For convenience, the npm package also ships thin wrappers:
whoworked-reporter-setupOverride endpoints for non-production environments:
WHOWORKED_API_BASE_URL=http://localhost:3001 \
WHOWORKED_WEB_APP_URL=http://localhost:3000/app \
npm exec --yes --package @whoworked/ai-reporter-cli@latest -- whoworked-reporter-setupManual install:
npm install -g @whoworked/ai-reporter-cliConfirm the binary is available:
whoworked-reporter auth statusAuthenticate
Each user should authenticate with OAuth so reports are tied to their WhoWorked user. API keys are workspace-level and are not supported for personal Claude Code or Codex reporters.
whoworked-reporter auth login \
--api-base-url https://api.whoworked.com \
--web-app-url https://whoworked.com/appThe command opens the WhoWorked authorization flow. Pick the workspace where AI usage should be reported.
Claude Code
Merge templates/claude-code-hooks.json into your Claude Code hooks config.
The Stop hook captures attribution. The PostToolUse and
PostToolUseFailure hooks record each Skill tool invocation and its outcome.
Both immediately flush the local queue:
whoworked-reporter capture claude-code stop && whoworked-reporter capture flush
whoworked-reporter capture claude-code skill-used && whoworked-reporter capture flushCodex
Configure Codex's UserPromptSubmit and Stop hooks to run the provided
wrappers:
templates/codex-stop-hook.shtemplates/codex-stop-hook.ps1templates/codex-skill-hook.shtemplates/codex-skill-hook.ps1
The skill wrapper records explicit $skill-name mentions. The Stop wrapper
also looks for current-turn SKILL.md loads in Codex's transcript so
automatically selected skills are captured on a best-effort basis. Transcript
format changes never block attribution reporting.
Codex only executes commands once the hooks are trusted in the Codex hooks UI
(/hooks).
Direct command form:
whoworked-reporter capture codex stop && whoworked-reporter capture flush
whoworked-reporter capture codex skill-used && whoworked-reporter capture flushSkill usage
Automatic skill reports go directly to the workspace's SkillSteward event stream. Delivery is idempotent, so overlapping Codex detection signals and queue retries count one invocation once. Existing reporter OAuth grants work without reauthorization.
skill_report_usage remains available through the SkillSteward MCP server for
agents and integrations that are not using these hooks.
Queue
Capture commands write to a local queue first:
~/.whoworked/ai-reporter-queue.jsonlFlush manually when needed:
whoworked-reporter capture flushReporter config is stored at:
~/.whoworked/ai-reporter.jsonCommands
whoworked-reporter auth login
whoworked-reporter auth status
whoworked-reporter auth logout
whoworked-reporter capture claude-code session-start
whoworked-reporter capture claude-code stop
whoworked-reporter capture claude-code session-end
whoworked-reporter capture claude-code skill-used
whoworked-reporter capture codex stop
whoworked-reporter capture codex skill-used
whoworked-reporter capture flush