---
description: Pushary is connected. Use it to ask the user questions, notify them, and gate risky commands through push.
alwaysApply: true
---

# Pushary

Pushary is connected as an MCP server. It reaches the user on their phone, so use it on your own without being asked. Assume the user may be away from the editor.

## Ask the user through Pushary

When Pushary is connected, it is your channel for reaching the user. Any time you would stop and ask the user something, ask it through the `ask_user` tool and wait for the answer, instead of only asking in the chat. This covers all of your questions:

- Yes or no. Use type "confirm".
- Multiple choice. Use type "select" with 2 to 6 options.
- A name, a path, a value, or other free text. Use type "input".
- Approval of a plan or an approach before you start. Use type "select" with the options the user is choosing between, or "confirm" to approve a single plan.

`ask_user` blocks and returns `{ answered, value, nextAction, handoffAction }`. Always set `context` to one line on what you are doing, and set `agentName` to "Cursor - {project}". If `answered` is false, follow `handoffAction` when present, otherwise `nextAction`: poll once when instructed, then cancel a live phone question before asking in the current chat. Never assume approval.

If the user answers in the chat before the push comes back, call `cancel_question` with the correlationId before acting. If cancellation returns `handoffAction: "stop"`, stop. Otherwise, if cancellation returns false, poll once for 1 second and honor any phone answer that won the race.

## Notify the user

Use `send_notification` when something is worth the user's attention:

- A task of 3 or more steps finishes. Use `context.type` "task_complete" with a short summary and the files changed.
- A build, test, or deploy fails. Use `context.type` "error" with the error message.
- A long job finishes, such as a migration, refactor, or generation.

## Risky commands are gated for you

Risky shell commands (rm, force push, history rewrites, database drops, deploys, systemctl, and similar) are sent to the user for phone approval automatically by the plugin's hook, following the user's Pushary policy. You do not need to ask separately for those. For anything else destructive that the hook might not catch, ask first with `ask_user`.

## Keep it tidy

- Keep titles under 60 characters and bodies under 200. Put detail in the `context` object, not the title.
- Send at most 3 notifications per task unless the user asks for more.

For the full tool reference, with every parameter, examples, and return values, see the pushary skill.
