pi-notify-core is a small shared library for Pi notification extensions.
npm package: @rbright/pi-notify-core
It provides:
- turn-completion detection/wiring helpers (
agent_start,message_end,agent_end) - deterministic text sanitization/truncation for notifications
Pi agent project: https://github.com/badlogic/pi-mono
bun add @rbright/pi-notify-core
# or
npm install @rbright/pi-notify-coreimport { registerTurnCompletionHooks, sanitizeNotificationText } from '@rbright/pi-notify-core';
registerTurnCompletionHooks(pi, () => {
const title = sanitizeNotificationText('Pi', 'Pi', 64);
const body = sanitizeNotificationText('Turn complete — awaiting feedback', 'Turn complete', 180);
sendNotification(title, body);
});Registers completion handlers with dedupe per agent run:
- resets state on
agent_start - triggers on final assistant
message_end(non-tool, non-error, non-aborted) - falls back to
agent_end
Lower-level tracker if you need custom event wiring.
Returns true for assistant messages that represent a completed turn.
Strips control chars/semicolons, normalizes whitespace, and truncates with ….
Truncates string with ellipsis behavior used by sanitizer.
just deps
just lint
just typecheck
just test
just build
just check
just precommit-install
just precommit-runManual publish (@rbright/pi-notify-core):
bun run check
bun run build
npm publish --access publicAutomated publish is available via GitHub Actions (.github/workflows/publish.yml) and runs on:
workflow_dispatch- tag pushes matching
v*
Required repository secret:
NPM_TOKEN(npm token with publish permission)