earendil-works/piPublic

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

AI summary: A self-extensible coding agent harness and CLI built for complex, multi-step software engineering tasks.

Stars
112.4K
+281 today
Forks
14.3K
Watchers
341
Open issues
167
Open PRs
68
Contributors
~296
Commits
6.6K
Branches
73

TypeScriptMITCreated Aug 9, 2025Last push todayLatest release v0.87.1+2.6K stars this week+10.6K this month

Quick answers

What is pi?
A self-extensible coding agent harness and CLI built for complex, multi-step software engineering tasks.
What does pi do?
Pi is an interactive, extensible coding assistant designed for serious engineering workflows. It provides a robust agent runtime that handles complex state management, tool calling, and context window optimization. Unlike simple chat interfaces, Pi acts as a harness that wraps LLMs with deep system access, allowing the agent to read file systems, execute bash commands, and manage its own capabilities. Its standout feature is its self-extensibility, enabling the agent to write and integrate new tools for itself on the fly to solve novel problems. It unifies multi-provider LLM APIs to ensure seamless operation across different foundation models.
Who is pi for?
Advanced software engineers and AI tinkerers who want a powerful, extensible local coding assistant that can act autonomously on their machine. Requires familiarity with TypeScript, CLI environments, and LLM APIs.
How do I get started with pi?
npm install -g @earendil-works/pi-coding-agent
How popular is pi on GitHub?
earendil-works/pi has 112,408 stars and 14,255 forks on GitHub, and gained 2,640 stars in the last 7 days.
What license does pi use?
earendil-works/pi is released under the MIT license.

Star history

since Jul 27, 2026
050K100KJul 2026Aug 2026Sep 2026Oct 2026
112.4K stars as of Oct 4, 2026. Measured daily since Jul 27, 2026; GitHub no longer exposes earlier star timestamps.

Update history

1 recorded
  • Oct 4, 2026Previously tracked as badlogic/pi-mono; its 1 daily snapshot and 16 trending appearances were merged into this profile. Stars: 79,652 on 2026-07-28 under the old name, 112,372 on 2026-10-04 (+32,720).

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 7 commits2025-10-06: 22 commits2025-10-07: 1 commit2025-10-08: 16 commits2025-10-09: 20 commits2025-10-10: 7 commits2025-10-11: 8 commits2025-10-12: 5 commits2025-10-13: 2 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 2 commits2025-10-18: 3 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 3 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 5 commits2025-10-27: 0 commits2025-10-28: 1 commit2025-10-29: 4 commits2025-10-30: 2 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 4 commits2025-11-11: 44 commits2025-11-12: 61 commits2025-11-13: 30 commits2025-11-14: 6 commits2025-11-15: 1 commit2025-11-16: 11 commits2025-11-17: 3 commits2025-11-18: 6 commits2025-11-19: 7 commits2025-11-20: 25 commits2025-11-21: 14 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 6 commits2025-11-25: 2 commits2025-11-26: 19 commits2025-11-27: 18 commits2025-11-28: 2 commits2025-11-29: 7 commits2025-11-30: 0 commits2025-12-01: 8 commits2025-12-02: 33 commits2025-12-03: 15 commits2025-12-04: 28 commits2025-12-05: 29 commits2025-12-06: 12 commits2025-12-07: 7 commits2025-12-08: 14 commits2025-12-09: 60 commits2025-12-10: 23 commits2025-12-11: 15 commits2025-12-12: 30 commits2025-12-13: 28 commits2025-12-14: 5 commits2025-12-15: 17 commits2025-12-16: 11 commits2025-12-17: 28 commits2025-12-18: 21 commits2025-12-19: 45 commits2025-12-20: 25 commits2025-12-21: 16 commits2025-12-22: 37 commits2025-12-23: 7 commits2025-12-24: 46 commits2025-12-25: 31 commits2025-12-26: 31 commits2025-12-27: 33 commits2025-12-28: 47 commits2025-12-29: 56 commits2025-12-30: 28 commits2025-12-31: 48 commits2026-01-01: 39 commits2026-01-02: 36 commits2026-01-03: 120 commits2026-01-04: 43 commits2026-01-05: 47 commits2026-01-06: 54 commits2026-01-07: 27 commits2026-01-08: 47 commits2026-01-09: 45 commits2026-01-10: 23 commits2026-01-11: 38 commits2026-01-12: 39 commits2026-01-13: 67 commits2026-01-14: 24 commits2026-01-15: 18 commits2026-01-16: 53 commits2026-01-17: 26 commits2026-01-18: 23 commits2026-01-19: 31 commits2026-01-20: 7 commits2026-01-21: 26 commits2026-01-22: 36 commits2026-01-23: 20 commits2026-01-24: 31 commits2026-01-25: 65 commits2026-01-26: 51 commits2026-01-27: 7 commits2026-01-28: 14 commits2026-01-29: 29 commits2026-01-30: 37 commits2026-01-31: 11 commits2026-02-01: 47 commits2026-02-02: 21 commits2026-02-03: 36 commits2026-02-04: 28 commits2026-02-05: 41 commits2026-02-06: 43 commits2026-02-07: 15 commits2026-02-08: 20 commits2026-02-09: 10 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 19 commits2026-02-13: 5 commits2026-02-14: 1 commit2026-02-15: 0 commits2026-02-16: 1 commit2026-02-17: 8 commits2026-02-18: 1 commit2026-02-19: 4 commits2026-02-20: 3 commits2026-02-21: 0 commits2026-02-22: 9 commits2026-02-23: 6 commits2026-02-24: 3 commits2026-02-25: 6 commits2026-02-26: 10 commits2026-02-27: 14 commits2026-02-28: 1 commit2026-03-01: 0 commits2026-03-02: 20 commits2026-03-03: 14 commits2026-03-04: 28 commits2026-03-05: 23 commits2026-03-06: 23 commits2026-03-07: 14 commits2026-03-08: 13 commits2026-03-09: 8 commits2026-03-10: 2 commits2026-03-11: 0 commits2026-03-12: 3 commits2026-03-13: 13 commits2026-03-14: 42 commits2026-03-15: 11 commits2026-03-16: 5 commits2026-03-17: 24 commits2026-03-18: 22 commits2026-03-19: 14 commits2026-03-20: 21 commits2026-03-21: 10 commits2026-03-22: 8 commits2026-03-23: 11 commits2026-03-24: 10 commits2026-03-25: 7 commits2026-03-26: 7 commits2026-03-27: 20 commits2026-03-28: 2 commits2026-03-29: 22 commits2026-03-30: 7 commits2026-03-31: 5 commits2026-04-01: 5 commits2026-04-02: 6 commits2026-04-03: 5 commits2026-04-04: 5 commits2026-04-05: 7 commits2026-04-06: 10 commits2026-04-07: 0 commits2026-04-08: 11 commits2026-04-09: 9 commits2026-04-10: 0 commits2026-04-11: 3 commits2026-04-12: 0 commits2026-04-13: 10 commits2026-04-14: 25 commits2026-04-15: 29 commits2026-04-16: 43 commits2026-04-17: 25 commits2026-04-18: 8 commits2026-04-19: 6 commits2026-04-20: 36 commits2026-04-21: 12 commits2026-04-22: 31 commits2026-04-23: 32 commits2026-04-24: 39 commits2026-04-25: 7 commits2026-04-26: 1 commit2026-04-27: 30 commits2026-04-28: 14 commits2026-04-29: 20 commits2026-04-30: 30 commits2026-05-01: 14 commits2026-05-02: 15 commits2026-05-03: 20 commits2026-05-04: 24 commits2026-05-05: 10 commits2026-05-06: 10 commits2026-05-07: 25 commits2026-05-08: 12 commits2026-05-09: 5 commits2026-05-10: 14 commits2026-05-11: 6 commits2026-05-12: 4 commits2026-05-13: 11 commits2026-05-14: 5 commits2026-05-15: 6 commits2026-05-16: 13 commits2026-05-17: 21 commits2026-05-18: 35 commits2026-05-19: 11 commits2026-05-20: 28 commits2026-05-21: 8 commits2026-05-22: 13 commits2026-05-23: 17 commits2026-05-24: 3 commits2026-05-25: 3 commits2026-05-26: 6 commits2026-05-27: 18 commits2026-05-28: 29 commits2026-05-29: 23 commits2026-05-30: 13 commits2026-05-31: 2 commits2026-06-01: 5 commits2026-06-02: 18 commits2026-06-03: 7 commits2026-06-04: 8 commits2026-06-05: 2 commits2026-06-06: 1 commit2026-06-07: 9 commits2026-06-08: 15 commits2026-06-09: 31 commits2026-06-10: 21 commits2026-06-11: 3 commits2026-06-12: 13 commits2026-06-13: 13 commits2026-06-14: 9 commits2026-06-15: 17 commits2026-06-16: 23 commits2026-06-17: 5 commits2026-06-18: 44 commits2026-06-19: 14 commits2026-06-20: 11 commits2026-06-21: 3 commits2026-06-22: 24 commits2026-06-23: 36 commits2026-06-24: 5 commits2026-06-25: 20 commits2026-06-26: 7 commits2026-06-27: 2 commits2026-06-28: 2 commits2026-06-29: 4 commits2026-06-30: 14 commits2026-07-01: 12 commits2026-07-02: 7 commits2026-07-03: 6 commits2026-07-04: 2 commits2026-07-05: 5 commits2026-07-06: 17 commits2026-07-07: 4 commits2026-07-08: 8 commits2026-07-09: 30 commits2026-07-10: 13 commits2026-07-11: 6 commits2026-07-12: 0 commits2026-07-13: 9 commits2026-07-14: 10 commits2026-07-15: 4 commits2026-07-16: 26 commits2026-07-17: 18 commits2026-07-18: 0 commits2026-07-19: 4 commits2026-07-20: 25 commits2026-07-21: 27 commits2026-07-22: 16 commits2026-07-23: 12 commits2026-07-24: 16 commits2026-07-25: 17 commits2026-07-26: 2 commits2026-07-27: 23 commits2026-07-28: 17 commits2026-07-29: 22 commits2026-07-30: 39 commits2026-07-31: 61 commits2026-08-01: 28 commits2026-08-02: 12 commits2026-08-03: 28 commits2026-08-04: 42 commits2026-08-05: 65 commits2026-08-06: 50 commits2026-08-07: 33 commits2026-08-08: 10 commits2026-08-09: 3 commits2026-08-10: 16 commits2026-08-11: 58 commits2026-08-12: 38 commits2026-08-13: 29 commits2026-08-14: 69 commits2026-08-15: 22 commits2026-08-16: 17 commits2026-08-17: 63 commits2026-08-18: 33 commits2026-08-19: 49 commits2026-08-20: 28 commits2026-08-21: 4 commits2026-08-22: 7 commits2026-08-23: 13 commits2026-08-24: 17 commits2026-08-25: 25 commits2026-08-26: 35 commits2026-08-27: 9 commits2026-08-28: 15 commits2026-08-29: 7 commits2026-08-30: 7 commits2026-08-31: 19 commits2026-09-01: 29 commits2026-09-02: 14 commits2026-09-03: 27 commits2026-09-04: 18 commits2026-09-05: 12 commits2026-09-06: 1 commit2026-09-07: 11 commits2026-09-08: 7 commits2026-09-09: 10 commits2026-09-10: 18 commits2026-09-11: 8 commits2026-09-12: 5 commits2026-09-13: 6 commits2026-09-14: 5 commits2026-09-15: 7 commits2026-09-16: 11 commits2026-09-17: 17 commits2026-09-18: 19 commits2026-09-19: 11 commits2026-09-20: 23 commits2026-09-21: 17 commits2026-09-22: 17 commits2026-09-23: 13 commits2026-09-24: 15 commits2026-09-25: 17 commits2026-09-26: 2 commits2026-09-27: 0 commits2026-09-28: 9 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
6,030 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Landmark project

    112,408 stars

  • Very active

    6,030 commits in 52 weeks

  • Community-driven

    ~296 contributors

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    62 trending appearances

  • Top 10% tracked

    Rank 60 of 1135

What pi does

Pi is an interactive, extensible coding assistant designed for serious engineering workflows. It provides a robust agent runtime that handles complex state management, tool calling, and context window optimization. Unlike simple chat interfaces, Pi acts as a harness that wraps LLMs with deep system access, allowing the agent to read file systems, execute bash commands, and manage its own capabilities. Its standout feature is its self-extensibility, enabling the agent to write and integrate new tools for itself on the fly to solve novel problems. It unifies multi-provider LLM APIs to ensure seamless operation across different foundation models.

Advanced software engineers and AI tinkerers who want a powerful, extensible local coding assistant that can act autonomously on their machine. Requires familiarity with TypeScript, CLI environments, and LLM APIs.

  • Agent Harness Runtime: Robust core for managing multi-step reasoning and state.
  • Self-Extensibility: Allow the agent to generate and utilize new custom tools dynamically.
  • Interactive CLI: A powerful command-line interface for human-in-the-loop agentic workflows.
  • Deep System Access: Safely provide the agent with file system and bash execution capabilities.
  • Monorepo Architecture: Neatly separate the core agent logic from the CLI implementation.

Where teams use it

Complex Refactoring

Deploying the agent to traverse a large codebase, understand dependencies, and execute a multi-file refactor.

Automated Environment Setup

Asking the agent to read a complex README and execute the necessary bash commands to set up a local dev environment.

Dynamic Tool Creation

Providing a novel API and having the agent write a custom tool to interact with it, then immediately using that tool.

Human-In-The-Loop Debugging

Working alongside the agent in the CLI to trace obscure bugs across multiple services.

Getting started: npm install -g @earendil-works/pi-coding-agent

README

main branch

pi logo

Discord npm

New issues and PRs from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. See CONTRIBUTING.md.

Pi Agent Harness

This is the home of the Pi agent harness project including our self extensible coding agent.

To learn more about Pi:

All Packages

Package Description
@earendil-works/chord Standalone application-composition runtime for services, replicated state, RPC, and plugins
@earendil-works/pi-telemetry Vendor-neutral telemetry contracts, reference adapter, conformance tests, and typed schemas
@earendil-works/pi-ai Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.)
@earendil-works/pi-durable Durable conversation, task, and document runtime
@earendil-works/pi-agent-core Agent runtime with tool calling and state management
@earendil-works/pi-coding-agent Interactive coding agent CLI
@earendil-works/pi-tui Terminal UI library with differential rendering

