AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Agentping

skill-kevin-liu-01-agent-ping-agent-ping · by Kevin-Liu-01

Reach the human out-of-band when you are blocked and they may be away from the chat. Sends a real OS notification (or phone push / Slack / custom channel) and can block for the reply: a free-text answer, an approve/deny decision, or a pick-one choice. Use when you need approval before a risky or irreversible action, when you hit an ambiguous decision only the user can settle, when a long task fin…

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-kevin-liu-01-agent-ping-agent-ping

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kevin-liu-01-agent-ping-agent-ping)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Agentping? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

agentping

A single-file CLI that pings the human through their own notification settings and, when you ask, waits for their reply. Use it instead of stalling silently or guessing when you are blocked and the user might not be watching the chat.

Invoke it by path so it resolves the same from every agent:

AN="$HOME/.local/bin/agentping"   # or wherever install.sh put it

If it is not on PATH, call the script directly (e.g. the cloned repo path) or python3 /path/to/agentping.

When to reach for it

  • Approval gate before something risky or irreversible (deploy, delete, spend, force-push, schema change).
  • Blocking decision you genuinely cannot infer from the task or the code.
  • Done, needs sign-off: a long-running task finished and the next step needs a human.
  • The user explicitly asked to be pinged, notified, or asked.

Do not use it for things you can decide yourself, or to narrate progress. One ping should carry a real question or a real decision.

The four verbs

# Fire-and-forget banner (no reply expected)
"$AN" notify "Deploy to prod finished, all checks green" --title "CI"

# Free-text answer (printed to stdout)
answer="$("$AN" ask 'Which staging DB should I target?' --default 'staging-1')"

# Approve/deny gate (exit code is the answer)
if "$AN" confirm 'Run the destructive migration 0042 on dev?' ; then
  run_migration
else
  echo "human declined; stopping"
fi

# Pick one of several
pick="$("$AN" choose 'Which fix do you want?' \
        --option 'Patch the call site' \
        --option 'Fix the root function' \
        --option 'Skip for now')"

Read the result two ways

Exit code (the headline, good for confirm):

| code | meaning | |---|---| | 0 | delivered / answered / approved / chosen | | 20 | denied, declined, or dismissed | | 124 | timed out (no response before --timeout) | | 2 | usage error | | 3 | could not deliver (transport/provider error) |

--json (the detail, best for ask/choose so you also catch timeouts):

"$AN" ask 'Pick a region' --timeout 90 --json
# {"status":"answered","verb":"ask","channel":"system","response":"us-east-1","error":null}

status is authoritative: delivered|answered|approved|denied|chosen|timeout|cancelled|error, plus suppressed|throttled for a notify the user's config chose not to show (both exit 0; harmless, keep going). Always handle timeout: if the human never answered, do not guess; stop and report that you are waiting on them.

Flags

  • --title TEXT: notification title (default Agent).
  • --timeout SECONDS: how long to wait for a reply; 0 = wait forever (default 120). notify ignores it.
  • --channel NAME: send through a specific configured channel instead of the default.
  • --urgency low|normal|high: hint for sound or priority.
  • --sound NAME: macOS notification sound (Glass, Ping, Sosumi, ...), auto for a per-verb tone, or none. Usually set once in config; rarely needed per call.
  • ask --default TEXT: prefill the answer box.
  • confirm --yes LABEL --no LABEL: relabel the buttons (the labels are also what counts as approve/deny).
  • choose --option A --option B ...: the choices (need at least two).

Channels (the "linkup" layer)

The agent always calls the same verbs; the user decides where the ping lands via ~/.config/agentping/config.json. Built-in channel types:

  • system (default, zero-config): native desktop notification/dialog.
  • ntfy: push to a phone via ntfy; the user replies from the ntfy app and you read it back. Best for "user is away from the keyboard."
  • imessage (macOS): text the user's own number/Apple ID through Messages; two-way (reads their reply back from the Messages database). Needs a one-time Automation + Full Disk Access grant; fails loud if missing.
  • sms: outbound SMS via Twilio (notify only) for non-Apple phones or a non-Mac host.
  • webhook: one-way POST (Slack/Discord/custom).
  • command: run any program the user wires up (terminal-notifier, a Telegram CLI, text-to-speech...).

Run "$AN" doctor to see the host platform, which backends exist, and which channels are configured and what each can do. If the default channel cannot do the verb you need (e.g. a headless box with no desktop), it fails loud with a typed error rather than silently doing nothing; pick another --channel or tell the user to configure one. See README.md for the config schema.

Logo banners (optional, macOS)

Default is osascript (zero setup, no extra permission prompts). Do not run logo setup unless the user explicitly wants the bell image in notify banners.

When they do, on macOS only:

"$AN" setup-logo

That installs terminal-notifier if needed, ensures assets/logo.png exists, writes ~/.config/agentping/config.json so notify uses the banner channel while ask/confirm/choose stay on system dialogs, and sends one test banner. The user may need to allow notifications for their terminal app once (System Settings -> Notifications).

To skip the test ping: "$AN" setup-logo --no-test.

To revert to osascript-only defaults, set "default_channel": "system" in the config (or delete ~/.config/agentping/config.json).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.