Pingo for VS Code
Give your coding agents a voice. Pingo hears, sees, and tracks when Claude
Code, OpenCode, Codex, Gemini, or Aider need your attention — right inside VS Code.
Install the extension and keep using your agents exactly as you do today. No
wrapper command, no separate service, no workflow change.
opencode # just run it normally
claude # just run it normally
codex
Pingo automatically detects approval requests, task completion, errors,
authentication issues, and rate limits — then plays a sound, speaks an alert,
and shows a VS Code notification.
How it works
- Terminal agents (
opencode, claude, codex, gemini, aider typed in
the integrated terminal): Pingo passively watches the terminal through VS
Code's stable Shell Integration API, reconstructs the agent's full-screen
TUI with a headless terminal emulator, and runs its detection rules over the
rendered screen. Nothing to launch — just use your agent.
- Claude Code extension panel: that runs
claude in its own shell-less
terminal, so Pingo listens to Claude Code's own hooks instead. Run
Pingo: Enable Claude Code Integration once to wire it up.
No CLI, no localhost server, and no WebSocket are required.
Setup
- Install this extension.
- Use your agents normally. The status bar shows
$(bell) Pingo Active when
Pingo is watching your terminals.
- (Claude Code extension users only) Run
Pingo: Enable Claude Code Integration from the Command Palette, then restart your Claude Code session.
"Away" alerts — quiet while you work
By default Pingo only plays a sound when you've stepped away — i.e. the VS
Code window has been unfocused for pingo.awaySeconds (default 30). While you're
working in VS Code (including typing in the agent's terminal), alerts are held
silently and shown as armed in the status bar; they sound only if you
switch to another window (Chrome, Slack, …) and stay away. Set
pingo.awaySeconds to 0 to always alert instantly.
Features
- Passive detection of terminal agents — no
pingo prefix, no setup
- Claude Code extension support via its Notification hook
- Sound + voice notifications for approvals, completions, errors, auth, and rate limits
- Away-aware alerts — silent while you work, audible when you've stepped away
- Native VS Code notifications (approval → warning, completed → info, error → error)
- Status bar indicator that flashes Approval Needed when your agent is waiting
- Event history —
Pingo: Show Events
Commands
Pingo: Enable Claude Code Integration
Pingo: Test Notification
Pingo: Test Sound
Pingo: Test Voice
Pingo: Show Events
Pingo: Open Settings
Settings
pingo.notify — both | sound | voice | disabled
pingo.monitorTerminals — passively monitor integrated terminals (default true)
pingo.awaySeconds — seconds the window must be unfocused before alerts sound (default 30; 0 = instant)
pingo.ignorePatterns — substrings whose lines are ignored by detection
pingo.claudeHooks — host the Claude Code hook listener (default true)
pingo.hookPort — localhost port for the Claude Code hook listener (default 4100)
pingo.showVscodeNotifications — toggle native VS Code notifications (default true)
pingo.debug — write diagnostic logs to your temp dir for tuning detection
pingo.useCliFallback — also listen to the optional pingo <agent> CLI (default false)
pingo.port — localhost port of the optional CLI event server (default 4001)
Optional: CLI fallback
For shells/terminals where shell integration isn't available, the standalone
pingo <agent> CLI still works. Enable pingo.useCliFallback to also surface its
events in the extension. Events from both sources are de-duplicated.