For Slack/chat automation and workflows see earendil-works/pi-chat.

Permissions & Containerization

Pi does not include a built-in permission system for restricting filesystem, process, network, or credential access. By default, it runs with the permissions of the user and process that launched it.

If you need stronger boundaries, containerize or sandbox Pi. See packages/coding-agent/docs/containerization.md for three patterns:

  • Gondolin extension: keep pi and provider auth on the host while routing built-in tools and ! commands into a local Linux micro-VM.
  • Plain Docker: run the whole pi process in a local container for simple isolation.
  • OpenShell: run the whole pi process in a policy-controlled sandbox.

Contributing

See CONTRIBUTING.md for contribution guidelines and AGENTS.md for project-specific rules (for both humans and agents). Longer term plans for Pi can also be found in RFCs.

Development

npm install --ignore-scripts  # Install all dependencies without running lifecycle scripts
npm run build         # Refresh model data, then build all packages
npm run build:offline # Rebuild using existing model data without network access
npm run check         # Lint, format, and type check
./test.sh            # Run tests (skips LLM-dependent tests without API keys)
./pi-test.sh         # Run pi from sources (can be run from any directory)

Building standalone binaries from release source

GitHub releases include a versioned source archive covered by the release's SHA256SUMS file. Extract it and run the same build script used for the official standalone binaries:

VERSION="<release-version>"
tar -xzf "pi-${VERSION}-source.tar.gz"
cd "pi-${VERSION}"
./scripts/build-binaries.sh --offline-model-data --platform linux-x64 --out "$PWD/out"

The archive includes release model data and native prebuilds. --offline-model-data uses that model data without refreshing provider catalogs. The script installs dependencies and builds the executable with its runtime assets; pass --skip-install if dependencies are already provided.

Supply-chain hardening

We treat npm dependency changes as reviewed code changes.

  • Direct external dependencies are pinned to exact versions. Internal workspace packages remain version-ranged.
  • .npmrc sets save-exact=true and min-release-age=2 to avoid same-day dependency releases during npm resolution.
  • package-lock.json is the dependency ground truth. Pre-commit blocks accidental lockfile commits unless PI_ALLOW_LOCKFILE_CHANGE=1 is set.
  • npm run check verifies pinned direct deps, native TypeScript import compatibility, and the generated coding-agent shrinkwrap.
  • The published CLI package includes packages/coding-agent/npm-shrinkwrap.json, generated from the root lockfile, to pin transitive deps for npm users.
  • Release smoke tests use npm run release:local to build, pack, and create isolated npm and Bun installs outside the repo before tagging a release.
  • Local release installs, documented npm installs, and pi update --self use --ignore-scripts where supported.
  • CI installs with npm ci --ignore-scripts, and a scheduled GitHub workflow runs npm audit --omit=dev plus npm audit signatures --omit=dev.
  • Shrinkwrap generation has an explicit allowlist for dependency lifecycle scripts; new lifecycle-script deps fail checks until reviewed.

Share your OSS coding agent sessions

If you use Pi or other coding agents for open source work, please share your sessions.

Public OSS session data helps improve coding agents with real-world tasks, tool use, failures, and fixes instead of toy benchmarks.

For the full explanation, see this post on X.

To publish sessions, use badlogic/pi-share-hf. Read its README.md for setup instructions. All you need is a Hugging Face account, the Hugging Face CLI, and pi-share-hf.

You can also watch this video, where I show how I publish my pi-mono sessions.

I regularly publish my own pi-mono work sessions here:

License

MIT

pi.dev domain graciously donated by

Exy mascot
exe.dev

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

