pi-web
Web UI for the pi coding agent
Discover how Pi Web's project-trust validation stops unauthorized file access using trust gating and path-allowlist enforcement. Secure your workspace today.
How Pi-Web's `samePath()` Handles Windows vs POSIX Path SecurityLearn how Pi-Web's samePath handles Windows and POSIX path security with case-insensitive and sensitive comparisons for secure file path handling.
Pi‑Web Context Menu Extension Hook: How Downstream Integrations WorkDiscover how the Pi-Web context menu extension hook enables downstream integrations. Learn to extend, modify, or replace session row context menus without core application coupling. agegr/pi-web.
How OAuth Device-Code Flow Streams Through SSE in Pi-Web Auth RoutesLearn how the Pi-Web app streams OAuth device-code flow progress using Server-Sent Events SSE in Next.js auth routes for real-time browser updates without polling.
How the FileViewer Handles Automatic Refresh for Different File Types in pi-webDiscover how pi-web's FileViewer uses Server-Sent Events to automatically refresh different file types, ensuring live updates via a bust counter on change events.
How the Sidebar Polls `/api/agent/running` and Pauses in Background TabsLearn how the sidebar polls agent running status and pauses in background tabs. Discover efficient network request handling to save CPU and bandwidth.
How `globalThis.__piSessions` Survives Next.js Hot-Reload in Pi WebDiscover how globalThis__piSessions survives Nextjs hot reload in Pi Web. Pi Web keeps active sessions in a global object that persists through module updates, ensuring continuity.
How Pi Web's `.jsonl` Session Files Store Branching History: A Complete Technical GuideExplore how Pi Web's .jsonl session files store branching history using parentSession headers and in-file branch summaries with parentId linkage. Learn the technical details.
How Session Export Generates Iterative Tree Helpers to Prevent Stack Overflow in pi-webLearn how pi-web session export prevents stack overflow by patching recursive tree traversal with iterative stack-based helpers for rendering deeply nested sessions.
How the Completion Sound Unlocks and Plays in the useAudio Hook: A Technical Deep DiveDiscover how the useAudio hook unlocks and plays completion sounds. Explore its three-stage workflow from localStorage initialization to AudioContext activation and tone synthesis.
How Dual-Auth Provider Handling Works in `provider-listing.ts`Learn how dual-auth provider handling works in provider-listing.ts. Discover dynamic SDK definitions, API-key and OAuth lists, and UI toggles for authentication methods.
How Plugins and Skills Are Managed Through Different API Routes in Pi-WebDiscover how Pi-web manages plugins and skills using distinct API routes. Learn about specialized endpoints and backend logic for NPM packages and markdown skill files.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →