Hwip Docs
Claude Code Plugin

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 install

Restart 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 questionany AskUserQuestion
A session has been idle for five minutes, meaning it is donethe session going quiet, not each turn
Claude flags a turn as importanta 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.

ToolWhat it showsWhen Claude reaches for it
hwip_askbuttons and text input (text only without actions)decisions, next steps, custom instructions, free-form input
hwip_notify · hwip_clipboard · hwip_fileone-way pushwhen you explicitly ask
hwip_agent_sendtypes a message into another agent sessionwhen you ask it to pass something to another agent
hwip_agent_list · hwip_agent_readlists the agent sessions on this machine and reads what one did lastwhen 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
AgentAuto notifyMCP toolsHow
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
ClineLLM-based—Rules file
AiderLLM-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 -- mcp

Cursor — 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

CommandWhat it does
/hwip-configguided 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|offturn 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.json

This 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.

On this page