earendil-works/pi

AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 45 minutes ago
Added to GitGenius on January 31st, 2026
Created on August 9th, 2025
Open Issues & Pull Requests: 120 (+1)
Number of forks: 10,801
Total Stargazers: 86,853 (+80)
Total Subscribers: 289 (+0)

Issue Activity (beta)

Open issues: 100
New in 7 days: 211
Closed in 7 days: 196
Avg open age: 15 days
Stale 30+ days: 23
Stale 90+ days: 13

Recent activity

Opened in 7 days: 174
Closed in 7 days: 159
Comments in 7 days: 367
Events in 7 days: 1,327

Top labels

  • bug (2,180)
  • no-action (1,622)
  • possibly-openclaw-clanker (722)
  • closed-because-weekend (483)
  • inprogress (263)
  • closed-because-refactor (224)
  • closed-because-bigrefactor (213)
  • last read (199)

Repository Insights (GitGenius)

Median issue/PR response: 0.1 hours
Mean response time: 2.5 days
90th percentile: 42.8 hours
Tracked items: 4,532

Most active contributors

Sign in to see contributor activity.

Detailed Description

The Pi Agent Harness is an AI agent toolkit written in TypeScript that provides a unified interface for building and deploying intelligent agents. The project centers on three core packages: a unified multi-provider LLM API supporting OpenAI, Anthropic, Google, and other providers; an agent runtime with tool calling and state management capabilities; and an interactive coding agent CLI. Additionally, the toolkit includes a terminal UI library with differential rendering for building user interfaces.

The coding agent CLI, published as @earendil-works/pi-coding-agent on npm, serves as the primary user-facing component and allows developers to interact with AI agents through a command-line interface. The agent runtime provides the underlying infrastructure for tool calling and state management, while the unified LLM API abstracts away provider-specific differences, allowing agents to work seamlessly across multiple language model providers. A terminal UI library rounds out the toolkit, enabling the creation of responsive terminal-based interfaces with efficient differential rendering.

The project emphasizes security and supply-chain hardening through several mechanisms. Direct external dependencies are pinned to exact versions while internal workspace packages remain version-ranged. The npm configuration enforces exact saves and a minimum release age of 2 days to avoid same-day dependency releases. The package-lock.json file serves as the dependency ground truth, and pre-commit hooks prevent accidental lockfile commits unless explicitly overridden. The published CLI package includes an npm-shrinkwrap.json to pin transitive dependencies for end users. Release processes incorporate smoke testing with isolated npm and Bun installations, and CI workflows run regular npm audits with signature verification.

The toolkit does not include built-in permission systems for restricting filesystem, process, network, or credential access, running instead with the permissions of the launching user and process. The documentation provides three containerization patterns for stronger isolation: a Gondolin extension that routes tools into a local Linux micro-VM, plain Docker containerization for simple isolation, and OpenShell for policy-controlled sandboxing.

The project maintains a Discord community and encourages contributors to share open source coding agent sessions through a dedicated sharing tool, badlogic/pi-share-hf, to help improve agents with real-world task data rather than toy benchmarks. The repository is licensed under MIT and includes comprehensive contribution guidelines in CONTRIBUTING.md and agent-specific rules in AGENTS.md.

pi
by
earendil-worksearendil-works/pi

Repository Details

Fetching additional details & charts...