@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.11
Published
Jul 25, 2026
Downloads
976/mo · 307/wk
Author
diegopetrucci
License
MIT
Types
extension
Size
12.1 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 has fully settled 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-config-dir>/agent/extensions/brrr.json
  • <project>/<pi-config-dir>/brrr.json

Here <pi-config-dir> is Pi's runtime config directory name (CONFIG_DIR_NAME; .pi by default). Project config is only read after Pi reports that the project is trusted.

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_settled event so automatic retries, compaction retries, and queued follow-ups do not trigger intermediate notifications.
  • 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.