How dlyzzt/pi-desktop works
Pi Agent Desktop is a local-first Electron and React workbench for the Pi Coding Agent. The main workflow runs from chat and session controls in the renderer, through desktop IPC and the supervised Agent Host, into Pi session execution and model services; streamed responses and execution history return to the workspace. Separate branches provide project files, browser automation, MCP and messaging integrations, and development-tool/process management. Edges use README statements or the sampled source index/excerpts; many feature internals were not sampled, so undocumented links are omitted.
Main entry points: rpc-manager.ts Agent Host RPC · App.tsx Chat workspace · useAgentSession.ts Session controls · ipc.ts Desktop IPC
Components 20
Desktop shell
- Chat workspace
src/renderer/App.tsx - Session controls
src/renderer/hooks/useAgentSession.ts - Desktop IPC
src/main/ipc.ts - Host supervisor
src/main/host-manager.ts
Agent sessions
- Agent Host RPC
src/agent-host/rpc-manager.ts - Session services
src/agent-host/desktop-session-services.ts - Session history
src/agent-host/session-reader.ts - Models and routing
src/agent-host/azure-upgrade.ts
Agent integrations
- MCP services
src/agent-host/mcp/service.ts - Message channels
src/agent-host/channels/channel-manager.ts - Herdr runtime
src/main/herdr/runtime-manager.ts - Skills and plugins
src/agent-host/skills-service.ts
Workspace capabilities
- Browser interface
src/renderer/components/browser/BrowserDock.tsx - Browser automation
src/main/browser/browser-tab-manager.ts - Project files
src/agent-host/handlers/files.ts
Runtime operations
- Toolchain manager
src/main/toolchains/manager.ts - Managed processes
src/agent-host/managed-process/service.ts - Desktop updates
src/main/update-manager.ts
Other components
- User
- Update service
Connections 21
- User → Chat workspace: uses
README.md - Chat workspace → Session controls: controls sessions
src/renderer/hooks/useAgentSession.ts - Session controls → Desktop IPC: sends commands
README.md - Desktop IPC → Host supervisor: routes IPC
src/smoke/main.ts - Host supervisor → Agent Host RPC: supervises
src/main/host-manager.ts - Agent Host RPC → Session services: creates services
src/agent-host/desktop-session-services.ts - Agent Host RPC → Session history: reads sessions
src/agent-host/session-reader.ts - Session services → Models and routing: configures models
src/agent-host/desktop-session-services.ts - Agent Host RPC → MCP services: provides MCP tools
src/agent-host/rpc-manager.ts - Agent Host RPC → Message channels: handles channel turns
src/agent-host/channels/channel-manager.ts - User → Browser interface: controls browser
README.md - Browser interface → Browser automation: requests actions
README.md - Agent Host RPC → Browser automation: invokes browser tools
src/agent-host/rpc-manager.ts - User → Project files: works with files
README.md - Agent Host RPC → Toolchain manager: resolves tools
src/main/toolchains/manager.ts - Agent Host RPC → Managed processes: manages processes
src/agent-host/managed-process/service.ts - User → Herdr runtime: controls fleet
README.md - Agent Host RPC → Herdr runtime: connects runtime
- Agent Host RPC → Skills and plugins: loads extensions
README.md - User → Desktop updates: requests updates
README.md - Desktop updates → Update service: checks releases
src/main/update-manager.ts