io.github.Pushary/pushary icon

Pushary

by Pushary

io.github.Pushary/pushary

Push notifications and human-in-the-loop approvals for AI agents, with a cross-agent audit trail.

Pushary Agent Skill

Push notifications and human-in-the-loop for AI coding agents.
Get started  ·  Skills directory  ·  Report a bug


Your AI agent finishes a 20-minute refactor while you're making coffee. Without Pushary, you'd never know until you checked back. With Pushary, you get a push notification on your phone the moment it's done - or a question on your lock screen when the agent needs a decision.

How It Works

AI Agent  ->  MCP Protocol  ->  Pushary API  ->  Push Notification  ->  Your Phone

Pushary is an MCP server that connects your AI coding agent to push notifications. The agent calls Pushary's tools over the Model Context Protocol, and you receive notifications instantly on any device.

Three question types - yes/no confirmations, multiple choice, and free text input. Your agent picks the right one for the situation.

Rich context notifications - agents can include file changes, error details, and suggested next steps in a detail page you see when tapping the notification.

Agent identification - when you run multiple agents, each notification shows which agent is asking so you always know what you're responding to.

Permission hooks - route Claude Code's tool approval prompts through push notifications so you can approve or deny from your phone.


Setup: Claude Code

Option A: MCP Server (notifications + questions)

The agent calls Pushary tools when it wants to notify you or ask a question.

1. Sign up at pushary.com/sign-up and get your API key.

2. Install the skill:

npx skills add Pushary/pushary-skill

3. Add the MCP server to your Claude Code settings (~/.claude/settings.json or project .claude/settings.json):

{
  "mcpServers": {
    "pushary": {
      "url": "https://pushary.com/api/mcp/mcp",
      "headers": {
        "Authorization": "Bearer pk_xxx.sk_xxx"
      }
    }
  }
}

Replace pk_xxx.sk_xxx with your API key.

4. Enable notifications on your phone by visiting your Pushary dashboard and allowing browser notifications.

That's it. The agent will proactively send you notifications when tasks complete, errors occur, or decisions are needed.

Option B: Permission Hooks (approve/deny tools via push)

Route Claude Code's built-in permission prompts through push notifications. When the agent wants to run a command or edit a file, you get a push notification to approve or deny from your phone.

1. Install the hook package:

npm install -g @pushary/agent-hooks

2. Set your API key in your shell profile (~/.zshrc or ~/.bashrc):

export PUSHARY_API_KEY="pk_xxx.sk_xxx"

3. Add the hook to your Claude Code settings (~/.claude/settings.json):

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash|Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "pushary-hook",
            "timeout": 120
          }
        ]
      }
    ]
  }
}

4. Configure timeout policies in your Pushary dashboard:

Tool Timeout If no response
Bash 60s Auto-deny
Write 60s Ask in terminal
Edit 45s Ask in terminal
Read 0s Auto-approve

When you don't respond to a push notification in time, the configured fallback kicks in: auto-approve, auto-deny, or fall back to the normal terminal permission prompt.

Option C: Both (recommended)

Use Option A and Option B together. The MCP server handles notifications and voluntary questions. The permission hook handles tool approvals. They use the same API key and dashboard.


Setup: Hermes Agent

Option A: Native Plugin (recommended)

Full integration with native Hermes tools and automatic error notifications.

1. Install the plugin:

pip install hermes-plugin-pushary

2. Enable it:

hermes plugins enable pushary

3. Set your API key:

export PUSHARY_API_KEY="pk_xxx.sk_xxx"

4. (Optional) Set your agent name:

export PUSHARY_AGENT_NAME="Hermes - my-project"

The plugin registers 4 native tools (pushary_notify, pushary_ask, pushary_wait, pushary_cancel) and automatically sends push notifications when tools return errors.

Set PUSHARY_AUTO_NOTIFY_SESSION_END=1 to also get notified when a Hermes session ends.

