Zeph 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 zeph-to/plugin
claude plugin install zeph@zeph

# 2. Install the CLI and wire everything up (opens a browser sign-in)
npm install -g @zeph-to/cli
zeph install

Restart Claude Code — notifications start automatically. zeph install signs you in once, issues a matched API key and hook, and configures every AI agent it finds on your machine.

Not near a browser? See other agents for the headless form.

A global zeph is what powers zeph cc, and it lets agent hooks skip an npx cold start on every push. npx @zeph-to/cli install still works for a notifications-only setup.

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, every turnonly after /zeph-normal

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 zeph 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 zeph install sets up automatically, Claude ends a turn by asking you — buttons and a text field, together. Tap Continue, Review, or Done, or type commit and push / /ship / fix the tests. Your answer runs immediately, then Claude asks again. That is the Ask Loop, and it continues until you tap Done.

ToolWhat it showsWhen Claude reaches for it
zeph_askbuttons and text inputdecisions, next steps, custom instructions
zeph_prompt2–4 buttonssimple yes/no or pick-one
zeph_inputtext fieldfree-form input only
zeph_notify · zeph_clipboard · zeph_fileone-way pushwhen you explicitly ask

zeph_ask, zeph_prompt, and zeph_input need a Hook ID, issued during sign-in and saved to ~/.zeph/config.json. No environment variables.

Other agents

zeph install is not Claude-only. It detects every agent 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 @zeph-to/cli
zeph install
AgentAuto notifyMCP toolsHow
Claude Code✓ Stop hookPlugin
Cursor✓ stop hookMCP + hook + rules
Windsurf✓ response hookMCP + hook + rules
Gemini CLI✓ AfterAgent hookMCP + hook
Codex CLI✓ Stop hookHook + rules
Copilot CLI✓ sessionEnd hookHook + rules
ClineLLM-basedRules file
AiderLLM-basedConventions file

Headless box with no browser: sign in on any machine that has one, then copy the two values from its ~/.zeph/config.json:

zeph install --key ak_... --hook hook_...

Manual MCP setup

If you would rather not run the installer:

Gemini CLI

gemini mcp add zeph -- npx -y @zeph-to/mcp-server

Cursor — add this to ~/.cursor/mcp.json. Windsurf uses ~/.codeium/windsurf/mcp_config.json with the same shape.

{
  "mcpServers": {
    "zeph": {
      "command": "npx",
      "args": ["-y", "@zeph-to/mcp-server"],
      "env": { "ZEPH_API_KEY": "ak_..." }
    }
  }
}

Session commands

/zeph-config (guided setup) · /zeph-auto [duration] [task] · /zeph-mute · /zeph-unmute · /zeph-status · /zeph-quiet · /zeph-loud · /zeph-normal.

Uninstall

zeph uninstall              # remove Zeph from every detected agent
zeph uninstall --dry-run    # preview first
zeph uninstall --purge      # also delete ~/.zeph/config.json

This reverses zeph install everywhere — MCP entries, hooks, and rule files. It only touches Zeph's own artifacts: shared rule files keep your content, with just the <!-- ZEPH:START -->…<!-- ZEPH:END --> block stripped.

Remove the Claude Code plugin itself with claude plugin uninstall zeph@zeph.

On this page