vastsa/PI-DesktopPublic

Local-first AI coding agent desktop: Electron + Rust host core + pi Agent Harness + user-installable plugins

AI summary: Local-first modular desktop workspace integrating AI agents, models, and plugins.

Stars
7.2K
+98 today
Forks
699
Watchers
18
Open issues
151
Open PRs
74
Contributors
~109
Commits
5.3K
Branches
106
Views (30d)
2

TypeScriptLGPL-3.0Created Mar 22, 2023Last push 1d agoLatest release v0.20.1+301 stars this week+1.6K this month

Quick answers

What is PI-Desktop?
Local-first modular desktop workspace integrating AI agents, models, and plugins.
What does PI-Desktop do?
PI-Desktop is an Electron and Rust-based application that brings AI agents, models, and workflows into a unified, local-first environment. It utilizes a Rust core to handle heavy processing while providing a seamless graphical interface for managing projects. The platform is model-agnostic, allowing users to swap out language models as needed, and highly extensible through user-installable plugins. By keeping data local, it ensures that your workspace, code, and interactions remain entirely private and secure.
Who is PI-Desktop for?
Developers and privacy-conscious professionals who want a cohesive, offline-capable environment for managing AI agents. It is ideal for teams working with sensitive codebases that require strict local data governance.
How popular is PI-Desktop on GitHub?
vastsa/PI-Desktop has 7,195 stars and 699 forks on GitHub, and gained 301 stars in the last 7 days.
What license does PI-Desktop use?
vastsa/PI-Desktop is released under the LGPL-3.0 license.

Star history

since Sep 9, 2026
02K4K6KSep 2026Sep 2026Oct 2026Oct 2026
7.2K stars as of Oct 24, 2026. Measured daily since Sep 9, 2026; GitHub no longer exposes earlier star timestamps.

Update history

2 recorded
  • Oct 21, 2026New release v0.20.1 (previously v0.18.0).
  • Oct 13, 2026New release v0.18.0 (previously v0.16.0).

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepOctMonWedFri2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 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: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 107 commits2026-07-26: 124 commits2026-07-27: 75 commits2026-07-28: 59 commits2026-07-29: 30 commits2026-07-30: 45 commits2026-07-31: 55 commits2026-08-01: 7 commits2026-08-02: 43 commits2026-08-03: 0 commits2026-08-04: 9 commits2026-08-05: 40 commits2026-08-06: 40 commits2026-08-07: 30 commits2026-08-08: 6 commits2026-08-09: 3 commits2026-08-10: 8 commits2026-08-11: 12 commits2026-08-12: 13 commits2026-08-13: 39 commits2026-08-14: 38 commits2026-08-15: 50 commits2026-08-16: 0 commits2026-08-17: 14 commits2026-08-18: 37 commits2026-08-19: 38 commits2026-08-20: 27 commits2026-08-21: 23 commits2026-08-22: 1 commit2026-08-23: 0 commits2026-08-24: 20 commits2026-08-25: 29 commits2026-08-26: 23 commits2026-08-27: 26 commits2026-08-28: 21 commits2026-08-29: 38 commits2026-08-30: 13 commits2026-08-31: 34 commits2026-09-01: 29 commits2026-09-02: 13 commits2026-09-03: 18 commits2026-09-04: 29 commits2026-09-05: 68 commits2026-09-06: 39 commits2026-09-07: 53 commits2026-09-08: 118 commits2026-09-09: 108 commits2026-09-10: 111 commits2026-09-11: 83 commits2026-09-12: 117 commits2026-09-13: 66 commits2026-09-14: 125 commits2026-09-15: 78 commits2026-09-16: 71 commits2026-09-17: 54 commits2026-09-18: 59 commits2026-09-19: 76 commits2026-09-20: 65 commits2026-09-21: 79 commits2026-09-22: 80 commits2026-09-23: 52 commits2026-09-24: 60 commits2026-09-25: 44 commits2026-09-26: 35 commits2026-09-27: 34 commits2026-09-28: 42 commits2026-09-29: 41 commits2026-09-30: 28 commits2026-10-01: 38 commits2026-10-02: 33 commits2026-10-03: 40 commits2026-10-04: 44 commits2026-10-05: 25 commits2026-10-06: 28 commits2026-10-07: 26 commits2026-10-08: 43 commits2026-10-09: 22 commits2026-10-10: 18 commits2026-10-11: 21 commits2026-10-12: 34 commits2026-10-13: 12 commits2026-10-14: 0 commits2026-10-15: 0 commits2026-10-16: 0 commits2026-10-17: 0 commits
3,436 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    3,436 commits in 52 weeks

  • Community-driven

    ~109 contributors

  • Continuous integration

    Automated checks passing

  • Repeat trending

    6 trending appearances

What PI-Desktop does

PI-Desktop is an Electron and Rust-based application that brings AI agents, models, and workflows into a unified, local-first environment. It utilizes a Rust core to handle heavy processing while providing a seamless graphical interface for managing projects. The platform is model-agnostic, allowing users to swap out language models as needed, and highly extensible through user-installable plugins. By keeping data local, it ensures that your workspace, code, and interactions remain entirely private and secure.

Developers and privacy-conscious professionals who want a cohesive, offline-capable environment for managing AI agents. It is ideal for teams working with sensitive codebases that require strict local data governance.

  • Local-first design: Keeps all projects, data, and agent interactions stored securely on your local machine.
  • Rust host core: Leverages Rust for backend processing to ensure fast, efficient performance.
  • Model-agnostic framework: Allows developers to seamlessly switch between different LLMs for specific tasks.
  • Plugin ecosystem: Extends functionality through a robust system of user-installable modules.
  • Cross-platform compatibility: Runs smoothly on macOS, Windows, and Linux operating systems.

Where teams use it

Private AI development

Work on confidential projects without sending sensitive data to external API providers.

Workflow orchestration

Manage multiple agents and models within a single, persistent graphical workspace.

Custom tool creation

Build and deploy specific plugins to tailor the environment to niche engineering needs.

Offline coding assistance

Utilize local LLMs to generate and review code while completely disconnected from the internet.

README

main branch
PI-Desktop

PI-Desktop

A modular desktop workspace for AI agents

Bring projects, agents, models, plugins, and workflows into one persistent desktop environment.

Local-first · Model-agnostic · Plugin-powered · macOS / Windows / Linux


Release Downloads Stars CI License Reddit


Download · Documentation · Build a Plugin · Screenshots · 简体中文


PI-Desktop

Your projects stay local · Your models stay replaceable · Your workspace stays yours

Current release line: 0.21.x (Early Preview).


Why PI-Desktop?

Terminal agents are great at execution. IDE agents are great at living inside an editor.

PI-Desktop goes one step further:

Give AI agents a persistent, independent, and extensible desktop workspace of their own.

Independent Workspace

No dependency on a specific IDE or terminal.

Projects, sessions, reviews, previews, and agents all live in their own workspace.

Plugin-Powered

Plugins extend more than the agent.

Add panels, views, widgets, tools, MCP servers, themes, and background services.

Agent Orchestration

One agent is not always enough.

Delegate to Subagents or coordinate full Worker Sessions in parallel.

Model Freedom

Cloud models, local models, custom gateways, compatible APIs.

Switch models without rebuilding your workflow.

It is not a wrapper around one model. It is not another IDE extension.

It is a desktop platform for agent workflows.


Plugins are part of the workspace, not an afterthought

PI-Desktop keeps the Core focused.

Your actual workflow is assembled through extensions.

Agent

Extend what the agent can do

Agent Tools Skills Completion pi Extensions

Workspace

Extend the desktop itself

Commands Panels Work Panel Views Floating Widgets Themes

Platform

Extend the runtime

MCP Servers Resident Services Plugin Message Bus

A plugin does not have to be “just another tool.”

It can be an entire product:

