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

pi-outpost

v0.6.4

Published

A web chat UI for the pi coding agent — run it with npx, no clone, no build.

Readme

pi-outpost

A web chat UI for the pi coding agent — streaming replies, collapsible thinking, live tool cards (bash, edit, …), a file browser, git integration, and a conversation tree you can branch from.

npx pi-outpost init   # writes a starter pi-outpost.config.json here
npx pi-outpost        # http://127.0.0.1:3141/

Requires Node ≥ 22.19 and pi configured (~/.pi/agent/auth.json, or a provider variable like ANTHROPIC_API_KEY).

It will not start without a configuration file

That is deliberate. The config decides the agent's working directory, which tools it gets, and whether it can write files or run bash — and inferring that from whatever directory you happen to be standing in is not a decision anyone wants made for them. init writes the safe version (read-only, no bash) for you to open up as needed.

Configuration

The first of these that exists is read, and only that one — configurations are never merged, so the file you are reading is the configuration that is running:

  1. --config <path>
  2. --profile <name><user config dir>/profiles/<name>.json
  3. $PI_OUTPOST_CONFIG
  4. $PI_OUTPOST_PROFILE<user config dir>/profiles/<name>.json
  5. ./pi-outpost.config.json
  6. <user config dir>/config.json

<user config dir> is $XDG_CONFIG_HOME/pi-outpost, or ~/.config/pi-outpost. Not sure which one won, or why a setting has the value it has? pi-outpost config prints the resolved configuration and the file it came from, without starting anything.

Profiles let you configure once and run anywhere: pi-outpost --profile work reads ~/.config/pi-outpost/profiles/work.json, from any directory. A profile is an ordinary config file.

Precedence, for any setting that appears in more than one place: flag > environment variable > config file > default.

| Flag | Effect | |------|--------| | --config <path> | Configuration file to use | | --profile <name> | Named profile from the user config directory | | --cwd <dir> | Directory the agent works in | | --agent-dir <dir> | pi config/session store (default ~/.pi/agent) | | --port <n> / --host <addr> | Where to listen (default 127.0.0.1:3141) |

Environment: PI_OUTPOST_PORT (falls back to PORT), PI_OUTPOST_HOST, PI_OUTPOST_CWD, PI_OUTPOST_AGENT_DIR, PI_OUTPOST_TOKEN.

Security

The agent has file and (optionally) bash tools. The server binds to 127.0.0.1 by default and validates the WebSocket Origin.

  • There is no --token flag on purpose: a secret on the command line is readable by anyone who can list processes. Use PI_OUTPOST_TOKEN or the file's server.token.
  • Binding off loopback (--host 0.0.0.0) requires a token — the server refuses to start otherwise, because the agent's tools would be reachable by anything that can route to the host.
  • Sandbox the agent (sandbox.root, allowWrite, allowBash) for anything beyond your own machine. The effective sandbox is printed at every start.

Full documentation: github.com/laurentftech/pi-outpost.

License

MIT