pi-tripwire

Pi extension that shows relevant localhost servers in the footer.

Packages

Package details

extension

Install pi-tripwire from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-tripwire
Package
pi-tripwire
Version
0.0.8
Published
Sep 9, 2026
Downloads
224/mo · 30/wk
Author
wdphoto
License
MIT
Types
extension
Size
34 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/tripwire/index.ts"
  ]
}

Security note

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

README

Tripwire

Tripwire is an extension for Pi that quietly shows relevant local listening processes in Pi's default footer and highlights servers attributed to the current Pi session.

Example:

hugo:1313 node:5173 python:8000

It is meant to answer: “what localhost ports are relevant, and what did Pi start for me?”

Servers spawned by this Pi session's agent shell are highlighted (accent). Other relevant servers are shown dimmed instead of hidden, so the footer also answers “what local dev servers are already running?” There are two dimmed tiers, both relevance heuristics rather than proof of who started them:

  • project — its process's working directory is under the current project (any command).
  • external — a recognizable dev-server command (node, hugo, python, …) running elsewhere.

Install

Install from npm:

pi install npm:pi-tripwire

Or install from GitHub:

pi install git:github.com/wdphoto/pi-tripwire

Pinned installs are also supported:

pi install npm:pi-tripwire@0.0.8
pi install git:github.com/wdphoto/pi-tripwire@v0.0.8

Then restart Pi or run:

/reload

Project-only install

If you only want Tripwire in one project:

cd /path/to/project
pi install -l npm:pi-tripwire
# or
pi install -l git:github.com/wdphoto/pi-tripwire

Then run /reload in Pi.

Local checkout install

If you cloned this repo and want Pi to load your local copy:

pi install /path/to/pi-tripwire

Or project-only:

cd /path/to/project
pi install -l /path/to/pi-tripwire

After editing the local checkout, run /reload in Pi.

Compatibility

This revision is checked against Pi 0.84.1 and Node.js 22.19 or newer. macOS uses lsof; Linux combines lsof and ss results when available. Windows listener discovery is not yet supported. Process visibility and attribution remain subject to operating-system permissions; especially, reading a process's environment is best-effort on macOS and can be limited by permissions.

Notes

Tripwire shows servers spawned by Pi agent shell commands in accent. Other relevant servers are shown dimmed when they run under the current project's working directory (any command) or match a known dev-server command such as node, hugo, or python when not under the project. Both dimmed tiers are relevance heuristics, not proof of user ownership.

Attribution does not wrap or replace Pi's built-in bash/powershell. Pi injects a native PI_SESSION_ID environment marker into commands its agent shell spawns (user !/!! commands are not tagged by Pi, though they may inherit the environment from the parent Pi process), and Tripwire reads it from listening processes to decide the accent tier. Your configured shell (shellPath), command prefix, and Pi's own PI_* environment are never touched or mutated. Legacy PI_TRIPWIRE_* markers from older Tripwire versions are honored only when the native marker is absent.

If another extension replaces Pi's bash tool in a way that drops the environment injection, Tripwire fails closed (no accent tier) rather than guessing; it never changes visible command text.

Tripwire only observes. It does not stop processes, restart them, or open browsers, and it never sends full command lines or process environments to the model.