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

@averyyy/pi-client

v1.2.0-piclient.1

Published

Lightweight CLI wrapper that connects to a pi-server instance

Readme

@averyyy/pi-client

Client CLI for connecting Pi to a pi-server instance.

Install

npm i -g --ignore-scripts --legacy-peer-deps @averyyy/pi-client

--legacy-peer-deps avoids npm peer override warnings when upstream Pi is already installed globally.

Use

Connect to your server:

PI_SERVER_URL=https://pi-server.example.com pi-client

Send one prompt and exit:

PI_SERVER_URL=https://pi-server.example.com pi-client -p "Say exactly: ok"

Send a file or folder to the server:

PI_SERVER_URL=https://pi-server.example.com pi-client send /path/to/file-or-folder

The server saves it under its configured upload directory, which defaults to ~/.pi/upload_files.

Start the browser UI:

pi-client install npm:@averyyy/pi-tau-codex
# or: pi install npm:@averyyy/pi-tau-codex
PI_SERVER_URL=https://pi-server.example.com pi-client web

The web command starts pi-client in Tau mirror mode. Install the standalone @averyyy/pi-tau-codex extension into the shared ~/.pi/agent settings first. Tau listens on http://127.0.0.1:1838 by default.

Server Auth

If your server uses an auth token, set it on the client:

PI_SERVER_AUTH_TOKEN=your-token PI_SERVER_URL=http://127.0.0.1:4217 pi-client

Use matching client and server releases. Provider credentials configured on the server are sufficient for chat, image generation, classifiers, and compaction. Client-side credentials, environment overrides, and request headers are forwarded when supplied.

The authenticated model catalog includes chat, image, and classifier models with availability tracked separately for each model type. Extensions and codemode scripts use the normal model registry APIs; inference runs on the server. MCP connections, tools, and provider login remain in the client process.

PI_CLIENT_MAX_REQUEST_KB=64 limits each client HTTP request body to 65,536 UTF-8 bytes. Larger prompts, tool definitions, images, operation payloads, and session trees use the shared chunk transport.

Prompt Cache Warming

Cache warming replays eligible requests through pi-server with the original prompt, tools, model, and cache options, limiting output to one token. The default streaming mode warms during active agent runs. To also warm while waiting for input, set this in your global Pi settings:

{
  "cacheWarming": "idle"
}

The server confirms the cache retention used by each request, and the client uses that policy for refresh timing and cost decisions. The model must declare a prompt-cache lifetime, and the expected savings must reach $0.05. /session shows the warming decision. Set cacheWarming to "off" to disable it. Refresh usage counts toward session totals without adding model messages; cancellation and changed model/context stop warming. Requests use the same 64 KiB transport limit.

Devin Pro

Update both @averyyy/pi-client and @averyyy/pi-server to a version with native Devin support. Start pi-client with your server connection configured, then:

/login devin
/model devin/swe-2-medium

Login opens Devin's browser OAuth flow and saves the session token in Pi's normal credential store. The account catalog loads after login; pi-client --list-models swe-2 lists the discovered SWE-2 variants. Choose the exact variant (for example swe-2-high or swe-2-max) to change effort. Known configured SWE-2 IDs remain selectable before account discovery finishes; successful discovery supplies the account's models and limits, and discovery failures are reported.

Authentication and model discovery may contact Devin from the client. Model inference, including compaction, goes through pi-client → pi-server → Devin. Direct Devin inference rejects PI_SERVER_MODE=true. Pi continues to own tools, agent loops, session history, and subagents. No Devin CLI installation or provider extension is needed. Remove conflicting Devin extensions before enabling the native provider.

The integration exposes concrete models, not Devin's Fusion/router harness. A revoked session requires /login devin again; no refresh endpoint or token lifetime is invented.

Protocol references: pi-devin, pi-devin-provider, and the Devin protocol descriptors.

Update

pi-client update installs the latest client and server packages without stopping active client sessions. Existing sessions block new prompts until you run /reload; /reload restarts that session on the new runtime and resumes its persisted history.

Related Package

Install the server separately:

npm i -g --ignore-scripts @averyyy/pi-server