Voice Agent
├── Floating Widget
├── Speech Service
├── Agent Tool
└── Commands

GitHub Workspace
├── Work Panel
├── MCP Server
├── Agent Tools
└── Background Service

Session Analytics
├── Dashboard
├── Commands
└── Workspace View

What can a plugin add?

Capability What it enables
Command Add actions to the global command system
Panel Open a standalone plugin interface
Floating Widget Build voice orbs, status lights, timers, and other floating UI
Work Panel View Add new views to the right-side workspace
Agent Tool Register tools callable by the agent
Completion Use the models already configured by the user
Skill Add reusable agent capabilities and workflows
Theme Customize workspace appearance
MCP Server Connect local or remote MCP servers
Service Run persistent background work
Message Bus Let plugins communicate with each other

Plugins can be distributed as .piplug packages or installed through the marketplace.


One foundation, many workflows

                         PI-Desktop
                             │
          ┌──────────────────┼──────────────────┐
          │                  │                  │
        Agent            Workspace           Platform
          │                  │                  │
     Agent Tools           Panels              MCP
       Skills             Widgets            Services
     Subagents             Views            Message Bus
   pi Extensions          Themes
          │                  │                  │
          └──────────────────┼──────────────────┘
                             │
                       Your Workflow

PI-Desktop can simply be your coding agent.

Or you can turn it into:

AI Development Workspace · Voice Agent · DevOps Console · GitHub Workspace · Data Assistant · Multi-Agent Control Center · Automation Platform

The Core provides the foundation. Plugins decide what your workspace becomes.


Three ways to work

Agent

Give it a task. Let it work.

Read code, edit files, run commands, test, and iterate.

Best for day-to-day development.

Plan

Review the approach before execution.

The agent studies the project first and produces an implementation plan.

Best for refactors and high-risk changes.

Goal

Define the outcome. Let the agent choose the path.

Lock the objective and acceptance criteria, then let the agent drive execution.

Best for complex and long-running tasks.

Privileged operations still pass through PI-Desktop's permission layer.


When one agent is not enough

Complex work should not be forced into one context window.

PI-Desktop provides two levels of delegation.

Subagents

Delegate independent work to background agents:

Code exploration · Implementation · Test analysis · Research · Review

Each Subagent gets its own context and reports the result back to the parent agent.

Session Orchestrator

For longer-lived work, delegate to full Worker Sessions.

Main Session
│
├── Worker A
│   └── Frontend
│
├── Worker B
│   └── Backend
│
├── Worker C
│   └── Tests
│
└── Worker D
    └── Review

Workers are full PI-Desktop sessions:

Independent context · Independent execution · Directly inspectable · Reusable · Full transcript

Session Orchestrator

Coordinate multiple Worker Sessions from one parent Session

Worker Session

Each Worker remains a full, inspectable Session

Move from “one agent helps me code” to “multiple agents divide and complete the work.”


Built for work that lasts

PI-Desktop is organized around:

Project → Session → Agent → Work

—not around disposable chat threads.

You can:

  • Manage multiple projects and sessions
  • Pin, archive, branch, and search sessions
  • Queue prompts while an agent is already running
  • Reference project files with @
  • Use slash commands
  • Review diffs
  • Inspect command output
  • Work with the right-side Work Panel
  • Keep streaming checkpoints
  • Recover interrupted work whenever possible

A Session can continue across multiple app launches.


See what the agent is doing

PI-Desktop Session

Persistent Sessions instead of disposable chats

PI-Desktop Model

Switch models and reasoning levels inside the Session

PI-Desktop Plugins

A plugin marketplace that extends both the agent and the desktop

PI-Desktop Providers

Connect your own provider, gateway, or local model


Swap the model, keep the workflow

PI-Desktop does not tie your workflow to a single model vendor.

Use:

OpenAI · Anthropic · OpenAI-Compatible APIs · Custom Gateways · Ollama · LM Studio · Local Models

Configure each model independently:

