Skip to content
Development
Skill

/woz

WOZCODE utilities. Subcommands — login, logout, status, settings, update, share, review (deep multi-persona code review), benchmark (WOZCODE vs vanilla comparison). Invoke as `/woz <subcommand>`, e.g. `/woz login` or `/woz review`.

From plugin
woz
20816 skills4 agents9 hooks2 MCP

Claude Code

$ npx -y skills add WithWoz/wozcode-plugin --skill woz --agent claude-code

SKILL.md

woz.SKILL.md
name: woz
description: WOZCODE utilities. Subcommands — login, logout, status, settings, update, share, review (deep multi-persona code review), benchmark (WOZCODE vs vanilla comparison). Invoke as `/woz <subcommand>`, e.g. `/woz login` or `/woz review`.
argument-hint: login | logout | status | settings | update | share | review | benchmark
arguments: subcommand
allowed-tools: Bash(node *), Bash(printf *), Read

/woz — WOZCODE utilities

One skill, eight subcommands. The first word of the arguments selects the subcommand:

| Subcommand | Purpose | |---|---| | `login` | Authenticate with the Woz service (browser, API key, or token) | | `logout` | Clear stored credentials and log out | | `status` | Show authentication and subscription status | | `settings` | Show or update WOZCODE plugin settings | | `update` | Update the WOZCODE plugin to the latest version | | `share` | Print the referral share message | | `review` | Deep multi-persona code review of the current branch (requires KnowledgeBase access) | | `benchmark` | Side-by-side WOZCODE vs vanilla Claude Code comparison on the user's repo |

TRIGGER when: the user runs `/woz <subcommand>`, or says "log in to woz", "woz status", "woz settings", "configure woz", "toggle attribution", "update woz", "refer a friend", "deep review", "final check before pushing", "review my branch", "is this ready to ship", "compare woz", "how much does woz save", "benchmark woz", or similar.

If no subcommand is given, ask the user which one they want (list them briefly).

Only the frequent, low-risk subcommands are auto-approved (`allowed-tools` is just `Bash(node *), Read`). The rare, heavier paths run through a normal permission prompt on purpose — least privilege on the common account/auth paths: `update` will prompt for `claude`/`rm`, and `benchmark` for `git`/`Write`/`mkdir`/etc. Approve those when the user runs them.

login

Dispatch on the arguments after the subcommand:

  • Any argument that starts with `woz_sk_` (regardless of surrounding flags) → API Key Login below.
  • `--token <token>` → Token Login below.
  • Otherwise → Browser Login.

Browser Login (Preferred)

Run the Woz authentication flow. This opens a browser for the user to log in:

node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/wozcode-cli.cjs" login

If the command exits with code 0, login succeeded — confirm to the user.

API Key Login

Use this when the user provides a WozCode API key (a `woz_sk_…` value) — from `/woz login woz_sk_…`, from a CI setup question, or when they paste one after a browser-login failure.

The key is password-equivalent, and any command you build with it inline lands in your transcript — so when the user can set an env var, prefer `WOZCODE_API_KEY` (see below). For a direct login, NEVER pass the key as an argument to the login command (it would show in `ps` for that process) — pipe it on stdin:

printf %s '<api-key>' | node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/wozcode-cli.cjs" login --api-key-stdin

Replace `<api-key>` with the actual key, single-quoted. Do not echo the key back to the user in your response.

On Windows `cmd`/PowerShell there is no `printf`, so don't pipe the key there — tell the user to set the `WOZCODE_API_KEY` environment variable instead (see the CI/headless note below).

On success the CLI prints `Authenticated as <email> (organization: <id>)` — confirm to the user. On `API key invalid or revoked`, tell the user to check the key on their WozCode token page (or with their org admin) — existing keys are shown by preview only, so a new one may need to be issued.

For CI or headless use, the user doesn't need this skill at all: setting the `WOZCODE_API_KEY` environment variable makes the plugin bootstrap and re-mint sessions automatically.

Token Login

Use this when:

  • The user passed `--token <token>` as arguments to this skill
  • The browser login above timed out or failed and the user provides a token

If the browser login failed: 1. The auth URL is visible in the output above 2. Tell the user to open that URL in their browser and complete the login 3. Ask the user to copy the token shown on the auth page after login

Once you have the token (from args or from the user), run:

node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/wozcode-cli.cjs" login --token '<token>'

Replace `<token>` with the actual token.

Confirm success or relay any error to the user.

logout

Log out of Woz by clearing stored credentials:

node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/wozcode-cli.cjs" logout

Confirm that the user has been logged out.

status

Check the current Woz authentication status:

node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/wozcode-cli.cjs" status

Relay the output to the user. Do not call out or warn about the `Token expires` value — the token is refreshed automatically, so framing the expiry as something the user needs to act on is misleading.

settings

Manage WOZCODE plugin settings. The user-facing knobs (attribution, status line, spinner verbs, the live-reviewer toggles, …) live in `~/.claude/settings.json` under the `wozcode` key. Prefer the `--show` / `--set` helper below over hand-editing — it applies the right side effects.

Show current settings

node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/settings-helper.cjs" --show

Display the JSON output as a readable table for the user.

Update a setting

node --no-warnings=ExperimentalWarning "${CLAUDE_PLUGIN_ROOT}/scripts/settings-helper.cjs" --set <key> <value>

Where `<key>` is a setting name and `<value>` is `true` or `false` (or, for `sql`, a JSON policy object — see [The `sql` connection policy](#the-sql-connection-policy) below).

**Available settings:**

| Key | Default | Description | |-----|---------|-------------| | `

Read more
@withwoz
Ships withwoz

Smarter tools for Claude Code that reduce token usage and cost. Replaces built-in file tools with optimized alternatives — fewer tokens per tool call means cheaper sessions that compound over time.

20816 skills4 agents2 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
208
Star history of WithWoz/wozcode-plugin on GitHub, a chart by star-history.com

Other skills on woz.

woz-recall

woz-recall

Search past Claude Code sessions to recall commands, solutions, and context from prior conversations. TRIGGER on 'remember when',…

@withwoz@withwozInstall Skill
woz-savings

woz-savings

Show the WOZCODE savings report — calls saved, time saved, tokens saved, and lifetime totals.

@withwoz@withwozInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about woz.

Which coding agents can use woz?
woz installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.