Claude Code Plugin
Install the plugin and get notifications plus phone replies with no prompting.
Your agent finishes a build or hits a decision, your phone buzzes, you tap an answer, and the session keeps going. No walking back to the terminal.
Quick start
# 1. Add the Claude Code plugin
claude plugin marketplace add hwipit/plugin
claude plugin install hwip@hwip
# 2. Install the CLI and wire everything up (opens a browser sign-in)
npm install -g @hwip/cli
hwip installRestart Claude Code — notifications start automatically. hwip install signs you in once, issues
a matched API key and hook, and configures every supported agent it finds on your machine. You
also need the Hwip app signed in on an iPhone, or there is nobody to receive the
push.
Not near a browser? See other agents for the headless form.
A global hwip is what powers hwip cc, and it lets agent hooks and the plugin's MCP server skip
an npx cold start. npx @hwip/cli install still works for a notifications-only setup; without
hwip on PATH, the hooks and the MCP server fall back to npx -y @hwip/cli.
What you get
Notifications that need no prompting
| You get a push when… | Fires on |
|---|---|
| Claude asks you a question | any AskUserQuestion |
| A session has been idle for five minutes, meaning it is done | the session going quiet, not each turn |
| Claude flags a turn as important | a high Push Signal on that response |
| Claude finishes real work | /hwip-mode normal (turns that changed something with two or more tool calls) or /hwip-mode loud (every turn) |
These ride on hooks — shell commands that fire on Claude events, independent of whether the model remembers to notify you.
Out of the box the per-turn push is off (quiet), so a long session pings you when it asks
something and when it is actually finished, not thirty times along the way. They fire in every
Claude Code session, not only ones launched with hwip cc — that command is the phone-control
bridge, not the notification switch.
See Mute and push mode to dial the volume.
Replies that go straight into the session
With a Hook ID configured, which hwip install sets up automatically, Claude can ask you with
buttons and a text field together. Tap Continue, Review, or Done, or type
commit and push / /ship / fix the tests. Your answer runs immediately.
Once a session is driven from your phone, Claude ends every turn by asking again — the Ask Loop — until you tap Done or type at the terminal. See How it works.
| Tool | What it shows | When Claude reaches for it |
|---|---|---|
hwip_ask | buttons and text input (text only without actions) | decisions, next steps, custom instructions, free-form input |
hwip_notify · hwip_clipboard · hwip_file | one-way push | when you explicitly ask |
hwip_agent_send | types a message into another agent session | when you ask it to pass something to another agent |
hwip_agent_list · hwip_agent_read | lists the agent sessions on this machine and reads what one did last | when you ask what another agent here is doing |
hwip_ask needs a Hook ID, issued during sign-in and saved to ~/.hwip/config.json, so you set
no environment variable for it. Parameters are on the MCP tools page.
An approval gate for risky commands
/hwip-mode approve on holds hard-to-undo Bash commands — rm -rf, force pushes, prod deploys,
destructive SQL — before they run. At the terminal, Claude Code's own permission prompt asks. When
you are away, or the session is driven from your phone, your phone gets Approve and Deny. No
answer within 75 seconds is a Deny.
It is a speed bump against accidents, not a security boundary. It is off by default and off while the project is muted.
Other agents
hwip install is not Claude-only. It detects the agents on your machine and configures each one
with an MCP server, notification hooks, and a behavioral rule file in that agent's native always-on
location:
npm install -g @hwip/cli
hwip install| Agent | Auto notify | MCP tools | How |
|---|---|---|---|
| Claude Code | ✓ Stop hook | ✓ | Plugin |
| Cursor | ✓ stop hook | ✓ | MCP + hook + rules |
| Windsurf | ✓ response hook | ✓ | MCP + hook + rules |
| Gemini CLI | ✓ AfterAgent hook | ✓ | MCP + hook |
| Codex CLI | ✓ Stop hook | — | Hook + rules |
| Copilot CLI | ✓ sessionEnd hook | — | Hook + rules |
| Cline | LLM-based | — | Rules file |
| Aider | LLM-based | — | Conventions file |
Per-agent pages: Agents.
Headless box with no browser: sign in on any machine that has one, then copy the two values
from its ~/.hwip/config.json:
hwip install --key ak_... --hook hook_...Manual MCP setup
If you would rather not run the installer:
Gemini CLI
gemini mcp add -s user hwip hwip -- mcpCursor — add this to ~/.cursor/mcp.json. Windsurf uses
~/.codeium/windsurf/mcp_config.json with the same shape.
{
"mcpServers": {
"hwip": {
"command": "hwip",
"args": ["mcp"],
"env": { "HWIP_API_KEY": "ak_..." }
}
}
}hwip mcp runs the MCP server inside the @hwip/cli process. The older
"command": "npx", "args": ["-y", "@hwip/mcp-server"] form still works.
Session commands
| Command | What it does |
|---|---|
/hwip-config | guided setup: install the CLI, sign in, send a test push |
/hwip-mode [quiet|normal|loud|mute|unmute] [--global] | show or change push mode; see Mute and push mode |
/hwip-mode approve on|off | turn the phone approval gate on or off |
/hwip-auto [duration] [task] | time-boxed autonomous work; see How it works |
Uninstall
hwip uninstall # remove Hwip from every detected agent
hwip uninstall --dry-run # preview first
hwip uninstall --purge # also delete ~/.hwip/config.jsonThis reverses hwip install everywhere — MCP entries, hooks, and rule files. It only touches
Hwip's own artifacts: shared rule files keep your content, with just the
<!-- HWIP:START -->…<!-- HWIP:END --> block stripped.
Remove the Claude Code plugin itself with claude plugin uninstall hwip@hwip.