pi-tripwire
Pi extension that shows relevant localhost servers in the footer.
Package details
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.