npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@taylorsatula/pi-overwatch

v0.1.0

Published

Weighted-rhythm Pi transcript sidecar monitor that emits structured observer telemetry and contributes the latest output to pi-hud without writing messages into the transcript.

Downloads

84

Readme

pi-overwatch

Invisible Pi transcript sidecar monitor. It watches finalized transcript messages and tool executions, digests non-overlapping weighted transcript chunks with a separate model, emits pi-overwatch:result on Pi's extension event bus, contributes the latest output as a structured Pi Overwatch section to @taylorsatula/pi-hud, and writes JSONL observer notes under ~/.pi/agent/pi-overwatch/.

Each record includes structured metacognitive orientation: a summary, named entities, concrete grounding facts, code/config context, inferred musings, optional open questions/concerns, and a short observer-style narration of what the foreground model appears to be tracking while it works. The HUD contribution is omitted until the first monitor record is produced, then returns a compact nested JSON object with state/confidence, summary/orientation/narration, capped entity/fact/context/musing arrays, and chunk metadata (start_index_inclusive, end_index_exclusive, item_count, weight, threshold, total items, model).

Rhythm trigger

Pi Overwatch tracks normalized transcript items (user, assistant, tool_call, tool_result) and accumulates weights until the chunk reaches the trigger threshold. Defaults:

| Item | Weight | |------|--------| | user | 1.0 | | assistant | 0.8 | | tool_call | 0.20 | | tool_result | 0.35 | | errored tool_result | 0.8 |

The default trigger threshold is 8.0. Each JSONL record stores chunkWeight and triggerWeight.

Output contract

Pi Overwatch asks the monitor model for normal text output containing exactly one raw JSON object. It does not pass tools or tool_choice; OpenRouter/local models that try to enter tool-use mode are avoided by contract. The extension parses the text response as JSON, accepting bare JSON, fenced JSON, or the first balanced-looking object embedded in text.

Usage

Install or enable this local package by adding it to ~/.pi/agent/settings.json packages:

"/Users/taylut/.pi/packages/pi-overwatch"

Configure the monitor model in ~/.pi/agent/settings.json:

"piOverwatch": {
  "provider": "openrouter",
  "model": "google/gemma-4-26b-a4b-it"
}

PI_OVERWATCH_MODEL="provider:model-id" can override JSON config for one process. The legacy PI_TRANSCRIPT_MONITOR_MODEL variable is also accepted while migrating.

Command

  • /pi-overwatch — show the latest in-memory structured output as a notification.

HUD integration

When @taylorsatula/pi-hud is loaded, Pi Overwatch emits a hud_section contribution with label Pi Overwatch. The section value is structured JSON, not a string blob, so the foreground model receives the latest sidecar observer note as a nested HUD object without writing it to the transcript. After a new sidecar record is produced, Pi Overwatch emits hud_refresh so pi-hud rebuilds its cached payload immediately instead of waiting for the next standard refresh event.