notifications on
Enable desktop notifications.- Sets
desktop_notifications: trueinconfig.json - Independent from sound playback (controlled by
peon pause) - Mobile notifications unaffected
notifications off
Disable desktop notifications.- Want voice feedback but no visual distractions
- Sounds continue playing
- Mobile notifications continue (if configured)
notifications overlay
Use large overlay banners (default).- Large, prominent banners
- Visible on all screens/monitors
- macOS: JXA Cocoa overlay with custom themes
- WSL/MSYS2: Windows Forms popup
- Clicking focuses your terminal (Ghostty, iTerm2, Warp, Zed, Terminal.app)
- iTerm2: clicks focus the correct tab/pane/window
config.json):
| Theme | Style |
|---|---|
| (default) | Standard banner with project name and message |
jarvis | Circular HUD with rotating arcs and progress ring |
glass | Glassmorphism panel with accent bar and timestamp |
sakura | Zen garden with bonsai tree and cherry blossom petals |
config.json:
notifications standard
Use standard system notifications.- macOS:
terminal-notifierorosascript - WSL/MSYS2: Windows toast notifications
- Linux:
notify-send - Smaller, less intrusive
- Click-to-focus (when
terminal-notifierinstalled on macOS)
notifications position
Get or set notification position on screen.Get Current Position
Set Position
top-lefttop-center(default)top-rightbottom-leftbottom-centerbottom-right
- Overlay notifications (macOS, WSL, MSYS2)
- Does not affect standard system notifications
notifications dismiss
Get or set auto-dismiss time in seconds.Get Current Dismiss Time
Set Dismiss Time
0= notifications stay until clicked> 0= auto-dismiss after N seconds- Default:
4seconds
notifications label
Get, set, or reset the project label override for notifications.Get Current Label
Set Label Override
- Overrides auto-detected project name in notification titles
- Max length: 50 characters
- Takes precedence over
.peon-labelfile and git repo name
Reset to Auto-Detection
notification_title_override(set via this command).peon-labelfile in project rootproject_name_mappattern match inconfig.json- Git repository name
- Directory name
notifications template
Get, set, or reset message format templates for events.List All Templates
Get Single Template
Set Template
| Key | Event | Default |
|---|---|---|
stop | Task completes | {project} |
permission | Permission required | {project} |
error | Tool/command error | {project} |
idle | Session idle | {project} |
question | Agent asks question | {project} |
| Variable | Description | Example |
|---|---|---|
{project} | Project name (auto-detected or overridden) | my-app |
{summary} | Event summary (from hook JSON) | Task completed |
{tool_name} | Tool name (for permission events) | Bash |
{status} | Event status | success |
{event} | Raw event name | Stop |
Reset All Templates
notifications test
Send a test notification.- Sends notification with title
peon-pingand messageThis is a test notification - Uses current
notification_style(overlay or standard) - Respects
notification_positionandnotification_dismiss_seconds - Fails if
desktop_notifications: false
Independent Controls
PeonPing has three independent switches:| Control | Config Key | Affects |
|---|---|---|
peon pause / peon resume | enabled | Sounds only |
peon notifications on/off | desktop_notifications | Desktop popups only |
peon mobile on/off | mobile_notify.enabled | Phone push only |
Examples
Minimal Distractions
Persistent Reminders
Custom Project Label
secret-project.
Custom Notification Format
Related Commands
peon status— Shows notification style, position, and dismiss timepeon pause/peon resume— Control sounds independentlypeon mobile on/off— Control phone push independently