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

@hunvreus/heypi

v0.2.0-beta.1

Published

Chat agents for your team, with approvals and sandboxed tools.

Readme

heypi

Team chat agents with approvals, audit, and sandboxed tools.

heypi is a lightweight TypeScript framework that wraps around Pi to make it easy to create team chat agents: adapters, approvals, scoped runtime tools, persisted threads, memory, skills, encrypted secret handoff, generated-file attachments, scheduling, admin, and CLI diagnostics.

The product focus is governed chat-ops: agents that work in shared Slack, Discord, Telegram, and trusted webhook contexts while preserving approval gates, audit trails, and operator visibility. heypi runs as a long-running Node.js service you own; it is not a durable workflow replay platform.

Install

Requirements:

  • Node.js 22 or newer.
  • Optional for document conversion: Python 3 plus uv, or Python 3 with Microsoft MarkItDown already installed.

Create a new app:

npm create heypi@latest

For an existing TypeScript app:

npm install @hunvreus/heypi

Minimal app

import { createHeypi, loadAgent, slack, workspace } from "@hunvreus/heypi";

export default createHeypi({
  state: { root: "./state" },
  adapters: [
    slack({
      mode: "socket",
    }),
  ],
  agent: loadAgent("./agent", { model: "openai/gpt-5.4-mini" }),
  runtime: { root: workspace("./workspace") },
});

Run npm run dev in a generated app and open the admin URL to send local test messages from Chats. The generated dev script runs heypi dev, which starts the configured adapters, enables loopback-only local test routes, and turns the admin panel on by default when omitted. npm run start starts the configured app without dev-only defaults.

OPENAI_API_KEY is read by Pi through its normal provider auth path. Pass model explicitly or set HEYPI_MODEL; heypi does not pick a model implicitly.

Agent files

Most app-specific behavior should live under agent/. index.ts stays for operational wiring: adapters, state, runtime, admin, and deployment policy.

agent/
├─ instructions.md # identity, behavior, voice, and standing rules
├─ system.md       # optional advanced system prompt override
├─ tools/          # trusted TypeScript tools
├─ jobs/           # scheduled jobs
├─ skills/         # bundled Pi skills
└─ extensions/     # explicit Pi extensions

This folder convention is the default authoring model. loadAgent("./agent") discovers tools, jobs, skills, and extensions from these paths, and discovered tool filenames become model-facing names when the tool omits name.

Files under agent/tools/ and agent/jobs/ should import from @hunvreus/heypi/authoring. Evals live under root evals/ and use the same authoring entrypoint. The app entrypoint imports from @hunvreus/heypi.

Documentation

Start with docs/index.md.

Runtime

just-bash is built in and is the default runtime. Optional provider packages add stronger isolation:

Both provider packages implement heypi's runtime API, so core bash, file, and search tools run through the selected sandbox.

Examples

License

MIT