Provider · Model ID · Context Window · Output Limit · Reasoning / Thinking · Temperature · OAuth · API Key · Endpoint

Different Sessions can use different models.

The same Session can switch models at any time.

Planning     → Model A
Coding       → Model B
Review       → Model C
Private Task → Local Model

The model is a replaceable component of the workflow — not the workflow itself.


Already using another coding agent?

Keep your existing work.

PI-Desktop can import local sessions from:

Claude Code · Codex · OpenCode · Pi


Local-first

PI-Desktop does not require you to move your development environment into our cloud.

Data Default behavior
Projects Local
Sessions Local
Settings Local
Logs Local
API credentials OS Keychain
PI-Desktop telemetry None
Model requests Sent directly to your configured provider

No mandatory PI-Desktop account.

No mandatory PI-Desktop relay.

When using a remote model, the context required for the request is sent directly to that provider.


You control the permissions

Agents can read files, edit code, run commands, call tools, use extensions, and delegate work.

Privileged operations still pass through the permission layer:

Agent
  ↓
Tool Request
  ↓
Permission Layer
  ↓
Allow / Ask / Deny
  ↓
Execution

You decide how much autonomy each Session gets.


Get started

01

Download

Install PI-Desktop

02

Connect a model

Configure a Provider

03

Open a project

Choose a local repository

04

Start working

Agent / Plan / Goal

macOS · Windows · Linux

Packages

Platform Architecture Package
macOS Apple Silicon .dmg / .zip
macOS Intel .dmg / .zip
Windows x64 Installer / .zip
Linux x64 / ARM64 .AppImage / .deb / .rpm / .asar

macOS releases are signed with a Developer ID certificate and notarized by Apple.

Linux Compatibility

Linux packages require glibc 2.35+.

Common supported distributions include:

  • Ubuntu 22.04+
  • Debian 12+
  • Fedora 36+

Check your current version with:

ldd --version

Built on Pi

PI-Desktop is built on the pi ecosystem.

The Agent Runtime uses:

  • pi-ai
  • pi-agent-core
  • pi-coding-agent

Pi provides the Agent Engine. PI-Desktop builds the persistent desktop workspace, sessions, permissions, plugins, and agent orchestration around it.


For Developers

PI-Desktop can also serve as a host platform for building agent products.

You can build:

Plugins · MCP Servers · Skills · Agent Tools · pi Extensions · Themes · Panels · Floating Widgets · Background Services

Plugin quick start

Built-in templates include:

  • panel-basic
  • agent-tool-basic
  • skill-pack
  • full-demo

Plugins can be created and loaded directly as Development Plugins.

Plugin Development Guide →

Run from source

Development Setup
Requirements
  • Node.js >=22.19
  • pnpm >=10
  • Stable Rust Toolchain
Start
git clone https://github.com/vastsa/PI-Desktop.git
cd PI-Desktop

pnpm install

cargo build -p host-core
pnpm build:js

pnpm dev
Validate
pnpm typecheck
pnpm lint
pnpm test

Documentation

Documentation · Architecture · Specification · Plugin Development · E2E Test Plan · Release Runbook · AGENTS.md


Contributing

Contributions are welcome:

Issues · Pull Requests · Plugins · Skills · MCP Integrations · Documentation · Translations

For standalone capabilities, consider one question first:

Would this be better as a Plugin?

Keep the Core focused. Let the ecosystem grow.

Report an Issue · Open Issues · Build a Plugin


Project Trend


Friends

Linux.Do — A new ideal community


Model Acknowledgements

Not by a lone genius, but by a token-powered construction crew.

PI-Desktop has been built with the help of models from multiple providers.

More than 27 billion tokens have been used across development, refactoring, review, design, and debugging.

Thanks to every human contributor — and every model that helped us build it.


License

PI-Desktop is licensed under the GNU Lesser General Public License v3.0.

See LICENSE for details.


PI-Desktop

PI-Desktop

Build your own Agent workspace.

Your models · Your agents · Your plugins · Your workspace


Download · Documentation · Build a Plugin



