← all repositories
earendil-works/pi

A coding agent that audits its own npm dependencies

The pi project bundles a CLI coding agent with an unusually paranoid approach to supply-chain security.

pi
Velocity · 7d
+200
★ / day
Trend
steady
star history

What it does

Pi is a TypeScript monorepo centered on a coding agent CLI, plus supporting libraries: a unified LLM API wrapper (pi-ai), an agent runtime with tool calling (pi-agent-core), and a terminal UI library with differential rendering (pi-tui). There’s also a separate Slack/chat automation repo. The coding agent itself is interactive and self-extensible — you can ask it to explain its own codebase.

The interesting bit

Most agent projects treat dependencies as an afterthought. Pi treats every npm change as a reviewed code change: exact-version pinning, a two-day minimum release age, pre-commit hooks that block accidental lockfile commits, and a shrinkwrap with an explicit allowlist for lifecycle scripts. The paranoia is the feature.

Key highlights

  • Unified LLM API across OpenAI, Anthropic, Google, and others via pi-ai
  • Agent runtime with tool calling and state management in pi-agent-core
  • Differential-rendering TUI library (pi-tui) — not just another React-for-terminals clone
  • Publishes OSS session data to Hugging Face to improve agents on real-world tasks instead of benchmarks
  • Supply-chain hardening includes --ignore-scripts by default, signature audits, and release smoke tests in isolated installs

Caveats

  • New issues and PRs from new contributors are auto-closed by default; maintainers review them daily, but it’s a friction point
  • LLM-dependent tests are skipped without API keys, so full test coverage requires external credentials
  • The Slack/chat integration lives in a separate repo (pi-chat), not this monorepo

Verdict

Worth a look if you’re building agent infrastructure and want supply-chain practices you can steal. Skip if you need a drop-in coding agent with no setup friction — the security rigor trades off against convenience.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.