Option B: MCP Server + Skill

If you prefer MCP over the native plugin:

1. Add to ~/.hermes/config.yaml:

mcp:
  servers:
    pushary:
      url: https://pushary.com/api/mcp/sse
      headers:
        Authorization: "Bearer ${PUSHARY_API_KEY}"

2. Install the skill:

hermes skills tap add Pushary/pushary-skill
hermes skills install pushary

Setup: OpenAI Codex

Codex has native MCP support. One command:

1. Set your API key in your shell profile (~/.zshrc or ~/.bashrc):

export PUSHARY_API_KEY="pk_xxx.sk_xxx"

2. Add the MCP server:

codex mcp add pushary --url https://pushary.com/api/mcp/mcp --bearer-token-env-var PUSHARY_API_KEY

That's it. Codex now has access to all Pushary tools - notifications, questions, and rich context.

Or use the setup wizard (configures everything including the API key):

npx @pushary/agent-hooks setup

Setup: Cursor / Windsurf / Other MCP Agents

1. Add the MCP server to your agent's MCP config (usually .cursor/mcp.json or similar):

{
  "mcpServers": {
    "pushary": {
      "url": "https://pushary.com/api/mcp/mcp",
      "headers": {
        "Authorization": "Bearer pk_xxx.sk_xxx"
      }
    }
  }
}

2. Install the skill (if your agent supports skills.sh):

npx skills add Pushary/pushary-skill

Setup: Lovable

Lovable is a hosted app builder, so there is no local install step (npx skills add does not apply). You connect the MCP server in Lovable's UI, then paste the skill into Lovable's Knowledge so the agent uses it on its own.

1. Connect the MCP server. In Lovable, go to Settings -> Connectors -> Personal connectors (paid Lovable plans), click New MCP server, set the URL to https://pushary.com/api/mcp/mcp, choose Bearer token, and paste your API key (pk_xxx.sk_xxx).

2. Add the skill to Knowledge. Lovable cannot install skills via npx, so paste the skill guidance into Settings -> Knowledge. Use the condensed SKILL-LITE.md as the source. This makes the Lovable agent notify you when a build finishes and ask before risky changes, without you prompting each time.

Lovable gets notifications and questions only (no enforced gate, since it has no permission hook). Full walkthrough: Lovable guide.


Tools

The skill exposes 5 MCP tools:

Tool Description
send_notification Send a push notification with optional rich context (file changes, errors, next steps)
ask_user Ask the user a question via push - yes/no, multiple choice, or free text
wait_for_answer Long-poll for the user's response to a question
cancel_question Cancel a pending question that's no longer relevant
list_sessions Read-only view of your live agent sessions and pending questions

Full tool documentation with parameters, examples, and usage guidelines is in skills/pushary/SKILL.md.

Human-in-the-Loop

The agent can ask you decisions via push and wait for your answer:

Agent: "Which auth strategy should I use?"
  Options: JWT tokens / Session cookies / OAuth2 + PKCE
  -> push to your phone

You: tap "JWT tokens"

Agent: proceeds with JWT implementation

Supports three question types:

  • Confirm - yes/no binary decisions
  • Select - pick from 2-6 options
  • Input - free text response

The flow uses ask_user -> wait_for_answer with automatic retries. Answers persist for 10 minutes, so there's no rush.

Packages

Package Registry Description
@pushary/agent-hooks npm Claude Code permission hooks
hermes-plugin-pushary PyPI Hermes Agent native plugin

Compatible Agents

Works with any agent that supports skills.sh or the Model Context Protocol:

Contributing

Contributions are welcome! Please read the contributing guide before submitting a pull request.

Security

If you discover a security vulnerability, please report it responsibly. See SECURITY.md for details.

Funding

This project is fully funded by RalphNex OU, an Estonian software development agency.

License

MIT - Copyright (c) 2025 RalphNex OU