pi Desktop pi-desktop
winget install --id=justhil.piDesktop -e pi Desktop GUI for Independent Developers: Running the pi SDK within Electron, reusing ~/.pi/agent authentication, configurations, and JSONL sessions, and replacing the terminal-based TUI interaction with a timeline view, tool cards, diff review, and an extension compatibility layer. Core Concepts 1. Sessions Based on pi - Dialogue content, tool call logs, branching, and compression info strictly follow the JSONL session files written by pi in ~/.pi/agent/sessions/. - The desktop app does not create a separate "chat history database" to replace pi; it only stores local application preferences like window layouts, recent projects, extension toggles, and adapter overrides. - Benefit: You can seamlessly switch between the terminal pi and desktop pi on the same session; uninstalling the desktop app won't lose your conversation history. 2. Shared Configuration and Authentication - Model accounts, settings.json, extension package lists, and project-specific .pi/ resources follow the exact same paths and rules as the terminal version. - Changes made in Desktop Settings → Pi are written back to the global settings.json; Skill toggles and other settings are applied to the global configuration rather than being "mock-enabled" only within the desktop app. 3. Extensions: Compatibility Layer + Adapters instead of Modifying Plugin Source - Extensions typically use TUI in the terminal (selections, confirmations, questionnaires, tool result cards, /commands for config). The desktop app lacks a terminal canvas. - Compatibility Layer: Universally intercepts UI requests from extensions and transforms them into Electron dialogs, timeline cards, or settings forms. - Adapters: Each extension has a specification for "how to display/configure on desktop and which commands need special handling" (built into the app, with JSON overrides available for advanced users). - Principle: Do not touch the extension npm packages or fork pi; manage differences through adapter specifications and documentation. - AI-Assisted Adapter Writing: See the repository's doc/ folder (the adapter-authoring-guide.md can be fed to a model to generate custom adapter.json files).