Agent-Ping

Kevin's open-source CLI that lets any AI agent "tap you on the shoulder": when an agent is blocked and needs approval, an answer, or a decision, it pings you through your normal notifications and waits for your reply. One Python file, no dependencies, works from any agent that can run a shell command. Source: github.com/Kevin-Liu-01/Agent-Ping, 2026-06-16

Demo

This is the canonical wide 5:4 demonstration video for Agent-Ping. The wiki stores the original MP4 locally and records its SHA-256 digest in frontmatter so future replacements are explicit. Source: User-provided demo video, 2026-07-14

The problem

Blocked agents do one of two bad things: stall silently, or guess. Agent-Ping gives them a reliable out-of-band channel to a human for approval gates (pause before anything risky/irreversible), real questions (the one answer the agent can't infer), and sign-off — and the ping can route to your phone when you're away from the keyboard. Source: Agent-Ping README, 2026-06-16

The four verbs

The agent always calls the same four verbs; the exit code is the answer, with --json for the full result. Source: Agent-Ping README, 2026-06-16

Verb Purpose
notify Fire-and-forget banner (agentping notify "Deploy finished" --title CI)
ask Free-text answer, printed to stdout (--default, --timeout)
confirm Approve/deny — exit 0 approved, 20 denied (if agentping confirm 'Delete rows?'; then …)
choose Pick one of several --option values

Exit codes: 0 delivered/answered/approved/chosen · 20 denied/declined/dismissed · 124 timed out · 2 usage error · 3 could not deliver. Flags include --timeout (0 = wait forever), --channel, --urgency, --sound, --default, --yes/--no. Source: Agent-Ping README, 2026-06-16

The linkup layer (channels)

The key design move is indirection: the agent calls the same four verbs, and you decide where the ping lands — desktop, phone, Slack, or a command of your own. The notification "linkup" lives in your config, not in the agent. Works across Cursor, Claude Code, Codex, OpenClaw, Hermes, or any script. Source: Agent-Ping README, 2026-06-16

Why it fits Kevin's stack

  • A concrete implementation of Staying in the Loop with Agents — human-in-the-loop as a tiny, model-agnostic primitive rather than a framework feature.
  • A concrete shell-level primitive for Human-in-the-Loop Control — the agent can notify, ask, confirm, or choose without being tied to a specific framework.
  • Cross-harness by design (Cross-Agent Harness Portability): one CLI, every agent runtime Kevin uses.
  • Mirrors the HITL-approval pattern now shipping in Vercel Eve (needsApproval) and the approval gates in Kevin's own automations — but unbundled into a single dependency-free file.

Boundary

Agent-Ping handles the notification and response channel. It does not by itself make the agent run resumable. The caller still needs State Resumability: save the proposed action, tool arguments, current files/state, timeout/default behavior, and proof that the human decision was applied correctly.

Current Evidence (2026-07-01)

This page was refreshed against Kevin's live GitHub inventory, pinned repositories, PortfolioMon cards, README scrape, and downloaded portfolio screenshots. Treat this section as the current evidence anchor; deeper interpretation stays in the surrounding compiled truth.

GitHub repo Visibility Language Stars Last push Homepage
Kevin-Liu-01/Agent-Ping public Python 7 2026-06-17 n/a

Timeline