{"id":51557709,"url":"https://github.com/ayuayue/pideck","last_synced_at":"2026-07-10T07:01:17.234Z","repository":{"id":361655911,"uuid":"1255122629","full_name":"ayuayue/PiDeck","owner":"ayuayue","description":"Desktop workbench for managing multiple pi coding-agent sessions across project folders.","archived":false,"fork":false,"pushed_at":"2026-07-08T10:17:20.000Z","size":16378,"stargazers_count":228,"open_issues_count":2,"forks_count":28,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-08T11:07:54.282Z","etag":null,"topics":["ai-agent","coding-agent","desktop-app","electron","pi","react","rpc","typescript"],"latest_commit_sha":null,"homepage":"https://ayuayue.github.io/PiDeck/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ayuayue.png","metadata":{"files":{"readme":"README.en.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-31T12:40:24.000Z","updated_at":"2026-07-08T10:17:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ayuayue/PiDeck","commit_stats":null,"previous_names":["ayuayue/pi-desktop","ayuayue/pideck"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/ayuayue/PiDeck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuayue%2FPiDeck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuayue%2FPiDeck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuayue%2FPiDeck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuayue%2FPiDeck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ayuayue","download_url":"https://codeload.github.com/ayuayue/PiDeck/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayuayue%2FPiDeck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35323809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","coding-agent","desktop-app","electron","pi","react","rpc","typescript"],"created_at":"2026-07-10T07:01:15.022Z","updated_at":"2026-07-10T07:01:17.225Z","avatar_url":"https://github.com/ayuayue.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PiDeck\n\n[中文文档](README.md) · [English](README.en.md) · [LinuxDO 友链](https://linux.do)\n\n**A desktop workbench for managing multiple [pi](https://pi.dev) coding-agent sessions across project folders.**\n\n![Status](https://img.shields.io/badge/status-experimental-orange)\n![License](https://img.shields.io/badge/license-MIT-blue)\n![Electron](https://img.shields.io/badge/Electron-38-47848f)\n![React](https://img.shields.io/badge/React-19-61dafb)\n![Version](https://img.shields.io/badge/version-0.6.4-green)\n\n`PiDeck` is **not** a fork of pi. It is a lightweight Electron shell that orchestrates multiple `pi --mode rpc` processes, providing a native desktop UI for projects, sessions, conversations, configuration, and tool orchestration — all powered by pi's native agent capabilities.\n\n---\n\n## 📋 Changelog\n\n\u003e **Latest: v0.6.4** (2026-07-05)\n\n### v0.6.4 Updates\n- 🚀 **Plan Mode**: New mode picker in composer — agent generates a plan, then\n  executes step by step with confirmation\n- 🚀 **ask_question Enhanced**: Batch questions, structured options, persisted\n  results, polished cards\n- 🚀 **Message Edit/Delete**: Copy, edit, delete AI responses and user messages\n- 🚀 **ScratchPad Overlay**: Brand new scratch pad with preview and animation\n- 🚀 **pi-deck-todo Extension**: Built-in todo list extension\n- 🚀 **Content Width Restriction**: Draggable width slider, unlimited by default\n- 🚀 **Thinking Block Rework**: Card-based thinking, in-place alternation,\n  default expanded, status indicator\n- 🚀 **Extension Management**: Disable/enable built-in extensions, project-level\n  skill management\n- 🚀 **Trust Confirmation**: Desktop-intercepted trust, open untrusted projects\n- ✨ Thinking card breathing animation, web search card subtitle, composer\n  height optimization\n- ✨ Terminal/drawer smooth animation, unified chat background, tool card fixes\n- 🐛 Dark mode white backgrounds, RichInput newline loss, plan mode deadlock\n- 🐛 Linux Wayland fixes, Feishu fixes, message rendering fixes\n\n[View Full Changelog →](CHANGELOG.md)\n\n---\n\n## Key Features\n\n| Feature | Description |\n|---|---|\n| **Multi-Project Workspace** | Add, search, drag-sort, and switch between local project folders. Run multiple pi agents simultaneously with per-project isolation. |\n| **Built-in Chat Workspace** | A fixed Chat entry at the top of the project list writes to the app user-data directory for general conversations that do not need a code project. |\n| **Plan Mode** | Switch to Plan Mode from the composer toolbar — the agent generates a plan, executes step by step with confirmation, and returns to the menu on cancel. |\n| **Message Edit/Delete** | Copy, edit, and delete AI responses and user messages; edited text is backfilled to the composer for re-sending. |\n| **ScratchPad** | Overlay-style scratch pad with content preview, selection mapping, and theme-aware semantic colors. |\n| **Content Width Restriction** | Draggable content width slider (unlimited by default, drag left to narrow) for long code lines or compact layouts. |\n| **Configuration, Skill \u0026 Extension Management** | Visual editors for pi's `models.json`, `auth.json`, and `settings.json`, plus global Skill and Extension management. |\n| **Extension Enable/Disable** | Disable/enable built-in extensions, project-level skill/extension management, distinguishing global vs project config. |\n| **Trust Confirmation System** | Desktop-intercepted trust confirmation; untrusted projects can still be opened; projects with running agents cannot be deleted. |\n| **Proxy Settings** | Manage pi agent process proxy and desktop proxy separately; model discovery and connection tests can use the desktop proxy. |\n| **Slash Commands \u0026 `!` Shell** | Built-in slash command suggestions (`/reload`, `/compact`, `/session`, …) and `!command` / `!!command` for inline shell execution directly in the chat composer. |\n| **Embedded Terminal Dock** | Agent-scoped terminal tabs with PowerShell/cmd/sh fallback, multiple tabs, theme switching, height resizing, right-click selection copy, and close-all confirmation. |\n| **Session Management** | Create sessions, browse inline project history, restore historical sessions, rename, copy, export HTML, delete history, and close agents from the sidebar or context menus. |\n| **Session Import** | Import local Codex and Claude sessions from the project context menu, then browse or restore them as PiDeck history sessions. |\n| **Git Integration** | Real-time branch display with local + remote branch selector, branch count badge, switching support, and branch creation. |\n| **LAN Web Service** | Start a local web service from Settings so devices on the same network can open PiDeck through the host IP and port. |\n| **Session Activity View** | Thinking notes, tool calls, and answer updates are grouped into a compact flow with expandable/copyable details and clear status or exit-code labels. |\n| **Session File Summary** | Completed agent runs show a compact list of modified file names and changed line counts; more than three files can be expanded. |\n| **Context-Aware Input** | `@` file suggestions from project tree, `!` shell execution, `/` slash commands, and command history — all from a single composer. |\n| **Update Prompt** | Periodically checks GitHub Releases and shows release notes plus recommended download links opened in the system browser. |\n| **System Tray** | Close to tray by default, tray context menu, double-click to restore. |\n\n---\n\n## Screenshots\n\n### Workspace \u0026 Conversation\n\n![Workspace overview](docs/images/overview.png)\n\nMarkdown rendering with streaming text, activity flow, tool-call details, session file-change summary, model/thinking/context/cache status bar, git branch selector, and action controls (New Session · Stop · Restart · Files · History · Terminal).\n\n### Configuration Management\n\n![Configuration management](docs/images/config.png)\n\nVisual editors for Models (provider cards + model grid), Auth (API key management), Settings (type-aware key-value), and raw JSON source file editing — with save-and-reload to hot-apply changes to running agents.\n\n### Slash Commands \u0026 Session History\n\n![Slash commands and session history](docs/images/slash-commands.png)\n\nBuilt-in slash command suggestions panel with descriptions, alongside the session history drawer for browsing and restoring past conversations.\n\n### File Tree \u0026 Session Actions\n\n![File tree and session actions](docs/images/files.png)\n\nProject file tree with Git status indicators, `@` file reference suggestions in the composer, current-session modified file list in the Files panel, and session context menu actions (Rename · Copy · Export HTML · Delete · Close Agent).\n\n---\n\n## Architecture\n\n```txt\nPiDeck\n├─ Electron Main Process\n│  ├─ Project record management\n│  ├─ Spawns pi --mode rpc processes\n│  ├─ Manages agent-scoped local pty terminals\n│  ├─ Bridges file / session / git operations\n│  ├─ Checks GitHub Releases for updates\n│  └─ Exposes safe IPC APIs\n│\n├─ Electron Preload\n│  └─ Exposes window.piDesktop to renderer\n│\n├─ React Renderer\n│  ├─ Project \u0026 agent list\n│  ├─ Chat timeline with streaming\n│  ├─ File / history drawers\n│  ├─ Configuration and Skill modal (Configuration / Skills)\n│  ├─ Agent-scoped Terminal Dock\n│  ├─ Model \u0026 context status bar\n│  ├─ Session file-change summary and update prompt modal\n│  └─ Settings UI (Basic / Proxy / Developer tabs)\n│\n└─ Pi Runtime\n   ├─ One pi RPC process per agent tab\n   ├─ Per-project cwd isolation\n   └─ Native pi sessions / tools / models / context\n```\n\nCore design principle: **one agent tab = one pi RPC process**, keeping sessions isolated and letting pi own its native behavior.\n\n---\n\n## Requirements\n\n- Node.js 20+\n- npm\n- `pi` command available in system `PATH`\n- pi authentication configured (via `pi` / `/login` or API keys)\n\nVerify pi is available:\n\n```bash\npi --version\npi --mode rpc\n```\n\n---\n\n## Download\n\nPrebuilt packages for **Windows**, **macOS**, and **Linux** are published from tagged releases:\n\n👉 **[GitHub Releases](https://github.com/ayuayue/PiDeck/releases)**\n\n\u003e PiDeck requires the `pi` CLI to be installed separately and available in your system `PATH`.\n\n---\n\n## Quick Start (from Source)\n\n```bash\ngit clone https://github.com/ayuayue/PiDeck.git\ncd pi-desktop\nnpm install\nnpm run make-icon\nnpm run dev\n```\n\n---\n\n## Development\n\n| Command | Description |\n|---|---|\n| `npm run dev` | Start dev mode |\n| `npm run typecheck` | Run TypeScript type checking |\n| `npm run build` | Build renderer + main bundles |\n| `npm run dist` | Package for current platform |\n| `npm run dist:win` | Package for Windows (NSIS + portable + zip) |\n| `npm run dist:mac` | Package for macOS (DMG + zip) |\n| `npm run dist:linux` | Package for Linux (AppImage + deb + tar.gz) |\n| `npm run make-icon` | Generate icon assets to `build/icon.svg` |\n\n### Browser Preview Mode\n\nOpen `http://localhost:5173/` directly in a browser for layout and responsive checks. The renderer falls back to mock data when `window.piDesktop` is unavailable — useful for CSS/UI work without Electron. Real IPC features (agents, sessions, file ops) require the Electron app.\n\n---\n\n## Project Structure\n\n```txt\nsrc/\n├─ main/\n│  ├─ fs/                 # File tree service\n│  ├─ git/                # Git branch service\n│  ├─ pi/                 # Pi process \u0026 RPC manager\n│  ├─ projects/           # Project persistence\n│  ├─ sessions/           # Pi session scanning\n│  ├─ settings/           # App settings persistence\n│  ├─ terminal/           # Agent-scoped pty terminal sessions\n│  └─ index.ts            # Electron main entry\n│\n├─ preload/\n│  └─ index.ts            # Safe IPC bridge\n│\n├─ renderer/\n│  └─ src/\n│     ├─ App.tsx          # Main UI\n│     ├─ components/      # Split UI components\n│     ├─ config/          # Config modal tabs and helpers\n│     ├─ previewApi.ts    # Browser preview fallback\n│     ├─ styles.css       # App styling\n│     └─ main.tsx         # React entry\n│\n└─ shared/\n   ├─ ipc.ts              # IPC channel names\n   └─ types.ts            # Shared DTOs\n```\n\n---\n\n## Release Notes\n\nSee [CHANGELOG.md](CHANGELOG.md) (English) or [CHANGELOG.zh-CN.md](CHANGELOG.zh-CN.md) (Chinese) for detailed version history.\n\n---\n\n## Contributors\n\nThank you to everyone who has contributed to PiDeck! See the full list in [CONTRIBUTORS.en.md](CONTRIBUTORS.en.md).\n\n---\n\n## QQ Community\n\nJoin the PiDeck QQ group for discussion and feedback:\n\n**1026218644**\n\n---\n\n## Security\n\nThis app starts local `pi` processes and exposes limited file operations through Electron IPC. Only run from trusted source code. The app sends an anonymous, low-frequency `app_heartbeat` by default to understand version distribution, platform compatibility, and active installations; it can be disabled in Settings. It does not collect project paths, code, message content, session content, or file names, and it does not upload files. The third-party analytics service receives request metadata. pi agent process proxy and desktop model fetch/test proxy can be configured separately; external links opened in the system browser still follow the browser/system network settings.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayuayue%2Fpideck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayuayue%2Fpideck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayuayue%2Fpideck/lists"}