Local-first · Model-agnostic · Plugin-powered

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

99 total
  1. v0.21.0-beta.4v0.21.0-beta.4Oct 18, 2026pre-release289 downloads

    ## What's Changed * fix(sidebar): refine session rows and todo disclosure by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1734 * feat(composer): open the mode menu instead of cycling the chip by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1737 * fix(sessions): match placeholder session titles case-insensitively by @Totopo27 in https://github.com/vastsa/PI-Desktop/pull/1725 * fix(work-panel): lend width to a reopened sidebar instead of storing it by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1735 * fix(composer): keep finished background tasks out of the composer bar by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1742 * feat(plugins): follow the selected session and reveal work-panel views by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1745 * fix(sidebar): default running activity to count badge by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1749 * feat(plugins): daily review line on marketplace cards by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1748 **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/v0.21.0-beta.3...v0.21.0-beta.4

  2. v0.21.0-beta.3v0.21.0-beta.3Oct 16, 2026pre-release184 downloads

    ## What's Changed * feat(lifecycle): theme quit and close-behavior confirms by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1714 * fix(composer): keep model rows on one line and truncate long names by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1717 * feat(sidebar): show last reply dates in project sessions by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1718 * feat(plugins): add scoped HTML preview API for Browser by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1719 * fix(chat): add HTML open-with destinations by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1713 * fix(host-core): request Windows runner breakaway only when the job allows it by @chengzhi-c in https://github.com/vastsa/PI-Desktop/pull/1716 * fix(todo-dock): clarify checklist disclosure control by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1723 * feat(plugins): add ratings and reviews with installed card grid by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1727 * feat(todo-dock): sweep the working step and drop per-row chrome by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1729 * chore(release): prepare 0.21.0-beta.3 by @Tioit-Wang in https://g

  3. v0.21.0-beta.1v0.21.0-beta.1Oct 16, 2026pre-release51 downloads

    ## What's Changed * feat: 同一项目的并行会话隔离在各自的 git worktree 中 by @onerentop in https://github.com/vastsa/PI-Desktop/pull/1604 * fix(markdown-table): show overflow scrollbars in preview by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1647 * fix(desktop): open session HTML artifacts from chat and BrowserPreview by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1650 * fix(plugins): notify the renderer after the startup plugin restore by @mai-ming in https://github.com/vastsa/PI-Desktop/pull/1651 * fix(deps): patch vulnerable dependencies by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1656 * fix(plugins): resolve automatic JSX against the host React runtime by @zwqjoy in https://github.com/vastsa/PI-Desktop/pull/1644 * fix(host-runtime): harden workspace diff Git commands by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1658 * fix(host-runtime): disable Git textconv for workspace diffs by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1660 * fix(deps): enforce patched DOMPurify floor by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1659 * fix(agent-runtime): stamp the session id on self-hosted endpoints by @arsonist-g in https://github.com/vastsa/PI

  4. v0.20.1v0.20.1Oct 13, 202673.6K downloads

    ## What's Changed * fix(storage): keep the Windows install lock when removing old backups by @chengzhi-c in https://github.com/vastsa/PI-Desktop/pull/1630 * fix(ui): preserve popup text selection across boundaries by @new-Beginner in https://github.com/vastsa/PI-Desktop/pull/1633 * fix(sidebar): keep project menus near bottom rows by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1638 * fix(release): recover app stapling and publish 0.20.1 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1639 ## New Contributors * @new-Beginner made their first contribution in https://github.com/vastsa/PI-Desktop/pull/1633 **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/v0.20.0...v0.20.1

  5. v0.19.1v0.19.1Oct 13, 20267.9K downloads

    ## What's Changed * fix(settings): restore the remembered proxy instead of the default when the URL draft is stale by @SeanLiu326 in https://github.com/vastsa/PI-Desktop/pull/1618 * fix(browser): bound every CDP tool call, not just screenshots by @SeanLiu326 in https://github.com/vastsa/PI-Desktop/pull/1619 * chore(release): prepare v0.19.1 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1621 **Full Changelog**: https://github.com/vastsa/PI-Desktop/compare/v0.19.0...v0.19.1 ## v0.19.0 ### What's Changed * perf(host-core): replace session updated_at index with composite index by @xiaobaZeo in https://github.com/vastsa/PI-Desktop/pull/1435 * fix(host-core): preserve BOM-marked UTF-16 text through Read and Edit by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1445 * fix(agent-runtime): isolate delegate mutation recovery and failure results by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1446 * feat(jev): integrate TypeSafe classifier by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1448 * fix(desktop): finish regenerate archival before host shutdown by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1447 * fix(settings): accept the image model a sig

