@abarisain/pi-silent-turn

Let an agent end a background turn without answering — a curation gate for relayed reports, schedules and peer messages when proactive push is on

Packages

Package details

extension

Install @abarisain/pi-silent-turn from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@abarisain/pi-silent-turn
Package
@abarisain/pi-silent-turn
Version
0.1.0
Published
Aug 18, 2026
Downloads
104/mo · 14/wk
Author
arnaudbarisain
License
MIT
Types
extension
Size
8.2 KB
Dependencies
0 dependencies · 2 peers
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

pi-silent-turn

Lets an agent end a background turn without saying anything.

Bridges, schedulers and peer extensions start turns nobody asked for: a relayed status report, a cron tick, a message from another session. With proactive push enabled, whatever the agent says at the end of one of those turns is delivered to the user — so "just don't reply" is not something a model can do reliably. It always says something, and that something buzzes your phone.

This adds a real exit:

end_turn_silently({ reason: "duplicate of the report core already relayed" })

The tool aborts the run from inside itself, so the turn ends with no completed assistant block for a bridge to project. Useful results still go out as an ordinary reply — the agent gets a curation gate rather than an on/off switch.

It refuses on user-facing turns

A turn that began with an input event — typed in the terminal, or delivered by a bridge as a user message (sendUserMessage) — is a question someone is waiting on. Silence there is a bug, not curation, so the tool refuses and says so. Background turns arrive as custom messages (sendMessage) and fire no input event, which is exactly what this distinguishes.

Investigate before deciding — tool calls are never delivered, so the agent can read the report, search its memory and compare against what the user already has. What it must not do is write prose first: completed text blocks are what a bridge projects, so a "let me check…" line can already be on its way before the tool runs.

Install

pi install npm:@abarisain/pi-silent-turn

/silent-turn-last shows why the last turn was dropped — the reason is recorded locally and never sent to the user.

Notes

  • Suppression relies on the run ending before a final block exists. A bridge that projects partial output may still deliver text written before the call.
  • The tool is available on every turn; only its refusal distinguishes them, so the model still needs to know when the quiet path is appropriate. Say so in your agent's prompt.

MIT.