Skip to content

Add Pushary to the external plugins marketplace - #63

Open
aadilghani1 wants to merge 1 commit into
github:mainfrom
aadilghani1:add-pushary-plugin
Open

Add Pushary to the external plugins marketplace#63
aadilghani1 wants to merge 1 commit into
github:mainfrom
aadilghani1:add-pushary-plugin

Conversation

@aadilghani1

Copy link
Copy Markdown

Adds pushary to marketplace.json and to the External Plugins list in the README. The plugin lives at Pushary/vscode-plugin and is referenced by source, so nothing is vendored here.

Disclosure: I maintain Pushary. Happy to adjust the wording, keywords, or drop the entry if it is not a fit for this collection.

What it does

Two things, both aimed at the case where the agent needs a human and the human is not at the keyboard:

  • A PreToolUse hook that gates risky terminal commands (rm -rf, force pushes, history rewrites, DROP/DELETE FROM, deploys, systemctl) on an approval delivered to the user's phone before the command runs.
  • An MCP server exposing ask_user, wait_for_answer, send_notification and cancel_question, so the agent can ask a question and block on a real answer.

Notes relevant to review

  • It self-filters. VS Code parses a hook's matcher but does not enforce it, so PreToolUse fires on every tool call. The gate therefore decides for itself and returns immediately, touching neither disk nor network, for anything that is not a risky terminal command. Measured at roughly Node startup cost per call.
  • It degrades to ask, never to allow. No API key, unreachable network, unparseable input, or no answer in time all return permissionDecision: "ask", which hands the decision to VS Code's own prompt rather than letting the command through. A 55s guard fires before the 60s hook timeout. SECURITY.md documents the one case this cannot cover.
  • Dependency-free hook. scripts/pushary-gate.mjs has no dependencies, uses global fetch, and talks only to pushary.com. Command text is redacted for common secret shapes before it is sent, and only the working directory's basename is included, never the full path.
  • Requires an account. Pushary is a paid service. Stated in the description and the README entry so it is not a surprise after install. Without a key the hook is inert and defers to VS Code's prompt; it does not block anyone.
  • MIT licensed, .claude-plugin layout, so the same directory also works with the GitHub Copilot CLI and Claude Code.

Pushary is a PreToolUse hook plus MCP server. The hook gates risky
terminal commands on an approval sent to the user's phone before the
command runs, falling back to VS Code's own approval prompt whenever it
cannot reach a decision. The MCP tools let the agent ask a question or
send a notification and get an answer back.

The plugin is hosted at Pushary/vscode-plugin and uses the .claude-plugin
layout, so it is referenced here by source rather than vendored.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant