@diegopetrucci/pi-brrr

A pi extension that sends brrr push notifications when pi is ready for input.

Packages

Package details

extension

Install @diegopetrucci/pi-brrr from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@diegopetrucci/pi-brrr
Package
@diegopetrucci/pi-brrr
Version
0.1.0
Published
May 23, 2026
Downloads
not available
Author
diegopetrucci
License
MIT
Types
extension
Size
10.5 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

brrr

A pi extension that sends brrr push notifications when pi finishes an agent turn and is ready for input.

Install

Standalone npm package

pi install npm:@diegopetrucci/pi-brrr

Collection package

pi install npm:@diegopetrucci/pi-extensions

GitHub package

pi install git:github.com/diegopetrucci/pi-extensions

Then reload pi:

/reload

Configuration

Config files are merged, with project config overriding global config:

  • ~/.pi/agent/extensions/brrr.json
  • <project>/.pi/brrr.json

The default config expects your webhook in BRRR_WEBHOOK_URL:

export BRRR_WEBHOOK_URL='https://api.brrr.now/v1/br_...'

A ready-to-copy sample file is included at brrr.example.json.

Example:

{
  "enabled": true,
  "onlyWhenInteractive": true,
  "webhook": "$BRRR_WEBHOOK_URL",
  "idleSeconds": 20,
  "title": "Pi finished",
  "message": "Pi finished working in '{project}'.",
  "includeLastAssistantMessage": true,
  "sound": "",
  "openUrl": "",
  "imageUrl": ""
}

Commands

  • /brrr shows whether notifications are enabled, whether the webhook resolves, and the idle threshold.

Config fields

  • enabled: master on/off switch
  • onlyWhenInteractive: skip notifications in print / non-UI mode
  • webhook: brrr webhook URL or an environment reference like $BRRR_WEBHOOK_URL
  • idleSeconds: only send when macOS has been idle for at least this many seconds; set to null to disable idle gating
  • title: notification title; supports {project} and {cwd}
  • message: fallback notification body; supports {project} and {cwd}
  • includeLastAssistantMessage: use the final assistant message as the notification body when available
  • sound: optional brrr sound value
  • openUrl: optional URL to open from the notification
  • imageUrl: optional image URL

Notes

  • Hooks the agent_end event.
  • The extension sends directly to the brrr webhook; it does not require the brrr CLI at runtime.
  • By default, notifications are skipped unless the Mac has been idle for at least 20 seconds.