Commits per week

last 52 weeks
6290Week of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 107 commitsWeek of 2026-07-26: 395 commitsWeek of 2026-08-02: 168 commitsWeek of 2026-08-09: 163 commitsWeek of 2026-08-16: 140 commitsWeek of 2026-08-23: 157 commitsWeek of 2026-08-30: 204 commitsWeek of 2026-09-06: 629 commitsWeek of 2026-09-13: 529 commitsWeek of 2026-09-20: 415 commitsWeek of 2026-09-27: 256 commitsWeek of 2026-10-04: 206 commitsWeek of 2026-10-11: 67 commitsOct 19, 2025Oct 11, 2026
3.4K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 24 commitsSun 1:00 — 35 commitsSun 2:00 — 18 commitsSun 3:00 — 18 commitsSun 4:00 — 17 commitsSun 5:00 — 5 commitsSun 6:00 — 3 commitsSun 7:00 — 3 commitsSun 8:00 — 2 commitsSun 9:00 — 2 commitsSun 10:00 — 17 commitsSun 11:00 — 11 commitsSun 12:00 — 13 commitsSun 13:00 — 24 commitsSun 14:00 — 23 commitsSun 15:00 — 14 commitsSun 16:00 — 39 commitsSun 17:00 — 35 commitsSun 18:00 — 26 commitsSun 19:00 — 21 commitsSun 20:00 — 14 commitsSun 21:00 — 32 commitsSun 22:00 — 39 commitsSun 23:00 — 27 commitsMon 0:00 — 29 commitsMon 1:00 — 29 commitsMon 2:00 — 15 commitsMon 3:00 — 21 commitsMon 4:00 — 7 commitsMon 5:00 — 1 commitsMon 6:00 — 1 commitsMon 7:00 — 1 commitsMon 8:00 — 6 commitsMon 9:00 — 13 commitsMon 10:00 — 26 commitsMon 11:00 — 28 commitsMon 12:00 — 18 commitsMon 13:00 — 6 commitsMon 14:00 — 27 commitsMon 15:00 — 36 commitsMon 16:00 — 27 commitsMon 17:00 — 26 commitsMon 18:00 — 28 commitsMon 19:00 — 37 commitsMon 20:00 — 31 commitsMon 21:00 — 22 commitsMon 22:00 — 49 commitsMon 23:00 — 32 commitsTue 0:00 — 37 commitsTue 1:00 — 37 commitsTue 2:00 — 18 commitsTue 3:00 — 7 commitsTue 4:00 — 5 commitsTue 5:00 — 1 commitsTue 6:00 — 6 commitsTue 7:00 — 6 commitsTue 8:00 — 2 commitsTue 9:00 — 18 commitsTue 10:00 — 14 commitsTue 11:00 — 40 commitsTue 12:00 — 20 commitsTue 13:00 — 10 commitsTue 14:00 — 26 commitsTue 15:00 — 35 commitsTue 16:00 — 55 commitsTue 17:00 — 49 commitsTue 18:00 — 25 commitsTue 19:00 — 37 commitsTue 20:00 — 24 commitsTue 21:00 — 28 commitsTue 22:00 — 39 commitsTue 23:00 — 37 commitsWed 0:00 — 34 commitsWed 1:00 — 22 commitsWed 2:00 — 17 commitsWed 3:00 — 8 commitsWed 4:00 — 3 commitsWed 5:00 — 1 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 6 commitsWed 9:00 — 21 commitsWed 10:00 — 41 commitsWed 11:00 — 38 commitsWed 12:00 — 16 commitsWed 13:00 — 11 commitsWed 14:00 — 22 commitsWed 15:00 — 30 commitsWed 16:00 — 31 commitsWed 17:00 — 30 commitsWed 18:00 — 12 commitsWed 19:00 — 31 commitsWed 20:00 — 24 commitsWed 21:00 — 22 commitsWed 22:00 — 24 commitsWed 23:00 — 29 commitsThu 0:00 — 21 commitsThu 1:00 — 25 commitsThu 2:00 — 26 commitsThu 3:00 — 20 commitsThu 4:00 — 4 commitsThu 5:00 — 4 commitsThu 6:00 — 3 commitsThu 7:00 — 0 commitsThu 8:00 — 1 commitsThu 9:00 — 9 commitsThu 10:00 — 28 commitsThu 11:00 — 27 commitsThu 12:00 — 11 commitsThu 13:00 — 18 commitsThu 14:00 — 39 commitsThu 15:00 — 40 commitsThu 16:00 — 29 commitsThu 17:00 — 34 commitsThu 18:00 — 23 commitsThu 19:00 — 38 commitsThu 20:00 — 35 commitsThu 21:00 — 17 commitsThu 22:00 — 31 commitsThu 23:00 — 35 commitsFri 0:00 — 36 commitsFri 1:00 — 14 commitsFri 2:00 — 13 commitsFri 3:00 — 17 commitsFri 4:00 — 7 commitsFri 5:00 — 2 commitsFri 6:00 — 2 commitsFri 7:00 — 2 commitsFri 8:00 — 8 commitsFri 9:00 — 5 commitsFri 10:00 — 30 commitsFri 11:00 — 28 commitsFri 12:00 — 4 commitsFri 13:00 — 11 commitsFri 14:00 — 28 commitsFri 15:00 — 38 commitsFri 16:00 — 40 commitsFri 17:00 — 48 commitsFri 18:00 — 38 commitsFri 19:00 — 21 commitsFri 20:00 — 7 commitsFri 21:00 — 20 commitsFri 22:00 — 24 commitsFri 23:00 — 24 commitsSat 0:00 — 33 commitsSat 1:00 — 36 commitsSat 2:00 — 35 commitsSat 3:00 — 31 commitsSat 4:00 — 32 commitsSat 5:00 — 1 commitsSat 6:00 — 1 commitsSat 7:00 — 6 commitsSat 8:00 — 17 commitsSat 9:00 — 13 commitsSat 10:00 — 36 commitsSat 11:00 — 35 commitsSat 12:00 — 34 commitsSat 13:00 — 17 commitsSat 14:00 — 31 commitsSat 15:00 — 22 commitsSat 16:00 — 24 commitsSat 17:00 — 16 commitsSat 18:00 — 24 commitsSat 19:00 — 21 commitsSat 20:00 — 27 commitsSat 21:00 — 17 commitsSat 22:00 — 38 commitsSat 23:00 — 32 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits4,295 (80%)
Community commits1,047 (20%)

5,342 commits in total over the last year.

DateListRankStars gained
Sep 22, 2026weekly#17+1,457
Sep 21, 2026weekly#17+1,457
Sep 12, 2026daily#5+624
Sep 11, 2026daily#5+624
Sep 10, 2026daily#13+417
Sep 9, 2026daily#10+393
  • freeCodeCamp/freeCodeCamp

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

    457.9K stars · TypeScript

  • openclaw/openclaw

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

    393K stars · TypeScript

  • morluto/rea

    Reverse engineer anything with agents, from app behavior down to native binaries.

    384.3K stars · TypeScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    288.8K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    257K stars · Python

  • react/react

    The library for web and native user interfaces.

    251.8K stars · JavaScript