263 total
  1. v0.87.1v0.87.1Sep 22, 202625.3K downloads

    ### New Features - **Latest frontier models** — Use Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna through supported providers, including GitHub Copilot. See [Choose a Model](https://github.com/earendil-works/pi/blob/v0.87.1/packages/coding-agent/docs/models.md#select-a-model). - **Grok 4.7 by default for xAI** — New xAI sessions now default to Grok 4.7. See [Provider Authentication](https://github.com/earendil-works/pi/blob/v0.87.1/packages/coding-agent/docs/providers.md#use-an-api-key-from-the-environment). ### Added - Added inherited Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna support for GitHub Copilot. - Added inherited GPT-6 Sol and GPT-6 Luna support for OpenAI API keys and OpenAI Codex subscriptions. - Added inherited Claude Opus 5.5 support for Anthropic with adaptive thinking and a 1M context window. ### Changed - Changed the default xAI model to Grok 4.7. ### Fixed - Fixed split-turn compaction summaries being refused by Claude Fable 5.1 by clearly separating the conversation and using continuation-oriented instructions ([#9908](https://github.com/earendil-works/pi/pull/9908) by [@davidbrai](https://github.com/davidbrai)). - Fixed missing or invalid `--mode` values bei

  2. v0.87.0v0.87.0Sep 21, 20268.1K downloads

    ### New Features - **Canonical session context and extension boundaries** — Edit model context without rewriting history and add actionable lifecycle hooks. See [ContextEditEntry](https://github.com/earendil-works/pi/blob/v0.87.0/packages/coding-agent/docs/session-format.md#contexteditentry) and [extension events](https://github.com/earendil-works/pi/blob/v0.87.0/packages/coding-agent/docs/extensions.md#extension-events). - **Full-transcript context extensions** — Use `context_with_system` for per-request system-message transformations. See [`context_with_system`](https://github.com/earendil-works/pi/blob/v0.87.0/packages/coding-agent/docs/extensions.md#context_with_system). - **Per-model image input limits** — Configure cache-safe image resizing per model for attachments, `read`, and tool-result images. See [Image Input Limits](https://github.com/earendil-works/pi/blob/v0.87.0/packages/coding-agent/docs/models.md#image-input-limits). ### Breaking Changes - Removed the inherited `shouldStopAfterTurn` agent option. Use `finishTurn` and return `{ action: "end" }` instead. `finishTurn` runs before `turn_end` but applies the decision afterward, and it also receives error and aborted

  3. v0.86.1v0.86.1Sep 20, 20269.6K downloads

    ### New Features - **Meta Muse provider** — Sign in with Meta using `/login meta` or use `META_API_KEY` to access Muse Spark models. See [Meta (Muse subscription)](https://github.com/earendil-works/pi/blob/v0.86.1/packages/coding-agent/docs/providers.md#meta-muse-subscription). ### Added - Added Meta (Muse subscription) login via `/login meta` with automatic Model API key refresh, plus `META_API_KEY` support ([#9096](https://github.com/earendil-works/pi/pull/9096) by [@xl0](https://github.com/xl0)). ### Changed - Enabled Node's persistent compile cache before loading the bundled CLI runtime, reducing repeat launch time. ### Fixed - Fixed `/bug` descriptions dropping line breaks from pasted diagnostics. - Fixed `/bug` hints appearing for user cancellations and retryable provider failures such as service unavailability. - Fixed clipboard copy failing in containers and WSL without WSLg by restoring the OSC 52 fallback when no display is available, and added a verified Windows clipboard backend for WSL ([#9688](https://github.com/earendil-works/pi/issues/9688)). - Fixed inherited z.ai `Prompt too long` errors not being recognized as context overflow ([#9805](https://github.com/e

  4. v0.86.0v0.86.0Sep 19, 20264.1K downloads

    ### New Features - **Prompt cache warming** — Keep valuable prompt caches alive during long tool runs and optionally while idle using cost-aware refreshes. See [Cache Warming](https://github.com/earendil-works/pi/blob/v0.86.0/packages/coding-agent/docs/settings.md#cache-warming). - **Bug reporting** — Report problems with `/bug` using redacted diagnostics, optional transcripts, or exported ZIP archives. See [Reporting Bugs](https://github.com/earendil-works/pi/blob/v0.86.0/packages/coding-agent/docs/sessions.md#reporting-bugs). - **Transcript-aware prompt and tool updates** — Preserve instruction and tool changes across resume and branch navigation while retaining cached prefixes. See [`before_agent_start`](https://github.com/earendil-works/pi/blob/v0.86.0/packages/coding-agent/docs/extensions.md#before_agent_start). - **Offline Radius model catalog** — Select Radius models immediately, with cached and live catalogs overlaid when available. See [Radius](https://github.com/earendil-works/pi/blob/v0.86.0/packages/coding-agent/docs/providers.md#radius). - **Per-model compaction budgets** — Configure reserved and recent-token budgets by model. See [Per-model overrides](https://github.

  5. v0.85.1v0.85.1Sep 5, 202652.6K downloads

    ### New Features - **GPT-6 Astra** — Available through OpenAI API keys and OpenAI Codex subscriptions. See [API Keys](https://github.com/earendil-works/pi/blob/v0.85.1/packages/coding-agent/docs/providers.md#api-keys) and [OpenAI Codex](https://github.com/earendil-works/pi/blob/v0.85.1/packages/coding-agent/docs/providers.md#openai-codex). ### Added - Added GPT-6 Astra for OpenAI API keys and OpenAI Codex subscriptions. - Added five-times-faster mouse wheel scrolling while holding Alt in fullscreen mode ([#9166](https://github.com/earendil-works/pi/pull/9166) by [@xl0](https://github.com/xl0)). ### Fixed - Fixed configurable save keybindings in the model and thinking selectors ([#9149](https://github.com/earendil-works/pi/pull/9149) by [@rwachtler](https://github.com/rwachtler)). - Fixed SDK import failures caused by unintentionally publishing internal experimental code and dependencies in 0.85.0. The experimental `client` and `experimental/plugin` subpaths and server/client commands are now source-only through `pi-test.sh`; the supported local SDK and stdio RPC API are unchanged ([#9132](https://github.com/earendil-works/pi/issues/9132)). - Fixed mouse hover changing selectio

