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
- Repo: https://github.com/Kevin-Liu-01/Agent-Ping (MIT)
- Install:
npm install -g agentping(a thin launcher around one Python 3.8+ stdlib-only file) or drop the singleagentpingfile onPATH;agentping doctorto verify. - Posted on X by Kevin on 2026-06-16. Source: User, 2026-06-17
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
-
2026-07-14 | Added the user-provided wide 5:4 MP4 as Agent-Ping's canonical project demo video and recorded its content digest. Source: User, 2026-07-14
-
2026-07-01 | Project graph refresh checked this page against Kevin's live GitHub inventory, pinned repos, scraped PortfolioMon cards, READMEs, and portfolio screenshots; current evidence was added above. Source: raw/github/kevin-repos-2026-07-01.json; raw/github/kevin-pinned-repos-2026-07-01.json; raw/sites/kevinliu-biz-2026-07-01/portfolio-projects.json
-
2026-06-17 | Page created after Kevin posted the project on X. Captured the four-verb API (
notify/ask/confirm/choose), exit-code contract, and the config-owned "linkup layer" of notification channels. Source: User, 2026-06-17; Agent-Ping README, 2026-06-16 -
2026-06-19 | Linked Agent-Ping to Human-in-the-Loop Control and clarified that the CLI supplies the response channel while the caller must still preserve resumable state and proof. Source: whole-wiki concept review, 2026-06-19