Code frequency

additions and deletions
+87.9K-87.9KWeek of 2025-09-21: +0 linesWeek of 2025-09-21: -0 linesWeek of 2025-09-28: +21,753 linesWeek of 2025-09-28: -6,797 linesWeek of 2025-10-05: +21,970 linesWeek of 2025-10-05: -21,524 linesWeek of 2025-10-12: +12,449 linesWeek of 2025-10-12: -6,039 linesWeek of 2025-10-19: +876 linesWeek of 2025-10-19: -933 linesWeek of 2025-10-26: +2,399 linesWeek of 2025-10-26: -673 linesWeek of 2025-11-02: +0 linesWeek of 2025-11-02: -0 linesWeek of 2025-11-09: +22,454 linesWeek of 2025-11-09: -25,739 linesWeek of 2025-11-16: +14,722 linesWeek of 2025-11-16: -9,874 linesWeek of 2025-11-23: +13,706 linesWeek of 2025-11-23: -4,921 linesWeek of 2025-11-30: +13,956 linesWeek of 2025-11-30: -7,053 linesWeek of 2025-12-07: +56,289 linesWeek of 2025-12-07: -41,862 linesWeek of 2025-12-14: +32,979 linesWeek of 2025-12-14: -20,985 linesWeek of 2025-12-21: +33,521 linesWeek of 2025-12-21: -20,679 linesWeek of 2025-12-28: +46,952 linesWeek of 2025-12-28: -34,751 linesWeek of 2026-01-04: +35,013 linesWeek of 2026-01-04: -22,065 linesWeek of 2026-01-11: +40,467 linesWeek of 2026-01-11: -22,273 linesWeek of 2026-01-18: +21,598 linesWeek of 2026-01-18: -12,292 linesWeek of 2026-01-25: +19,158 linesWeek of 2026-01-25: -10,583 linesWeek of 2026-02-01: +16,325 linesWeek of 2026-02-01: -5,825 linesWeek of 2026-02-08: +3,101 linesWeek of 2026-02-08: -1,570 linesWeek of 2026-02-15: +2,452 linesWeek of 2026-02-15: -1,278 linesWeek of 2026-02-22: +4,453 linesWeek of 2026-02-22: -3,095 linesWeek of 2026-03-01: +8,957 linesWeek of 2026-03-01: -2,508 linesWeek of 2026-03-08: +7,746 linesWeek of 2026-03-08: -2,720 linesWeek of 2026-03-15: +9,645 linesWeek of 2026-03-15: -3,805 linesWeek of 2026-03-22: +9,343 linesWeek of 2026-03-22: -4,113 linesWeek of 2026-03-29: +11,958 linesWeek of 2026-03-29: -5,168 linesWeek of 2026-04-05: +2,043 linesWeek of 2026-04-05: -1,069 linesWeek of 2026-04-12: +11,314 linesWeek of 2026-04-12: -5,606 linesWeek of 2026-04-19: +16,282 linesWeek of 2026-04-19: -4,908 linesWeek of 2026-04-26: +16,494 linesWeek of 2026-04-26: -26,521 linesWeek of 2026-05-03: +23,054 linesWeek of 2026-05-03: -8,387 linesWeek of 2026-05-10: +9,623 linesWeek of 2026-05-10: -3,931 linesWeek of 2026-05-17: +16,195 linesWeek of 2026-05-17: -28,732 linesWeek of 2026-05-24: +10,334 linesWeek of 2026-05-24: -2,535 linesWeek of 2026-05-31: +5,115 linesWeek of 2026-05-31: -1,064 linesWeek of 2026-06-07: +39,682 linesWeek of 2026-06-07: -31,394 linesWeek of 2026-06-14: +11,633 linesWeek of 2026-06-14: -4,388 linesWeek of 2026-06-21: +10,957 linesWeek of 2026-06-21: -4,307 linesWeek of 2026-06-28: +3,087 linesWeek of 2026-06-28: -1,198 linesWeek of 2026-07-05: +7,773 linesWeek of 2026-07-05: -2,005 linesWeek of 2026-07-12: +19,909 linesWeek of 2026-07-12: -26,878 linesWeek of 2026-07-19: +22,994 linesWeek of 2026-07-19: -13,038 linesWeek of 2026-07-26: +44,545 linesWeek of 2026-07-26: -16,654 linesWeek of 2026-08-02: +59,140 linesWeek of 2026-08-02: -42,304 linesWeek of 2026-08-09: +68,076 linesWeek of 2026-08-09: -49,982 linesWeek of 2026-08-16: +62,729 linesWeek of 2026-08-16: -40,474 linesWeek of 2026-08-23: +61,818 linesWeek of 2026-08-23: -41,346 linesWeek of 2026-08-30: +41,970 linesWeek of 2026-08-30: -18,946 linesWeek of 2026-09-06: +25,540 linesWeek of 2026-09-06: -7,715 linesWeek of 2026-09-13: +87,900 linesWeek of 2026-09-13: -58,534 linesSep 21, 2025Sep 13, 2026
+1.2M lines added, -741K removed over the last year.

Commits per week

last 52 weeks
3740Week of 2025-10-05: 81 commitsWeek of 2025-10-12: 12 commitsWeek of 2025-10-19: 3 commitsWeek of 2025-10-26: 12 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 146 commitsWeek of 2025-11-16: 66 commitsWeek of 2025-11-23: 54 commitsWeek of 2025-11-30: 125 commitsWeek of 2025-12-07: 177 commitsWeek of 2025-12-14: 152 commitsWeek of 2025-12-21: 201 commitsWeek of 2025-12-28: 374 commitsWeek of 2026-01-04: 286 commitsWeek of 2026-01-11: 265 commitsWeek of 2026-01-18: 174 commitsWeek of 2026-01-25: 214 commitsWeek of 2026-02-01: 231 commitsWeek of 2026-02-08: 55 commitsWeek of 2026-02-15: 17 commitsWeek of 2026-02-22: 49 commitsWeek of 2026-03-01: 122 commitsWeek of 2026-03-08: 81 commitsWeek of 2026-03-15: 107 commitsWeek of 2026-03-22: 65 commitsWeek of 2026-03-29: 55 commitsWeek of 2026-04-05: 40 commitsWeek of 2026-04-12: 140 commitsWeek of 2026-04-19: 163 commitsWeek of 2026-04-26: 124 commitsWeek of 2026-05-03: 106 commitsWeek of 2026-05-10: 59 commitsWeek of 2026-05-17: 133 commitsWeek of 2026-05-24: 95 commitsWeek of 2026-05-31: 43 commitsWeek of 2026-06-07: 105 commitsWeek of 2026-06-14: 123 commitsWeek of 2026-06-21: 97 commitsWeek of 2026-06-28: 47 commitsWeek of 2026-07-05: 83 commitsWeek of 2026-07-12: 67 commitsWeek of 2026-07-19: 117 commitsWeek of 2026-07-26: 192 commitsWeek of 2026-08-02: 240 commitsWeek of 2026-08-09: 235 commitsWeek of 2026-08-16: 201 commitsWeek of 2026-08-23: 121 commitsWeek of 2026-08-30: 126 commitsWeek of 2026-09-06: 60 commitsWeek of 2026-09-13: 76 commitsWeek of 2026-09-20: 104 commitsWeek of 2026-09-27: 9 commitsOct 5, 2025Sep 27, 2026
6K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 55 commitsSun 1:00 — 34 commitsSun 2:00 — 26 commitsSun 3:00 — 12 commitsSun 4:00 — 8 commitsSun 5:00 — 1 commitsSun 6:00 — 4 commitsSun 7:00 — 1 commitsSun 8:00 — 4 commitsSun 9:00 — 17 commitsSun 10:00 — 11 commitsSun 11:00 — 30 commitsSun 12:00 — 26 commitsSun 13:00 — 30 commitsSun 14:00 — 22 commitsSun 15:00 — 11 commitsSun 16:00 — 20 commitsSun 17:00 — 31 commitsSun 18:00 — 36 commitsSun 19:00 — 30 commitsSun 20:00 — 49 commitsSun 21:00 — 51 commitsSun 22:00 — 57 commitsSun 23:00 — 59 commitsMon 0:00 — 88 commitsMon 1:00 — 46 commitsMon 2:00 — 44 commitsMon 3:00 — 18 commitsMon 4:00 — 7 commitsMon 5:00 — 1 commitsMon 6:00 — 5 commitsMon 7:00 — 8 commitsMon 8:00 — 23 commitsMon 9:00 — 21 commitsMon 10:00 — 35 commitsMon 11:00 — 29 commitsMon 12:00 — 47 commitsMon 13:00 — 41 commitsMon 14:00 — 43 commitsMon 15:00 — 54 commitsMon 16:00 — 66 commitsMon 17:00 — 60 commitsMon 18:00 — 47 commitsMon 19:00 — 43 commitsMon 20:00 — 50 commitsMon 21:00 — 49 commitsMon 22:00 — 60 commitsMon 23:00 — 56 commitsTue 0:00 — 87 commitsTue 1:00 — 51 commitsTue 2:00 — 19 commitsTue 3:00 — 14 commitsTue 4:00 — 9 commitsTue 5:00 — 3 commitsTue 6:00 — 7 commitsTue 7:00 — 8 commitsTue 8:00 — 15 commitsTue 9:00 — 31 commitsTue 10:00 — 21 commitsTue 11:00 — 31 commitsTue 12:00 — 59 commitsTue 13:00 — 66 commitsTue 14:00 — 61 commitsTue 15:00 — 57 commitsTue 16:00 — 37 commitsTue 17:00 — 55 commitsTue 18:00 — 42 commitsTue 19:00 — 25 commitsTue 20:00 — 47 commitsTue 21:00 — 51 commitsTue 22:00 — 41 commitsTue 23:00 — 95 commitsWed 0:00 — 58 commitsWed 1:00 — 45 commitsWed 2:00 — 39 commitsWed 3:00 — 9 commitsWed 4:00 — 7 commitsWed 5:00 — 3 commitsWed 6:00 — 3 commitsWed 7:00 — 7 commitsWed 8:00 — 7 commitsWed 9:00 — 34 commitsWed 10:00 — 33 commitsWed 11:00 — 29 commitsWed 12:00 — 73 commitsWed 13:00 — 61 commitsWed 14:00 — 66 commitsWed 15:00 — 50 commitsWed 16:00 — 67 commitsWed 17:00 — 46 commitsWed 18:00 — 53 commitsWed 19:00 — 15 commitsWed 20:00 — 51 commitsWed 21:00 — 55 commitsWed 22:00 — 66 commitsWed 23:00 — 86 commitsThu 0:00 — 45 commitsThu 1:00 — 41 commitsThu 2:00 — 38 commitsThu 3:00 — 28 commitsThu 4:00 — 19 commitsThu 5:00 — 14 commitsThu 6:00 — 4 commitsThu 7:00 — 13 commitsThu 8:00 — 8 commitsThu 9:00 — 25 commitsThu 10:00 — 47 commitsThu 11:00 — 51 commitsThu 12:00 — 62 commitsThu 13:00 — 53 commitsThu 14:00 — 36 commitsThu 15:00 — 46 commitsThu 16:00 — 41 commitsThu 17:00 — 42 commitsThu 18:00 — 53 commitsThu 19:00 — 33 commitsThu 20:00 — 82 commitsThu 21:00 — 88 commitsThu 22:00 — 91 commitsThu 23:00 — 102 commitsFri 0:00 — 104 commitsFri 1:00 — 51 commitsFri 2:00 — 29 commitsFri 3:00 — 25 commitsFri 4:00 — 21 commitsFri 5:00 — 15 commitsFri 6:00 — 9 commitsFri 7:00 — 22 commitsFri 8:00 — 9 commitsFri 9:00 — 35 commitsFri 10:00 — 58 commitsFri 11:00 — 62 commitsFri 12:00 — 54 commitsFri 13:00 — 39 commitsFri 14:00 — 23 commitsFri 15:00 — 33 commitsFri 16:00 — 52 commitsFri 17:00 — 47 commitsFri 18:00 — 28 commitsFri 19:00 — 31 commitsFri 20:00 — 48 commitsFri 21:00 — 47 commitsFri 22:00 — 64 commitsFri 23:00 — 76 commitsSat 0:00 — 53 commitsSat 1:00 — 63 commitsSat 2:00 — 25 commitsSat 3:00 — 28 commitsSat 4:00 — 16 commitsSat 5:00 — 9 commitsSat 6:00 — 7 commitsSat 7:00 — 4 commitsSat 8:00 — 6 commitsSat 9:00 — 15 commitsSat 10:00 — 12 commitsSat 11:00 — 19 commitsSat 12:00 — 28 commitsSat 13:00 — 32 commitsSat 14:00 — 30 commitsSat 15:00 — 17 commitsSat 16:00 — 43 commitsSat 17:00 — 14 commitsSat 18:00 — 20 commitsSat 19:00 — 30 commitsSat 20:00 — 34 commitsSat 21:00 — 60 commitsSat 22:00 — 60 commitsSat 23:00 — 66 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Oct 4, 2026daily#7+408
Oct 3, 2026daily#7+408
Oct 2, 2026daily#6+294
Oct 1, 2026daily#6+294
Sep 16, 2026daily#10+437
Sep 15, 2026daily#10+437
Sep 1, 2026monthly#18+18,925
Aug 31, 2026monthly#18+18,925
Aug 30, 2026monthly#18+19,239
Aug 29, 2026monthly#17+19,558
Aug 28, 2026monthly#17+19,801
Aug 27, 2026monthly#13+20,131
Aug 26, 2026monthly#13+20,131
Aug 25, 2026monthly#13+19,957
Aug 24, 2026monthly#13+20,046
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • microsoft/vscode

    Visual Studio Code

    193.5K stars · TypeScript

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    188.6K stars · TypeScript