# pi-web | Alex Yang | Knowledge Base | Instagit

Web UI for the pi coding agent

GitHub Stars: 2.1k

Repository: https://github.com/agegr/pi-web

---

## Articles

### [How Project-Trust Validation Prevents Unauthorized File Access in Pi Web](/agegr/pi-web/how-does-project-trust-validation-prevent-unauthorized-file-access)

Discover how Pi Web's project-trust validation stops unauthorized file access using trust gating and path-allowlist enforcement. Secure your workspace today.

- Tags: security
- Published: 2026-08-18

### [How Pi-Web's `samePath()` Handles Windows vs POSIX Path Security](/agegr/pi-web/how-does-path-security-handle-windows-vs-posix-paths-with-samepath)

Learn how Pi-Web's samePath handles Windows and POSIX path security with case-insensitive and sensitive comparisons for secure file path handling.

- Tags: deep-dive
- Published: 2026-08-18

### [Pi‑Web Context Menu Extension Hook: How Downstream Integrations Work](/agegr/pi-web/how-does-the-context-menu-extension-hook-work-for-downstream-integrations)

Discover 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.

- Tags: how-to-guide
- Published: 2026-08-18

### [How OAuth Device-Code Flow Streams Through SSE in Pi-Web Auth Routes](/agegr/pi-web/how-does-oauth-device-code-flow-stream-through-sse-in-auth-routes)

Learn 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.

- Tags: deep-dive
- Published: 2026-08-18

### [How the FileViewer Handles Automatic Refresh for Different File Types in pi-web](/agegr/pi-web/how-does-the-fileviewer-handle-automatic-refresh-for-different-file-types)

Discover 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.

- Tags: internals
- Published: 2026-08-18

### [How the Sidebar Polls `/api/agent/running` and Pauses in Background Tabs](/agegr/pi-web/how-does-the-sidebar-poll-api-agent-running-and-handle-background-tab-pausing)

Learn how the sidebar polls agent running status and pauses in background tabs. Discover efficient network request handling to save CPU and bandwidth.

- Tags: internals
- Published: 2026-08-18

### [How `globalThis.__piSessions` Survives Next.js Hot-Reload in Pi Web](/agegr/pi-web/how-does-globalthis-pisessions-survive-next-js-hot-reload)

Discover 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.

- Tags: internals
- Published: 2026-08-18

### [How Pi Web's `.jsonl` Session Files Store Branching History: A Complete Technical Guide](/agegr/pi-web/how-does-the-session-file-format-jsonl-store-branching-history)

Explore 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.

- Tags: technical-guide
- Published: 2026-08-18

### [How Session Export Generates Iterative Tree Helpers to Prevent Stack Overflow in pi-web](/agegr/pi-web/how-does-session-export-generate-iterative-tree-helpers-to-prevent-stack-overflow)

Learn how pi-web session export prevents stack overflow by patching recursive tree traversal with iterative stack-based helpers for rendering deeply nested sessions.

- Tags: internals
- Published: 2026-08-18

### [How the Completion Sound Unlocks and Plays in the useAudio Hook: A Technical Deep Dive](/agegr/pi-web/how-does-the-completion-sound-unlock-and-play-in-useaudio-hook)

Discover how the useAudio hook unlocks and plays completion sounds. Explore its three-stage workflow from localStorage initialization to AudioContext activation and tone synthesis.

- Tags: deep-dive
- Published: 2026-08-18

### [How Dual-Auth Provider Handling Works in `provider-listing.ts`](/agegr/pi-web/how-does-dual-auth-provider-handling-work-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.

- Tags: internals
- Published: 2026-08-18

### [How Plugins and Skills Are Managed Through Different API Routes in Pi-Web](/agegr/pi-web/how-are-plugins-and-skills-managed-through-different-api-routes)

Discover 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.

- Tags: internals
- Published: 2026-08-18

### [How the Pi-Web File Access Allow-List Security Boundary Works](/agegr/pi-web/how-does-the-file-access-allow-list-security-boundary-work)

Learn how Pi-Web's file access allow-list security boundary prevents unauthorized access by validating fs calls against a whitelist of allowed roots before execution.

- Tags: internals
- Published: 2026-08-18

### [How Worktrees and Project Grouping Resolve in `lib/worktree.ts`](/agegr/pi-web/how-do-worktrees-and-project-grouping-resolve-in-lib-worktree-ts)

Discover how Pi-Web's lib/worktree.ts resolves worktrees and project grouping through cached discovery, Git interrogation, and path derivation. Optimize your Git workflow today.

- Tags: internals
- Published: 2026-08-18

### [How Pi-Web Compaction SSE Events Work: Old `auto_*` vs New `compaction_*` Event Names](/agegr/pi-web/how-do-compaction-sse-events-work-both-old-and-new-event-names)

Understand Pi-Web compaction SSE events with our guide. Learn about old auto_* and new compaction_* event names and how they track session compaction.

- Tags: internals
- Published: 2026-08-18

### [SSE Reconnection for Page Refresh Mid-Stream in the Chat Window: How It Works](/agegr/pi-web/how-does-sse-reconnection-handle-page-refresh-mid-stream-in-chatwindow)

Learn how SSE reconnection maintains chat continuity during page refreshes using retry-aware logic and grace-period hooks. Discover the agegr/pi-web solution.

- Tags: internals
- Published: 2026-08-18

### [How Enabled Models Scoping Works with Minimatch Globs and Thinking Level in Pi Web](/agegr/pi-web/how-does-enabledmodels-scoping-work-with-minimatch-globs-and-thinkinglevel)

Learn how enabledModels scoping uses minimatch globs to filter models and set thinking levels. Discover model resolution and selection logic in Pi Web.

- Tags: deep-dive
- Published: 2026-08-18

### [How Tool‑Call Field Normalization Works Between Pi‑Web Session Files and `ToolCallContent` Types](/agegr/pi-web/how-does-toolcall-field-normalization-work-between-file-format-and-toolcallcontent-types)

Discover how Pi-Web normalizes tool-call fields from session files to ToolCallContent types. Learn about the mapping of id to toolCallId, name to toolName, and JSON argument parsing.

- Tags: internals
- Published: 2026-08-18

### [Fork vs In-Session Branch (Continue) in pi-web: Key Differences Explained](/agegr/pi-web/what-is-the-difference-between-fork-and-in-session-branch-continue-in-pi-web)

Understand the key differences between Fork and Continue (in-session branch) in pi-web. Learn how each method manages session files and history for independent workflows.

- Tags: deep-dive
- Published: 2026-08-18

### [Why the AgentSession Wrapper Must Be Destroyed Immediately After Fork](/agegr/pi-web/why-must-the-wrapper-be-destroyed-immediately-after-fork-in-agentsession)

Learn why the AgentSession wrapper must be destroyed immediately after fork. Avoid corrupting parentSession chains and ensure correct request handling by understanding this critical step.

- Tags: internals
- Published: 2026-08-18

### [AgentSession Lifecycle Management in rpc-manager.ts: Complete Technical Guide](/agegr/pi-web/how-does-agentsession-lifecycle-management-work-in-rpc-manager-ts)

Master AgentSession lifecycle management in rpc-manager.ts with this technical guide. Learn about global registries, idle timeouts, and prompt admission chains for efficient session handling.

- Tags: deep-dive
- Published: 2026-08-18

### [How Markdown Rendering Works in the Pi Web UI: Architecture, Plugins, and Custom Components](/agegr/pi-web/how-is-markdown-rendering-handled-in-ui)

Discover how the Pi Web UI renders markdown using react-markdown plugins for math, GitHub flavor, code highlighting, Mermaid diagrams, and local links. Understand its architecture.

- Tags: architecture
- Published: 2026-08-17

### [How Project Trust and Project Identity Work in Pi Web: Security and Session Grouping Explained](/agegr/pi-web/how-does-project-trust-and-identity-work)

Discover how project trust and project identity in Pi Web ensure secure local resource execution via user consent and correct session grouping. Learn about ProjectTrustStore and projectIdentityKey.

- Tags: deep-dive
- Published: 2026-08-17

### [How Pi-Web Session Auto-Naming Works: A Complete Technical Guide](/agegr/pi-web/how-does-session-auto-naming-work-in-pi-web)

Discover how pi-web session auto-naming works. Learn how it creates readable titles by analyzing conversation history without impacting the real session.

- Tags: deep-dive
- Published: 2026-08-17

### [How Session Context Menu Integration Works for Downstream Consumers in Pi‑Web](/agegr/pi-web/how-does-session-context-menu-integration-work)

Discover how Pi-Web session context menu integration empowers downstream consumers to customize menus via DOM events without altering core UI code. Learn more today!

- Tags: internals
- Published: 2026-08-17

### [What Is the Purpose of parentSession Metadata in Pi Web Session Files?](/agegr/pi-web/purpose-of-parentsession-metadata-in-session-files)

Understand parentSession metadata in Pi Web session files. Learn how it tracks origin and maintains lineage for UI rendering and relationship management without impacting runtime logic.

- Tags: how-to-guide
- Published: 2026-08-17

### [How Pi-Web Handles Running State Polling and Reconciliation During Visibility Changes](/agegr/pi-web/how-does-running-state-polling-handle-visibility-changes)

Discover how Pi-Web manages state polling and reconciliation during visibility changes. Learn how `visibilitychange` and `online` events ensure UI sync with backend AgentSessions.

- Tags: internals
- Published: 2026-08-17

### [Pi-Web File Viewer Supported File Types: How Preview Rendering Works](/agegr/pi-web/what-file-types-does-file-viewer-support)

Discover Pi Web file viewer supported file types, including images, code, and more. Learn how its preview rendering pipeline works with React components.

- Tags: how-to-guide
- Published: 2026-08-17

### [How Session Compaction Works in Pi Web: Events, Triggers, and Implementation](/agegr/pi-web/how-does-session-compaction-work-and-what-events-are-emitted)

Learn how session compaction in Pi Web archives chat turns into a summary and emits compaction_start and compaction_end events for UI synchronization. Explore triggers and implementation.

- Tags: internals
- Published: 2026-08-17

### [How Git Worktree Integration and Project Grouping Work in pi-web](/agegr/pi-web/how-does-git-worktree-integration-and-project-grouping-work)

Learn how pi-web uses Git worktrees and project grouping for terminal session organization. Discover its REST API for managing worktrees and grouped sessions efficiently.

- Tags: how-to-guide
- Published: 2026-08-17

### [How SSE Streaming Handles Reconnection After Page Refresh in Pi-Web](/agegr/pi-web/how-does-sse-streaming-handle-reconnection-after-page-refresh)

Learn how Pi-Web's SSE streaming automatically reconnects after a page refresh. Discover UI state reconciliation, grace timers, and HTTP polling fallbacks.

- Tags: internals
- Published: 2026-08-17

### [How Tool Presets Work in Pi-Web: PRESET_NONE, READ_ONLY, DEFAULT, and FULL Explained](/agegr/pi-web/how-do-tool-presets-work-in-pi-web)

Discover how tool presets like PRESET_NONE, READ_ONLY, DEFAULT, and FULL control AgentSession operations in pi-web. Understand server and client-side enforcement for secure tool access.

- Tags: deep-dive
- Published: 2026-08-17

### [Fork vs Navigate_Tree Branching in Pi-Web: What's the Difference?](/agegr/pi-web/difference-between-fork-and-navigate-tree-branching-in-pi-web)

Understand the core differences between fork and navigate_tree branching in pi-web. Fork creates new session files while navigate_tree uses existing ones to streamline your workflow.

- Tags: deep-dive
- Published: 2026-08-17

### [Understanding the Session File Format Structure in pi-web: JSONL Entries and Entry-ID Mapping](/agegr/pi-web/what-is-session-file-format-structure-in-pi-web)

Explore the pi-web session file format structure using JSONL entries and entry-ID mapping. Understand how pi-web stores conversations and maps UI elements for efficient data access.

- Tags: internals
- Published: 2026-08-17

### [How Basic Authentication Works with PI_WEB_PASSWORD and Allowed Hosts in Pi-Web](/agegr/pi-web/basic-authentication-pi-web-password-allowed-hosts)

Learn how Pi-web enables basic authentication with PIWEBPASSWORD and restricts access using PIWEBALLOWED_HOSTS. Secure your Pi-web instance effectively.

- Tags: how-to-guide
- Published: 2026-08-16

### [How pi-web Honors HTTP_PROXY, HTTPS_PROXY, and NO_PROXY Environment Variables: Complete Technical Guide](/agegr/pi-web/proxy-environment-variable-handling)

Learn how pi-web automatically uses HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables for outbound requests. Discover proxy agent instantiation and bypass rules in this technical guide.

- Tags: deep-dive
- Published: 2026-08-16

### [How Pi‑Web Plays Completion Sounds Using AudioContext and a localStorage Toggle](/agegr/pi-web/completion-sound-audiocontext-and-localstorage)

Learn how Pi-Web uses AudioContext and localStorage to play completion sounds, overcoming browser autoplay limits with user interaction.

- Tags: internals
- Published: 2026-08-16

### [How the pi-web Directory Browser Works With File Upload and Directory Picker](/agegr/pi-web/directory-browser-file-upload-and-picker)

Discover how the pi-web directory browser facilitates filesystem navigation file uploads and directory selection using a platform-agnostic library and React picker component Learn more today

- Tags: internals
- Published: 2026-08-16

### [How BranchNavigator Switches Between Leaf Contexts in a Pi‑Web Session](/agegr/pi-web/branchnavigator-leaf-context-switching)

Learn how BranchNavigator switches leaf contexts in a Pi-Web session using a callback-driven flow and RPC navigate_tree command to update the backend cursor.

- Tags: internals
- Published: 2026-08-16

### [How Session Export Generates HTML and Uses Iterative Tree Helpers in Pi-Web](/agegr/pi-web/session-export-html-generation-and-tree-helpers)

Discover how session export generates HTML in Pi-Web using the pi-coding-agent CLI and iterative tree helpers to avoid stack overflows with deep trees.

- Tags: internals
- Published: 2026-08-16

### [How ProjectTrustDialog Works in Pi Web: Trust Status Storage and Security Flow](/agegr/pi-web/project-trust-dialog-and-trust-status-storage)

Understand how Pi Web's ProjectTrustDialog manages trust status, stores decisions in ProjectTrustStore, and secures user code execution. Learn the storage and security flow.

- Tags: internals
- Published: 2026-08-16

### [File Viewer Supported File Types: What Images, Audio, PDFs, and DOCX Files Can Pi Web Preview?](/agegr/pi-web/fileviewer-supported-preview-types)

Discover what file types Pi Web's File Viewer supports including images, audio, PDFs, and DOCX. Preview your documents with ease.

- Tags: api-reference
- Published: 2026-08-16

### [How Pi Web Reconciles Running State Polling on Visibility Change and VisibilityState](/agegr/pi-web/running-state-polling-visibility-reconciliation)

Discover how Pi Web reconciles running state polling with visibilitychange and visibilityState using a dual mechanism of polling and event listeners for seamless UI updates.

- Tags: internals
- Published: 2026-08-16

### [How Session Compaction Works in Pi Web and What Events It Emits](/agegr/pi-web/session-compaction-mechanism-and-events)

Discover how Pi Web session compaction streamlines chat histories and understand the compaction_start and compaction_end events that keep your UI in sync. Learn more now.

- Tags: internals
- Published: 2026-08-16

### [In-Session Branching vs Forking in Pi-Web: How navigate_tree Differs from New Session Files](/agegr/pi-web/in-session-branching-vs-forking-sessions)

Understand in-session branching versus forking new session files in Pi-Web. Learn how navigate_tree updates the leaf pointer unlike creating new conversation histories.

- Tags: deep-dive
- Published: 2026-08-16

### [What Happens During `fork()` and Why the Agent Session Wrapper Must Be Destroyed Immediately After](/agegr/pi-web/fork-process-and-wrapper-destruction)

Discover what happens during fork() and why the AgentSessionWrapper must be destroyed immediately after. Learn how fork() corrupts future session operations if the wrapper is not destroyed.

- Tags: internals
- Published: 2026-08-16

### [How the Skills Service Uses DefaultResourceLoader for Settings Paths and Project Skills](/agegr/pi-web/skills-service-resource-loader-usage)

Learn how the Pi Web skills service leverages DefaultResourceLoader to find settings paths and project skills from settings.json, npm packages, and the .agents/skills folder. Discover skill locations efficiently.

- Tags: internals
- Published: 2026-08-16

### [How Pi‑Web Plugin Management Uses pi-coding-agent's SettingsManager and DefaultPackageManager](/agegr/pi-web/plugin-management-with-settingsmanager-and-package-manager)

Discover how Pi-Web plugin management leverages pi-coding-agent's SettingsManager and DefaultPackageManager for efficient configuration and package operations. Learn about clean separation.

- Tags: how-to-guide
- Published: 2026-08-16

### [How Model Configuration Works with Provider Authentication and Dual‑Auth Provider Handling in Pi‑Web](/agegr/pi-web/model-configuration-provider-auth-handling)

Understand how Pi-Web configures models, handles provider authentication, and manages dual-auth providers using SDK metadata. Learn how credentials determine API Key or OAuth placement.

- Tags: deep-dive
- Published: 2026-08-16

### [How Pi-Web Tool Presets (NONE, READ_ONLY, DEFAULT, FULL) Work and How They're Passed at Session Creation](/agegr/pi-web/tool-presets-and-session-creation-parameters)

Understand Pi-Web tool presets NONE READ_ONLY DEFAULT and FULL. Learn how these presets control available coding tools and pass to the backend during session creation for seamless integration.

- Tags: deep-dive
- Published: 2026-08-16

### [Understanding the Pi Web .jsonl Session File Format and Entry Normalization](/agegr/pi-web/jsonl-session-file-format-and-normalization)

Explore the Pi Web .jsonl session format, a line-delimited JSON structure. Learn how Pi Web normalizes SDK entries to UI types using parallel arrays and tool-call field mapping.

- Tags: internals
- Published: 2026-08-16

### [How SSE Event Streaming Works for Agent Events in Pi-Web: Understanding the 30-Second Grace Window](/agegr/pi-web/sse-event-streaming-and-grace-window)

Learn how Pi-Web uses SSE event streaming for agent events and its 30-second grace window to ensure reliable real-time updates despite network latency or UI interruptions.

- Tags: deep-dive
- Published: 2026-08-16

### [How pi‑web Handles Git Worktrees and Resolves Shared Project Roots Across Multiple Checkouts](/agegr/pi-web/git-worktree-handling-and-project-root-resolution)

Discover how pi-web seamlessly manages Git worktrees, resolving shared project roots and unifying multiple checkouts into a single logical project for efficient development.

- Tags: internals
- Published: 2026-08-16

### [How Pi-Web's File-Access Allow-List Mechanism and `isPathWithinRoots()` Secure the File Browser](/agegr/pi-web/file-access-allow-list-and-path-validation)

Learn how Pi-Web's file-access allow-list and isPathWithinRoots() secure the file browser by restricting access to registered directories and enforcing path containment.

- Tags: security
- Published: 2026-08-16

### [How Thinking Level Selection Works in ChatInput: A Deep Dive into the pi-web Implementation](/agegr/pi-web/how-does-thinking-level-selection-work-in-chatinput)

Explore how pi-web's ChatInput component manages thinking level selection. Learn about its static list, conditional UI, and backend RPC communication for model reasoning depth.

- Tags: deep-dive
- Published: 2026-08-15

### [How Pi‑Web Model Discovery Fetches Upstream Provider Lists: A Deep Dive](/agegr/pi-web/how-does-model-discovery-fetch-upstream-provider-lists)

Discover how Pi-Web's model discovery fetches upstream provider lists using a server-side API route. Learn about authentication and response parsing for DiscoveredModel objects.

- Tags: deep-dive
- Published: 2026-08-15

### [How the Pi-Web CSS Theme System Works with CSS Variables](/agegr/pi-web/how-does-css-theme-system-with-css-variables-work)

Discover how Pi-Web's CSS theme system uses CSS variables for instant light/dark mode switching. Learn to swap token values by toggling a class on the html element.

- Tags: internals
- Published: 2026-08-15

### [How Session Export to HTML Handles Deep Tree Traversal in Pi Web](/agegr/pi-web/how-does-session-export-to-html-work-with-deep-trees)

Discover how Pi Web overcomes deep tree traversal challenges when exporting chat sessions to HTML. Learn about the iterative patch that prevents stack overflow errors.

- Tags: deep-dive
- Published: 2026-08-15

### [How PWA Offline Support and Service Worker Work in Pi Web](/agegr/pi-web/how-does-pwa-offline-support-and-service-worker-work)

Discover how Pi Web leverages PWA offline support and service workers to precache resources, serve fallback pages, and ensure fast loading with cache-first strategies.

- Tags: deep-dive
- Published: 2026-08-15

### [How Model Configuration Testing and Validation Works in pi-web: A Technical Deep Dive](/agegr/pi-web/how-does-model-configuration-test-and-validation-work)

Discover how pi-web validates model configurations using two API endpoints. Learn about runtime loading tests and upstream discovery verification for provider settings.

- Tags: deep-dive
- Published: 2026-08-15

### [How Pi Web's File Browser Prevents Path Traversal Attacks](/agegr/pi-web/how-does-file-browser-security-prevent-path-traversal-attacks)

Learn how Pi Web's file browser prevents path traversal attacks using root directory whitelisting, lexical containment, and real-path resolution for secure file access.

- Tags: security
- Published: 2026-08-15

### [How Pi Web Uses Project Trust to Determine Allowed Operations](/agegr/pi-web/how-does-project-trust-determine-allowed-operations)

Discover how Pi Web uses project trust to determine allowed operations, gating code execution before loading untrusted project-local resources.

- Tags: how-to-guide
- Published: 2026-08-15

### [How the Tool Preset System Persists for New vs Existing Sessions in Pi Web](/agegr/pi-web/how-does-tool-preset-system-persist-for-new-sessions-vs-existing-ones)

Discover how Pi Web's tool preset system persists across sessions. Learn about localStorage for new sessions and server files for existing ones.

- Tags: internals
- Published: 2026-08-15

### [How the Fork Operation Handles Wrapper Destruction to Prevent Corrupt Parent-Session Chains](/agegr/pi-web/how-does-fork-operation-handle-wrapper-destruction-to-prevent-corrupt-parentsession-chains)

Learn how the fork operation in agegr/pi-web destroys AgentSessionWrapper to prevent corrupt parentSession chains, ensuring metadata integrity.

- Tags: internals
- Published: 2026-08-15

### [How the 10-Minute Idle Timeout Works for AgentSession in pi-web](/agegr/pi-web/how-does-10-minute-idle-timeout-work-for-agentsession)

Understand the 10-minute idle timeout for AgentSession in pi-web. Learn how it resets timers and calls shutdown() to manage inactive sessions efficiently.

- Tags: internals
- Published: 2026-08-15

### [How Running-State Polling and Reconciliation Work in π-Web](/agegr/pi-web/how-does-running-state-polling-and-reconciliation-work)

Understand running-state polling and reconciliation in π-Web. Discover how a 2.5-second heartbeat and fallback checks sync UI with backend AgentSessions, recovering from missed events and visibility changes.

- Tags: internals
- Published: 2026-08-15

### [How the Completion Sound Feature Integrates with the Browser in Pi-Web](/agegr/pi-web/how-does-completion-sound-feature-integrate-with-browser)

Discover how the completion sound feature integrates with the browser in Pi-Web. Learn about its custom hook, shared AudioContext, and localStorage persistence.

- Tags: internals
- Published: 2026-08-15

### [How Pi Web Stores Conversations: Understanding the Session File Format (.jsonl)](/agegr/pi-web/how-does-session-file-format-jsonl-structure-work)

Discover how Pi Web stores conversations using the .jsonl session file format. Learn about its append-only structure and immutable history of events.

- Tags: internals
- Published: 2026-08-15

### [How Pi‑Web Handles Dual‑Auth Providers Like Anthropic and GitHub Copilot](/agegr/pi-web/how-does-authentication-handle-dual-auth-providers-like-anthropic-and-github-copilot)

Discover how Pi-Web's capability-based architecture handles dual-auth providers like Anthropic and GitHub Copilot, dynamically detecting API-key and OAuth support for seamless integration.

- Tags: internals
- Published: 2026-08-15

### [How Tool Call Normalization Works Between Pi and Pi-Web: A Complete Technical Guide](/agegr/pi-web/how-does-tool-call-normalization-work-between-pi-and-pi-web)

Understand tool call normalization in agegr/pi-web. Learn how Pi's JSON-L format converts to TypeScript ToolCallContent for the Pi-Web UI.

- Tags: deep-dive
- Published: 2026-08-15

### [How enabledModels Scoping Works with Minimatch Patterns in pi-web](/agegr/pi-web/how-does-enabledmodels-scoping-work-with-minimatch-patterns)

Discover how enabledModels scoping in pi-web utilizes minimatch patterns to filter AI models by provider/modelId. Learn how this ensures consistent scoping logic across web and TUI interfaces.

- Tags: internals
- Published: 2026-08-15

### [How SSE Reconnection Works on Page Refresh Mid-Stream in Pi-Web](/agegr/pi-web/how-does-sse-reconnection-work-on-page-refresh-mid-stream)

Discover how Pi-Web's SSE reconnection seamlessly restores streaming UI after a page refresh mid-stream, ensuring uninterrupted data flow.

- Tags: deep-dive
- Published: 2026-08-15

### [How the File Access Allow-List Security Model Works in Pi-Web](/agegr/pi-web/how-does-file-access-allow-list-security-model-work)

Discover how Pi-Web's file access allow-list security model protects your system by dynamically building an allowed roots whitelist for safe file operations.

- Tags: security-model
- Published: 2026-08-15

### [Fork vs In-Session Branching in Pi-Web: A Technical Comparison](/agegr/pi-web/how-do-fork-vs-in-session-branching-work-in-pi-web)

Understand fork vs in-session branching in Pi-Web. Learn how forking creates new session files and in-session branching manages conversation paths within a single file using parentId.

- Tags: technical-comparison
- Published: 2026-08-15

### [How pi-web's AgentSession Lifecycle Works with the In-Process Model](/agegr/pi-web/how-does-pi-webs-agentsession-lifecycle-work-with-in-process-model)

Understand the pi-web AgentSession lifecycle in the in-process model. Learn how pi-web manages sessions using a global registry and locking for efficient operation without external processes.

- Tags: internals
- Published: 2026-08-15

### [How Pi Web Switches Between English and Chinese UI Using Its Custom i18n System](/agegr/pi-web/how-i18n-system-switches-between-english-and-chinese-ui)

Discover how Pi Web's custom i18n system switches between English and Chinese UI instantly. Learn about its client-side approach and persistent user choice for a seamless experience.

- Tags: internals
- Published: 2026-08-14

### [How Session Export to HTML Handles Deep Tree Traversal in Pi Web](/agegr/pi-web/how-session-export-to-html-works-with-deep-tree-traversal)

Discover how Pi Web's session export to HTML prevents stack overflow crashes using an iterative patch for deep tree traversal. Learn about the loop-based approach.

- Tags: internals
- Published: 2026-08-14

### [How Pi Web Unlocks and Plays the Completion Sound in the Browser](/agegr/pi-web/how-completion-sound-is-unlocked-and-played-in-browser)

Learn how Pi Web plays the completion sound in your browser. Discover how the useAudio hook unlocks AudioContext and generates a sine wave on user interaction.

- Tags: how-to-guide
- Published: 2026-08-14

### [How to Run the Development Server and Tests for Pi Web: A Complete Guide](/agegr/pi-web/how-to-run-pi-web-development-server-and-tests)

Learn to run the Pi Web development server and execute tests with this complete guide. Easily get your Next.js UI for the pi coding agent up and running locally using npm commands.

- Tags: how-to-guide
- Published: 2026-08-14

### [How Model Runtime Capabilities Determine Provider Listing in Pi Web](/agegr/pi-web/how-model-runtime-capabilities-are-determined-for-provider-listing)

Discover how Pi Web lists providers by examining model runtime capabilities. Learn about the three-layer pipeline querying authentication methods, credential status, and model counts.

- Tags: internals
- Published: 2026-08-14

### [How Pi Web's Chat Minimap Renders and Navigates Large Sessions](/agegr/pi-web/how-chat-minimap-renders-and-navigates-large-sessions)

Discover how Pi Web's Chat Minimap component renders and navigates large sessions. Explore its four coordinated stages for instant access to any turn in thousands of messages.

- Tags: internals
- Published: 2026-08-14

### [How the Project-Trust Dialog Integrates with File Access in Pi Web](/agegr/pi-web/how-project-trust-dialog-integrates-with-file-access)

Discover how the Project-Trust Dialog in Pi Web integrates with file access. Learn how user trust decisions gate access to project-local resources and ensure secure file reads.

- Tags: internals
- Published: 2026-08-14

### [How Pi Web's File Viewer Handles Images, PDFs, and DOCX Files](/agegr/pi-web/how-file-viewer-handles-different-file-types)

Discover how Pi Web's FileViewer component displays images, PDFs, and DOCX files. Learn about its efficient file type routing and specialized viewers for a seamless experience.

- Tags: how-to-guide
- Published: 2026-08-14

### [How Pi Web Reads and Parses Session Files From .jsonl Format](/agegr/pi-web/how-session-files-are-read-and-parsed-from-jsonl-format)

Discover how Pi Web reads and parses session files from .jsonl format. Learn about streaming headers, loading entries via SessionManager SDK, and transforming raw data for UI readiness.

- Tags: how-to-guide
- Published: 2026-08-14

### [How `normalizeToolCalls` Handles Field Name Mismatches in Pi Web: A Deep Dive into the Pi-to-UI Translation Layer](/agegr/pi-web/how-normalizetoolcalls-function-handles-field-name-mismatches)

Learn how normalizeToolCalls in Pi Web automatically maps legacy SDK field names like id and name to Pi-Web UI fields like toolCallId and toolName for correct tool-call rendering.

- Tags: deep-dive
- Published: 2026-08-14

### [How to Add Custom Extension Widgets to Pi Web's Chat Interface: A Complete Guide](/agegr/pi-web/how-to-add-custom-extension-widgets-to-chat-interface)

Learn to add custom extension widgets to Pi Web's chat interface. This guide shows you how to emit a setWidget UI request using agent.emit() for seamless integration.

- Tags: how-to-guide
- Published: 2026-08-14

### [Pi Web Plugin and Skill Management APIs: Complete Reference for Extension Management](/agegr/pi-web/how-plugin-and-skill-management-apis-work)

Explore Pi Web's plugin and skill management APIs for seamless extension control. Manage, install, update, enable, and disable extensions and skills securely via HTTP endpoints.

- Tags: api-reference
- Published: 2026-08-14

### [How Pi Web Handles Session Compaction Events via Server-Sent Events (SSE)](/agegr/pi-web/how-session-compaction-events-are-handled-via-sse)

Discover how Pi Web handles session compaction events using Server-Sent Events SSE. Learn about real-time UI sync and automatic reconciliation for missed events in the agegr/pi-web repository.

- Tags: internals
- Published: 2026-08-14

### [How Pi Web's enableModels Scope Resolution Works with Minimatch Patterns](/agegr/pi-web/how-enablemodels-scope-resolution-works-with-minimatch-patterns)

Discover how Pi Web's enableModels scope resolution uses minimatch patterns to match available models. Learn about supported formats and suffixes for efficient model selection.

- Tags: internals
- Published: 2026-08-14

### [How to Configure Remote Access with HTTP Basic Auth in Pi Web](/agegr/pi-web/how-to-configure-remote-access-with-http-basic-auth)

Secure your Pi Web remote access by configuring HTTP Basic Auth. Learn how to set the PI_WEB_PASSWORD environment variable for easy authentication.

- Tags: how-to-guide
- Published: 2026-08-14

### [How Tool Presets Are Applied and Persisted for New Sessions in Pi Web](/agegr/pi-web/how-tool-presets-are-applied-and-persisted-for-new-sessions)

Learn how Pi Web applies and persists tool presets for new sessions. Discover how user-selected presets are read from localStorage, converted to tool names, and sent to the server for AgentSession creation.

- Tags: internals
- Published: 2026-08-14

### [How Model Configuration and Provider Authentication Work in Pi Web](/agegr/pi-web/how-model-configuration-and-provider-authentication-work)

Learn how Pi Web manages model configurations and provider authentication. Discover where your settings are stored and how the system synchronizes them automatically.

- Tags: deep-dive
- Published: 2026-08-14

### [How Pi Web Detects and Switches Git Worktrees from the Sidebar](/agegr/pi-web/how-git-worktrees-are-detected-and-switched-from-sidebar)

Learn how Pi Web uses its backend API to detect and switch Git worktrees directly from the sidebar. Manage your projects efficiently with this intuitive feature.

- Tags: how-to-guide
- Published: 2026-08-14

### [Pi Web File Access Control and Security: A Deep Dive into the Whitelist Architecture](/agegr/pi-web/how-file-access-control-and-security-boundaries-are-implemented)

Discover Pi Web file access control and security. Learn how its whitelist architecture prevents directory traversal with real-path verification and lexical containment. Secure your Pi Web environment.

- Tags: deep-dive
- Published: 2026-08-14

### [Fork vs In‑Session Branch in Pi Web: Key Differences Explained](/agegr/pi-web/understanding-fork-vs-in-session-branches-in-pi-web)

Understand the key differences between fork and in-session branches in Pi Web. Learn how forks create new files while in-session branches navigate existing data.

- Tags: deep-dive
- Published: 2026-08-14

### [How Pi Web Uses `globalThis` for Session Lifecycle Management Across Hot-Reloads](/agegr/pi-web/how-session-lifecycle-management-works-with-globalthis-to-survive-hot-reload)

Discover how Pi Web leverages globalThis for resilient session lifecycle management, ensuring state persists through hot-reloads and preventing data loss.

- Tags: internals
- Published: 2026-08-14

### [How SSE Event Streaming Works for Real-Time Agent Communication in Pi Web](/agegr/pi-web/how-sse-event-streaming-works-for-real-time-agent-communication)

Discover how Pi Web's SSE event streaming pipeline enables real-time agent communication. Learn about its API route, stream factory, and client connection manager.

- Tags: deep-dive
- Published: 2026-08-14

### [How Pi Web Integrates with the Pi Coding Agent and Shares Session Files](/agegr/pi-web/how-pi-web-integrates-with-pi-coding-agent-and-shares-session-files)

Discover how Pi Web integrates with the Pi Coding Agent using REST SSE endpoints and Next.js API routes. Learn how session files are managed and persisted as JSONL for hot reloads.

- Tags: how-to-guide
- Published: 2026-08-14

### [How Pi-Web Implements a File Viewer with Automatic Refresh: SSE and React Patterns Explained](/agegr/pi-web/how-pi-web-implements-file-viewer-automatic-refresh)

Discover how Pi-Web implements automatic file viewer refresh using Server-Sent Events SSE and React patterns. Learn to push file changes and update content seamlessly.

- Tags: deep-dive
- Published: 2026-08-13

### [How Pi-Web Handles SSE Reconnection After Page Refresh During Streaming](/agegr/pi-web/how-pi-web-handles-sse-reconnection-page-refresh-streaming)

Discover how Pi-Web seamlessly restores SSE reconnection after a page refresh. Learn how it fetches session state to resume streaming exactly where you left off.

- Tags: internals
- Published: 2026-08-13

### [Pi-Web HTTP Basic Auth Security Model: How Remote Access Protection Works](/agegr/pi-web/security-model-remote-access-http-basic-auth-pi-web)

Secure remote access to Pi-Web with its two-layer security model, combining host-trust validation and HTTP Basic Authentication. Learn how it works.

- Tags: deep-dive
- Published: 2026-08-13

### [How pi‑web Implements the Draft Store for Local Message Persistence](/agegr/pi-web/how-pi-web-implements-draft-store-local-message-persistence)

Discover how pi-web uses an in-memory Map for its draft store, enabling local message persistence for chat drafts with text and images across page reloads.

- Tags: internals
- Published: 2026-08-13

### [How pi-web Supports Dual-Auth Providers with OAuth and API Key Methods: A Complete Technical Guide](/agegr/pi-web/how-pi-web-supports-dual-auth-providers-oauth-api-key)

Discover how pi-web supports dual-auth providers using OAuth and API keys. Learn about capability-based discovery and type-aware credential storage for seamless authentication.

- Tags: deep-dive
- Published: 2026-08-13

### [How Pi‑Web Handles File Path Encoding Between Server and Client](/agegr/pi-web/how-pi-web-handles-file-path-encoding-server-client)

Discover how Pi-Web safely handles file path encoding between server and client using a two-stage pipeline to transmit filesystem paths with spaces, Unicode, or backslashes.

- Tags: how-to-guide
- Published: 2026-08-13

### [Session Context Menu Extension API in pi-web: How to Customize Session Row Menus](/agegr/pi-web/what-is-session-context-menu-extension-api-pi-web)

Customize session context menu in pi-web with the extension API. Add application-specific actions to session row menus using hooks.

- Tags: api-reference
- Published: 2026-08-13

### [How pi-web Exports a Session to HTML: A Deep Dive into the Server-Side Implementation](/agegr/pi-web/how-export-session-html-feature-works-pi-web)

Discover how pi-web exports Pi session files to HTML via its server-side API. Learn about the Pi CLI, dynamic modules, and overflow prevention for deep session trees.

- Tags: deep-dive
- Published: 2026-08-13

### [How the Completion Sound is Implemented in pi-web Using AudioContext](/agegr/pi-web/how-completion-sound-implemented-pi-web-audiocontext)

Discover how pi-web implements completion sounds using AudioContext and a custom useAudio hook. Learn about dual-oscillator tones and browser autoplay policies.

- Tags: internals
- Published: 2026-08-13

### [How Pi‑Web Handles Session Compaction Events and UI Updates](/agegr/pi-web/how-pi-web-handles-session-compaction-events-ui)

Discover how Pi-Web manages session compaction events and UI updates. Learn about state synchronization and the abort compaction command.

- Tags: internals
- Published: 2026-08-13

### [How Pi‑Web Persists Startup Preferences Without Replaying Agent Commands](/agegr/pi-web/how-pi-web-persists-startup-preferences-without-replaying-commands)

Discover how Pi-Web persists startup preferences by writing UI selections directly to settings.json, avoiding agent command replays for efficient session management.

- Tags: internals
- Published: 2026-08-13

### [Authentication Flows for OAuth, API Key, and Device-Code in Pi-Web](/agegr/pi-web/authentication-flows-oauth-api-key-device-code-pi-web)

Explore pi-web authentication flows for OAuth, API key, and device-code. Learn how SSE and REST endpoints manage secure AI provider access using the ModelRuntime class.

- Tags: deep-dive
- Published: 2026-08-13

### [How Pi-Web Handles enabledModels Scoping with Minimatch Patterns](/agegr/pi-web/how-pi-web-handles-enabledmodels-scoping-minimatch)

Learn how pi-web scopes enabledModels using minimatch patterns. Discover how resolveModelScopeWithDiagnostics filters AI models for UI and AgentSession.

- Tags: internals
- Published: 2026-08-13

### [Understanding the Pi-Web Tool Presets System: NONE, READ_ONLY, DEFAULT, and FULL](/agegr/pi-web/what-is-pi-web-tool-presets-system)

Explore the pi-web tool presets system: NONE, READ_ONLY, DEFAULT, and FULL. Learn how these security tiers manage external tool access for AI assistants and secure your sessions.

- Tags: deep-dive
- Published: 2026-08-13

### [How Pi‑Web Manages and Groups Git Worktrees by Project](/agegr/pi-web/how-git-worktrees-managed-grouped-by-project-pi-web)

Learn how Pi-Web manages and groups Git worktrees by project. Discover REST endpoints for creating, listing, and removing worktrees efficiently. Optimize your Git workflow today.

- Tags: how-to-guide
- Published: 2026-08-13

### [How pi-web Manages File Access Security with the Allowed-Roots System](/agegr/pi-web/how-does-pi-web-manage-file-access-security-allowed-roots)

Discover how pi-web secures file access with its allowed-roots system. Learn about dynamic whitelisting, lexical checks, and symlink attack prevention.

- Tags: internals
- Published: 2026-08-13

### [Server-Sent Events (SSE) Architecture in pi-web: Real-Time Agent Streaming Explained](/agegr/pi-web/what-is-architecture-behind-sse-in-pi-web)

Explore Server-Sent Events SSE architecture in pi-web. Learn how Next.js, ReadableStream, and client-side management power real-time agent streaming with automatic reconnection.

- Tags: architecture
- Published: 2026-08-13

### [How pi-web Integrates with the pi Agent's .jsonl Session File Format](/agegr/pi-web/how-does-pi-web-integrate-with-pi-agent-session-file-format)

Discover how pi-web seamlessly integrates with the pi agent's .jsonl session file format. Learn how it converts JSONL data into UI-ready context for React components.

- Tags: internals
- Published: 2026-08-13

### [Troubleshooting agegr/pi-web Setup](/agegr/pi-web/troubleshooting-agegr-pi-web-setup)

Troubleshoot common agegr/pi-web setup issues like build errors, missing directories, or Node version conflicts. Use this diagnostic checklist for quick resolution.

- Tags: how-to-guide
- Published: 2026-08-11

### [What Programming Languages Are Used in pi-web? A Complete Technical Breakdown](/agegr/pi-web/what-programming-languages-are-used-in-pi-web)

Discover the programming languages powering pi-web. This technical breakdown details its TypeScript Next.js core, JavaScript testing, and CSS Tailwind styling.

- Tags: deep-dive
- Published: 2026-08-11

### [How to Clone the agegr/pi-web Repository: Complete Setup and Architecture Guide](/agegr/pi-web/how-to-clone-the-agegr-pi-web-repository)

Easily clone the agegr/pi-web repository. Follow our guide to install dependencies and launch the dev server for a seamless setup experience.

- Tags: how-to-guide
- Published: 2026-08-11

### [How to Use the Bash `ls` Command for Cleaner Output in Pi-Web Development](/agegr/pi-web/how-to-use-bash-ls-command-for-cleaner-output)

Master the Bash ls command for cleaner output. Learn to use options like -lhXF --color=auto -d */ and -R to format directory listings effectively. No extra tools needed.

- Tags: how-to-guide
- Published: 2026-08-11

### [How to Filter Bash Directory Listings with Pi Web: A Full-Stack Guide](/agegr/pi-web/how-to-filter-bash-directory-listing)

Learn to filter Bash directory listings effectively using Pi Web's fuzzy filtering API. This guide explains how to leverage the /api/file-index endpoint for enhanced command-line searches. Explore the full-stack integration.

- Tags: how-to-guide
- Published: 2026-08-11

### [How to View Directory Contents Using Bash: The `ls` Command and pi‑web API Integration](/agegr/pi-web/what-is-the-bash-command-to-view-directory-contents)

Learn the bash command ls -la to view directory contents, including hidden files in long format. Explore pi-web API integration for enhanced file management.

- Tags: how-to-guide
- Published: 2026-08-11

### [How to List Files in a Directory Using Bash: The pi‑web Approach](/agegr/pi-web/how-to-list-files-in-a-directory-using-bash)

Learn to list files in a directory using Bash with the pi-web repository. Explore server-side Node.js and REST API methods for efficient file listing.

- Tags: how-to-guide
- Published: 2026-08-11

### [How Pi Web Manages SSE Streams for Data Integrity: A Deep Dive into the Event Streaming Architecture](/agegr/pi-web/how-does-pi-web-manage-sse-streams-to-ensure-data-integrity)

Discover how Pi Web ensures SSE stream data integrity with its three-layer architecture. Learn about buffering, handshake protocols, and automatic reconnection for reliable event streaming.

- Tags: deep-dive
- Published: 2026-08-10

### [What Happens When PI_WEB_PASSWORD Is Not Set in pi-web?](/agegr/pi-web/what-happens-if-the-pi-web-password-environment-variable-is-not-set)

Discover what happens when PI_WEB_PASSWORD isn't set in pi-web. Learn how this impacts security and access to the web UI and API endpoints. Find out now.

- Tags: how-to-guide
- Published: 2026-08-10

### [Pi Web Session File Entry Types: Complete Guide to session, model_change, message, and More](/agegr/pi-web/what-are-the-different-session-file-entry-types-like-session-model-change-and-message)

Explore Pi Web session file entry types including session, model_change, and message. Understand how Pi Web transforms UI data into chat elements and state.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Define Custom Model Scopes Using Minimatch in Pi Web](/agegr/pi-web/how-can-i-define-custom-model-scopes-using-minimatch-in-pi-web)

Learn how to define custom model scopes in Pi Web using minimatch glob patterns to filter available language models by provider and modelId. Enhance your session control.

- Tags: how-to-guide
- Published: 2026-08-10

### [What Is the Default Tool Preset in Pi Web When No Preset Is Explicitly Defined?](/agegr/pi-web/what-is-the-default-behavior-for-tool-presets-when-not-explicitly-defined-in-pi-web)

Discover the default tool preset in Pi Web when none is defined. Pi Web automatically enables read, bash, edit, and write tools.

- Tags: faq
- Published: 2026-08-10

### [How Pi Web Handles Session File (.jsonl) Entry Types: From Raw JSON to UI Messages](/agegr/pi-web/how-does-pi-web-handle-different-types-of-entries-in-a-session-file-jsonl)

Learn how Pi Web processes session file entries. Discover its method for converting raw JSON lines to UI messages, handling various entry types for normalized tool calls and custom messages.

- Tags: deep-dive
- Published: 2026-08-10

### [How to Use the Pi Web Global Session Registry (`globalThis.__piSessions`)](/agegr/pi-web/how-can-i-use-the-global-registry-globalthis__pisessions-in-pi-web)

Learn to use globalThis.__piSessions in Pi Web to access active agent sessions. Explore the Map-backed registry and helper functions for type-safe interactions.

- Tags: how-to-guide
- Published: 2026-08-10

### [How Pi Web Lists and Handles Capability-Driven Providers](/agegr/pi-web/how-does-pi-web-list-and-handle-capability-driven-providers)

Discover how Pi Web lists and handles capability-driven providers by inspecting their declared capabilities for API-key and OAuth login, not hard-coded lists.

- Tags: deep-dive
- Published: 2026-08-10

### [Pi Web .jsonl Session File Format: Complete Structure and Parsing Guide](/agegr/pi-web/what-is-the-structure-of-the-jsonl-session-file-format-in-pi-web)

Explore the Pi Web .jsonl session file format. Understand its complete structure and learn how to parse session events with our comprehensive guide and code examples.

- Tags: api-reference
- Published: 2026-08-10

### [Pi Web Worktree Creation and Dirty Worktree Handling: A Complete Technical Guide](/agegr/pi-web/how-does-pi-web-manage-worktree-creation-and-handle-dirty-worktrees)

Learn how Pi Web manages Git worktree creation and handles dirty worktrees. Explore API error detection and force removal options for a smooth workflow.

- Tags: how-to-guide
- Published: 2026-08-10

### [How Pi Web Handles Model Scoping with Minimatch Globs: A Deep Dive](/agegr/pi-web/how-is-model-scoping-handled-in-pi-web-using-minimatch-globs)

Discover how Pi Web leverages minimatch globs for efficient model scoping, filtering UI availability and agent sessions with automatic fallbacks for unmatched patterns.

- Tags: deep-dive
- Published: 2026-08-10

### [Pi Web Agent SSE Events: Complete Reference for Real-Time Streaming](/agegr/pi-web/what-are-the-different-sse-events-emitted-by-pi-web-agents)

Explore the nine SSE events from Pi Web agents for real-time streaming of agent status, tool execution, and message chunks. Get the complete reference for the GET /api/agent/[id]/events endpoint.

- Tags: api-reference
- Published: 2026-08-10

### [How Pi Web Normalizes Tool‑Call Fields Between Its Session Format and Internal Types](/agegr/pi-web/how-does-pi-web-normalize-toolcall-fields-between-its-format-and-internal-types)

Discover how Pi Web normalizes toolCall fields, mapping legacy SDK names to its internal ToolCallContent type. Learn about backward compatibility and type safety in this technical guide.

- Tags: internals
- Published: 2026-08-10

### [Pi Web AgentSession Idle Timeout: How the 10-Minute Auto-Cleanup Works](/agegr/pi-web/what-is-the-10-minute-idle-timeout-behavior-for-agentsessions-in-pi-web)

Understand Pi Web's AgentSession idle timeout. Learn how the 10-minute auto-cleanup works and how it resets with every action to ensure efficient session management.

- Tags: internals
- Published: 2026-08-10

### [How to Interact with the pi-web API: A Complete Developer's Guide](/agegr/pi-web/how-to-interact-with-the-pi-web-api)

Learn how to interact with the pi-web API using REST endpoints. Programmatically manage AI agent sessions, send commands, and handle files with this developer's guide.

- Tags: how-to-guide
- Published: 2026-08-09

### [How Pi-Web Manages and Persists Data: JSON-Lines Session Architecture](/agegr/pi-web/how-is-data-managed-or-persisted-in-the-pi-web-application)

Discover how Pi-Web manages and persists data using JSON-Lines session architecture. Learn about conversational state storage, in-memory UI data, and localStorage caching.

- Tags: internals
- Published: 2026-08-09

### [What Is the Database Schema Used by pi-web? A Complete Guide to Its JSON-Lines Architecture](/agegr/pi-web/what-is-the-database-schema-used-by-pi-web)

Discover the pi-web database schema. Learn how it uses JSON-Lines files and TypeScript for robust session data storage. Explore the architecture for efficient data management.

- Tags: architecture
- Published: 2026-08-09

### [How to Handle Environment Variables in Pi-Web: Configuration Patterns Explained](/agegr/pi-web/how-to-handle-environment-variables-in-pi-web)

Master Pi-Web environment variable handling. Learn configuration patterns using process env, nullish coalescing, and error throwing for secure and robust applications.

- Tags: how-to-guide
- Published: 2026-08-09

### [Pi-Web Environments: Development vs. Production Configuration](/agegr/pi-web/are-there-different-environments-for-pi-web)

Explore Pi-web environments: understand development vs. production modes and custom PI_WEB_* variables for secure server-side configuration and deployment.

- Tags: configuration
- Published: 2026-08-09

### [Pi-Web Deployment Strategy: Local Development to Production Setup](/agegr/pi-web/what-is-the-deployment-strategy-for-pi-web)

Learn the pi-web deployment strategy. Deploy your local Node.js Next.js app to production using a CLI wrapper and reverse proxy setup. Get started today.

- Tags: deployment-strategy
- Published: 2026-08-09

### [How to Run Tests for the pi-web Project Using Node.js Native Test Runner](/agegr/pi-web/how-to-run-tests-for-the-pi-web-project)

Learn how to run tests for the pi-web project using Node.js native test runner. Execute tests with `node --test` on Node ≥22.19.0 without external frameworks.

- Tags: how-to-guide
- Published: 2026-08-09

### [What Tests Are Included in pi-web? A Complete Guide to the Test Suite](/agegr/pi-web/what-kind-of-tests-are-included-in-pi-web)

Explore the pi-web test suite covering RPC sessions, React UI components, and file access controls. Discover over 150 automated Node Test validations.

- Tags: how-to-guide
- Published: 2026-08-09

### [How to Contribute to the agegr/pi-web Project: A Complete Developer's Guide](/agegr/pi-web/how-to-contribute-to-the-agegr-pi-web-project)

Learn how to contribute to the agegr/pi-web project. This guide covers forking, local setup with Node.js 22+, Next.js architecture, and submitting tested pull requests following our workflow.

- Tags: how-to-guide
- Published: 2026-08-09

### [Development Workflow for Pi-Web: A Complete Guide to Extending the Pi Coding Agent](/agegr/pi-web/what-is-the-development-workflow-for-pi-web)

Master the pi-web development workflow by extending API routes, session logic, and React components within the Next.js app. Use npm run dev for hot-reloading and preserve agent states.

- Tags: how-to-guide
- Published: 2026-08-09

### [Where to Find Configuration Files for Pi-Web: Repository and Runtime Paths](/agegr/pi-web/where-to-find-configuration-files-for-pi-web)

Locate pi-web configuration files easily. Discover repository paths for build settings and runtime paths in ~/.pi/agent/ for AI model management. Enhance your workflow today.

- Tags: how-to-guide
- Published: 2026-08-09

### [Dependencies for the agegr/pi-web Project: Complete Package Analysis](/agegr/pi-web/what-are-the-dependencies-for-the-agegr-pi-web-project)

Explore the agegr/pi-web project dependencies, including @earendil-works agents, Next.js 16.2.12, React 19, js-yaml, and proper-lockfile for efficient AI coding and file management.

- Tags: package-analysis
- Published: 2026-08-09

### [How to Run the pi-web Application After Setup: Complete CLI Guide](/agegr/pi-web/how-to-run-the-pi-web-application-after-setup)

Learn how to run the pi-web application using the CLI after setup. Execute the pi-web command to launch the Next.js server and open your browser automatically.

- Tags: how-to-guide
- Published: 2026-08-09

### [How to Build the agegr/pi-web Project: Complete Setup Guide](/agegr/pi-web/how-to-build-the-agegr-pi-web-project)

Easily build the agegr/pi-web project. Follow our guide to install Node.js and run the project via npx or by cloning the repo for development. Get started now.

- Tags: getting-started
- Published: 2026-08-09

### [Prerequisites for Running the Pi-Web Application: Complete Setup Guide](/agegr/pi-web/are-there-any-prerequisites-for-running-the-pi-web-application)

Discover the prerequisites for running the pi-web application. Learn about Node.js, local pi coding agent, and optional environment variables for a smooth setup. Get started now.

- Tags: getting-started
- Published: 2026-08-09

### [Does the README Provide Installation Instructions for pi-web?](/agegr/pi-web/does-the-readme-provide-installation-instructions-for-pi-web)

Find out if the agegr/pi-web README offers installation instructions. Get clear steps for quick npx execution or permanent npm global installation.

- Tags: how-to-guide
- Published: 2026-08-09

### [What Is the Pi-Web Repository? A Local Web UI for the Pi Coding Agent](/agegr/pi-web/what-is-the-purpose-of-the-pi-web-repository)

Discover the pi-web repository a local web UI for the Pi coding agent. Browse sessions chat in real-time and manage agent settings with this Next.js application.

- Tags: getting-started
- Published: 2026-08-09

### [How the pi-web Project Structure Powers the π AI Agent Framework](/agegr/pi-web/how-is-the-pi-web-project-structured)

Explore the pi-web project structure, a clear separation of Next.js frontend components, server-side API routes, and shared TypeScript utilities for the π AI agent framework.

- Tags: architecture
- Published: 2026-08-09

### [Technologies Used in the agegr/pi-web Project: A Complete Stack Breakdown](/agegr/pi-web/what-technologies-are-used-in-the-agegr-pi-web-project)

Explore the agegr/pi-web project stack: Nextjs React Tailwind CSS and markdown libraries. Get a full breakdown of the technologies powering this advanced application.

- Tags: deep-dive
- Published: 2026-08-09

### [Is There a Backend Component to the pi-web Project? Yes, Here's How It Works](/agegr/pi-web/is-there-a-backend-component-to-the-pi-web-project)

Explore the backend component of the pi-web project built with Next.js API routes. Learn how it manages agent sessions, file access, authentication, and git integration.

- Tags: internals
- Published: 2026-08-09

### [Where to Find the Frontend Source Code in pi-web: Complete Directory Guide](/agegr/pi-web/where-can-i-find-the-source-code-for-the-frontend-in-pi-web)

Locate pi-web frontend source code easily. This guide details the Next.js React TypeScript directory structure: app, components, hooks, and lib. Find what you need fast.

- Tags: how-to-guide
- Published: 2026-08-09

### [agegr/pi-web App Structure: Main Directories and Architecture Explained](/agegr/pi-web/what-are-the-main-directories-in-agegr-pi-web-app-structure)

Explore the agegr/pi-web app structure. Understand the main directories like app/, components/, hooks/, lib/, public/, docs/, and bin/ for efficient Next.js development.

- Tags: architecture
- Published: 2026-08-09

### [How to Set Up the agegr/pi-web Project Locally: Complete Development Guide](/agegr/pi-web/how-to-set-up-agegr-pi-web-project-locally)

Easily set up the agegr/pi-web project locally with our complete development guide. Follow these simple steps to get the Pi Web UI running on your machine in minutes.

- Tags: how-to-guide
- Published: 2026-08-09

### [How PI_WEB_ALLOWED_HOSTS Configures Trusted Proxy Hostnames in pi-web](/agegr/pi-web/pi-web-allowed-hosts-configure-trusted-proxy-hostnames)

Learn how PI_WEB_ALLOWED_HOSTS configures trusted proxy hostnames in pi-web by validating the HTTP Host header against a normalized allow-list for secure API requests.

- Tags: how-to-guide
- Published: 2026-07-31

### [How HTTP Proxy Configuration Works for Server-Side Model Requests in pi-web](/agegr/pi-web/http-proxy-configuration-server-side-model-requests-pi-web)

Discover how to configure HTTP proxy for server-side model requests in agegr/pi-web. Learn about Edge middleware hostname validation and authentication for Next.js API routes.

- Tags: how-to-guide
- Published: 2026-07-31

### [How useAudio Handles Completion Sounds with Browser Autoplay Policies in pi-web](/agegr/pi-web/useaudio-pi-web-completion-sounds-browser-autoplay)

Discover how useAudio overcomes browser autoplay policies in pi-web by managing AudioContext and user interactions for seamless completion sound playback with the Web Audio API.

- Tags: how-to-guide
- Published: 2026-07-31

### [How DirectoryPicker Validates and Selects Working Directories in pi-web](/agegr/pi-web/directorypicker-pi-web-validate-select-working-directories)

Learn how pi-web's DirectoryPicker validates and selects working directories. Discover the two-stage process involving client-side browsing and server-side security checks for robust path management.

- Tags: deep-dive
- Published: 2026-07-31

### [How useTheme Manages Light/Dark Mode and Persists Preferences in pi-web](/agegr/pi-web/usetheme-pi-web-light-dark-mode-persist-preferences)

Learn how pi-web's useTheme hook manages light/dark mode using useSyncExternalStore, persists preferences to localStorage, and enables smooth View Transitions for a better user experience.

- Tags: how-to-guide
- Published: 2026-07-31

### [How Extension Widgets Render Custom UI Components in π‑Web’s Terminal Style](/agegr/pi-web/extension-widgets-render-custom-ui-pi-web-terminal-style)

Learn how pi-web extension widgets render custom UI components using a four-stage pipeline. Discover the server, React hooks, and CSS variables that create terminal-style interfaces.

- Tags: how-to-guide
- Published: 2026-07-31

### [How normalizeToolCalls Handles Field Name Mismatches Between Pi and the Web UI](/agegr/pi-web/normalize-tool-calls-field-name-mismatches-pi-web-ui)

Learn how normalizeToolCalls resolves field name mismatches between Pi and the Web UI. This function ensures tool calls render correctly by mapping legacy names to the expected schema.

- Tags: how-to-guide
- Published: 2026-07-31

### [How useAgentSession Manages Loading and Streaming State in pi-web](/agegr/pi-web/useagentsession-pi-web-state-machine-loading-streaming)

Discover how useAgentSession orchestrates loading and streaming state in pi-web. Learn about its finite-state reducer for real-time SSE message management.

- Tags: internals
- Published: 2026-07-31

### [How the ProjectTrustDialog in pi-web Validates and Manages Trusted Project Directories](/agegr/pi-web/projecttrustdialog-pi-web-validate-manage-trusted-directories)

Discover how pi-web's ProjectTrustDialog validates trusted project directories using server-side checks and persistent storage. Learn how it secures your code.

- Tags: internals
- Published: 2026-07-31

### [How pi-web Handles Session Compaction and What Triggers It](/agegr/pi-web/pi-web-session-compaction-triggers)

Learn how pi-web manages session compaction when sessions reach a large size. Discover the events that trigger compaction and how users can abort the process.

- Tags: internals
- Published: 2026-07-31

### [How MarkdownBody in pi-web Renders Markdown with Mermaid Diagrams and KaTeX Math](/agegr/pi-web/markdownbody-pi-web-render-markdown-mermaid-katex)

Discover how pi-web's MarkdownBody uses remark and rehype plugins to render Markdown with Mermaid diagrams and KaTeX math. Learn about its robust pipeline for dynamic content.

- Tags: deep-dive
- Published: 2026-07-31

### [How SessionSidebar Organizes Sessions by Project with Worktree Grouping in Pi-Web](/agegr/pi-web/sessionsidebar-pi-web-organize-sessions-worktree-grouping)

Learn how SessionSidebar organizes Pi sessions by project using worktree grouping in Pi-Web. Navigate seamlessly between worktrees while preserving session hierarchy for efficient project management.

- Tags: internals
- Published: 2026-07-31

### [How pi-web's FileViewer Previews Images, Audio, PDFs, and Source Code](/agegr/pi-web/fileviewer-pi-web-preview-audio-pdf-source-code)

Discover how pi-web's FileViewer previews images, audio, PDFs, and source code. Learn about its specialized rendering engines and live synchronization using SSE.

- Tags: deep-dive
- Published: 2026-07-31

### [How the ChatInput Component in pi-web Handles Message Composition with Model and Thinking Controls](/agegr/pi-web/chatinput-component-pi-web-message-composition-model-controls)

Discover how the ChatInput component in pi-web manages message composition, model selection, and thinking controls. Learn about React state, backend API integration, and real-time sync with useAgentSession.

- Tags: internals
- Published: 2026-07-31

### [How the Pi-Web Auth API Handles OAuth Flows and API Key Storage](/agegr/pi-web/pi-web-auth-api-oauth-flows-api-key-storage)

Learn how the pi web auth API manages OAuth device-code flows and stores API keys securely in a centralized JSON file, preventing race conditions with file locking.

- Tags: deep-dive
- Published: 2026-07-31

### [How SkillsConfig Manages Skill Installation and Enable/Disable Toggles in pi-web](/agegr/pi-web/skillsconfig-pi-web-skill-installation-enable-disable)

Discover how SkillsConfig manages pi-web skill installation and enable/disable toggles. Learn about metadata loading, toggle synchronization, and scope management.

- Tags: how-to-guide
- Published: 2026-07-31

### [How ModelsConfig in pi-web Reads and Writes models.json and Manages Auth Providers](/agegr/pi-web/modelsconfig-pi-web-read-write-models-json-auth-providers)

Learn how ModelsConfig in pi-web reads and writes models.json, managing auth providers and persisting user model configurations locally. Understand its atomic file operations and ProviderCredentialStore API usage.

- Tags: internals
- Published: 2026-07-31

### [How the Session Context API Loads Branch-Specific Message Trees in pi-web](/agegr/pi-web/session-context-api-load-branch-message-trees-pi-web)

Learn how the session context API in pi-web loads branch specific message trees using the leafId parameter and Pi SDK functions for efficient conversation filtering and UI display.

- Tags: internals
- Published: 2026-07-31

### [Pi-Web File Access Security: How It Scopes Browsing to Allowed Project Directories](/agegr/pi-web/pi-web-file-access-security-scope-browsing-allowed-directories)

Learn how Pi-web file access security restricts browsing to allowed project directories by using a whitelist to enforce safe directory roots and grant access only to matching or nested paths.

- Tags: security
- Published: 2026-07-31

### [How pi-web Integrates with Git Worktrees for Branch-Based Development](/agegr/pi-web/pi-web-git-worktrees-branch-development-integration)

Discover how pi-web seamlessly integrates with Git worktrees, treating each branch as a distinct project for efficient branch-based development. Streamline your workflow today.

- Tags: how-to-guide
- Published: 2026-07-31

### [How SSE Event Streaming Powers Real-Time Updates in Pi-Web's ChatWindow](/agegr/pi-web/sse-event-streaming-real-time-updates-chatwindow-pi-web)

Discover how SSE event streaming powers real-time updates in Pi-Web's ChatWindow. Learn how a Next.js backend pushes JSON events to a React frontend for seamless chat experiences.

- Tags: deep-dive
- Published: 2026-07-31

### [How Session Forking Creates Independent .jsonl Files in pi-web](/agegr/pi-web/session-forking-independent-jsonl-files-pi-web)

Discover how pi-web's session forking generates independent jsonl files. Learn how isolated conversation branches are created while preserving original data immutability.

- Tags: internals
- Published: 2026-07-31

### [AgentSession Lifecycle Management in pi-web's rpc-manager.ts](/agegr/pi-web/agent-session-lifecycle-management-pi-web-rpc-manager-ts)

Discover AgentSession lifecycle management in pi-web's rpc-manager.ts. Learn how it handles hot-reloads, timeouts, and state changes to sync UI and SSE streams efficiently.

- Tags: internals
- Published: 2026-07-31

### [How Skills Are Listed in Pi Web: Discovery, Annotation, and Runtime Visibility](/agegr/pi-web/how-are-skills-listed-in-pi-web-including-runtime-visibility)

Discover how skills are listed in Pi Web. Learn about skill discovery, annotation, and runtime visibility with the Pi SDK and interactive UI components.

- Tags: internals
- Published: 2026-07-30

### [How Disabling a Plugin Affects Its Configuration in Pi Web](/agegr/pi-web/how-does-disabling-a-plugin-affect-its-configuration-in-pi-web)

Learn how disabling a plugin impacts its configuration in Pi Web. Discover what settings are purged and what remains while the plugin is inactive.

- Tags: how-to-guide
- Published: 2026-07-30

### [How Pi Web Manages API Keys: Secure Server-Side Storage and Retrieval](/agegr/pi-web/how-are-api-keys-managed-in-pi-web)

Discover how Pi Web secures API keys server-side using Next.js API routes and the Pi SDK. Learn how credentials are never exposed to the client and automatically injected into requests.

- Tags: best-practices
- Published: 2026-07-30

### [How Pi Web Handles Authentication for Different Model Providers](/agegr/pi-web/how-does-pi-web-handle-authentication-for-different-model-providers)

Discover how Pi Web manages authentication for providers like Anthropic and OpenAI using OAuth flows or API keys. Learn more about its robust security for model integrations.

- Tags: how-to-guide
- Published: 2026-07-30

### [Pi Web Model Management API Endpoints: Complete REST Reference](/agegr/pi-web/what-are-the-api-endpoints-for-managing-models-in-pi-web)

Explore the Pi Web Model Management API endpoints for complete REST reference. Discover how to manage models, configurations, and connectivity via the /api/models and /api/models-config routes.

- Tags: api-reference
- Published: 2026-07-30

### [How Pi Web Combines Model Configurations and Authentication Status: A Technical Deep Dive](/agegr/pi-web/how-does-pi-web-combine-model-configurations-and-authentication-status)

Learn how Pi Web combines model configurations and authentication status using a centralized models json file and runtime credential resolution. Explore the technical details in this deep dive.

- Tags: deep-dive
- Published: 2026-07-30

### [Understanding the Monotonic Run ID System in Pi Web's SSE](/agegr/pi-web/what-is-the-purpose-of-the-monotonic-run-id-system-in-pi-webs-sse)

Discover the monotonic run ID system in Pi Web's SSE. Learn how it assigns unique IDs to prompt executions, ensuring efficient event handling and preventing race conditions for a smoother user experience.

- Tags: internals
- Published: 2026-07-30

### [How ChatWindow Handles Page Refreshes During Streaming in agegr/pi-web](/agegr/pi-web/how-does-the-chatwindow-handle-page-refreshes-during-streaming)

Discover how ChatWindow in agegr/pi-web preserves streaming sessions during page refreshes. Learn about live-tail detection and state rehydration for seamless user experience. Read now!

- Tags: internals
- Published: 2026-07-30

### [How Pi Web Handles Missed Server-Sent Events (SSE) for Running Sessions](/agegr/pi-web/how-does-pi-web-handle-missed-server-sent-events-for-running-sessions)

Discover how Pi Web ensures UI synchronization with its backend by handling missed Server-Sent Events (SSE) through a robust three-layer recovery strategy including polling, event triggers, and heartbeats.

- Tags: internals
- Published: 2026-07-30

### [How to Remove a Dirty Worktree in Pi Web: API Behavior and Force Deletion](/agegr/pi-web/what-happens-if-a-user-tries-to-remove-a-dirty-worktree-in-pi-web)

Learn how to remove a dirty worktree in Pi Web using the API. Discover the 409 Conflict response and how to force deletion with the force flag to bypass uncommitted changes.

- Tags: how-to-guide
- Published: 2026-07-30

### [How Are Worktrees for a Single Repository Grouped in Pi Web](/agegr/pi-web/how-are-worktrees-for-a-single-repository-grouped-in-pi-web)

Learn how Pi Web groups worktrees for a single repository. Discover the projectRoot resolution and session aggregation for a unified project node with a worktree switcher.

- Tags: internals
- Published: 2026-07-30

### [What Are the Allowed Roots for File Access in Pi Web?](/agegr/pi-web/what-are-the-allowed-roots-for-file-access-in-pi-web)

Discover allowed file access roots in Pi Web. Learn about session cwd, Git project roots, temp directories, and allowed paths for secure file operations.

- Tags: security
- Published: 2026-07-30

### [What Is `navigate_tree` for In-Session Branches in Pi Web?](/agegr/pi-web/what-is-the-purpose-of-navigate-tree-for-in-session-branches)

Discover how navigate_tree in Pi Web switches in-session branches, updating the server leaf pointer for read-only navigation without rewriting session files. Explore conversation trees efficiently.

- Tags: deep-dive
- Published: 2026-07-30

### [How the Fork Operation Works in Pi Web: Session Branching Explained](/agegr/pi-web/how-does-the-fork-operation-work-in-pi-web)

Understand the Pi Web Fork operation. Learn how it creates independent session branches by copying conversation history and preventing registry contamination.

- Tags: internals
- Published: 2026-07-30

### [How Pi Web Differentiates Fork and In‑Session Branches: Implementation Guide](/agegr/pi-web/how-does-pi-web-differentiate-between-fork-and-in-session-branches)

Understand how Pi Web differentiates Fork and In-Session branches. Learn implementation details for managing JSONL session files and navigating conversation paths.

- Tags: how-to-guide
- Published: 2026-07-30

### [Where Are Pi Session Files Stored? Pi Web Session Storage Explained](/agegr/pi-web/where-are-pi-session-files-stored)

Discover where Pi session files are stored by default in ~/.pi/agent/sessions. Learn about the .jsonl record format and path organization for Pi web session storage.

- Tags: deep-dive
- Published: 2026-07-30

### [How Real-Time Updates Are Delivered in Pi Web: Server-Sent Events Architecture Explained](/agegr/pi-web/how-are-real-time-updates-delivered-in-pi-web)

Discover how Pi Web delivers real-time updates using Server-Sent Events SSE architecture. Learn about persistent HTTP streams and JSON lines for agent activity.

- Tags: architecture
- Published: 2026-07-30

### [How Pi Web Manages Agent Sessions: Global Registry and Lifecycle Architecture](/agegr/pi-web/how-does-pi-web-manage-agent-sessions)

Discover how Pi Web manages agent sessions with its global registry and lifecycle architecture. Learn about persistent sessions, hot-reloads, and SSE updates.

- Tags: architecture
- Published: 2026-07-30

### [Pi Web Architecture: Understanding the Three-Layer Browser-Based AI Coding System](/agegr/pi-web/what-are-the-main-layers-in-pi-webs-architecture)

Explore Pi Web architecture and its three-layer system: Browser UI, Next.js Server API, and AgentSession. Understand this innovative browser-based AI coding environment.

- Tags: architecture
- Published: 2026-07-30

### [How Pi Web's Architecture Handles User Messages: A Complete Pipeline Guide](/agegr/pi-web/how-does-pi-webs-architecture-handle-user-messages)

Explore Pi Web's architecture and discover how user messages flow through a multi-layer pipeline from UI to AI responses using SSE and optimistic UI.

- Tags: architecture
- Published: 2026-07-30

### [Pi-web Development Roadmap: Current Focus and Future Directions](/agegr/pi-web/what-is-roadmap-for-pi-web-development)

Explore the Pi-web development roadmap focusing on AgentSession stability, Git integration, internationalization, and security. See current priorities and future directions.

- Tags: architecture
- Published: 2026-07-27

### [Performance Considerations for Pi-Web: Architecture and Optimization Strategies](/agegr/pi-web/what-are-performance-considerations-for-pi-web)

Optimize Pi-Web performance with lazy initialization, global locks, timeouts, and caching strategies. Discover architectural insights and expert tips for efficient operation. Learn more now!

- Tags: performance
- Published: 2026-07-27

### [How to Manage Users in Pi-Web: Single-User Architecture and External Provider Authentication](/agegr/pi-web/how-to-manage-users-in-pi-web)

Learn how to manage users in Pi-Web. Discover its single-user architecture, OS-level permissions, and external provider authentication for secure access control.

- Tags: how-to-guide
- Published: 2026-07-27

### [How to Integrate Pi-Web with External Systems: Complete HTTP API Guide](/agegr/pi-web/can-pi-web-be-integrated-with-other-systems)

Integrate Pi-Web with external systems using its complete HTTP API. Control sessions, send commands, and get real-time events easily without an SDK. Learn more.

- Tags: how-to-guide
- Published: 2026-07-27

### [Pi-web Directory Structure: Complete Guide to the Next.js TypeScript Layout](/agegr/pi-web/what-is-the-directory-structure-of-pi-web)

Explore the Pi-web Next.js TypeScript directory structure. Understand the app/, components/, lib/, docs/, and bin/ folders for efficient development. Your complete guide.

- Tags: internals
- Published: 2026-07-27

### [What Programming Languages Does Pi-Web Use? A Complete Technical Breakdown](/agegr/pi-web/what-programming-languages-does-pi-web-use)

Discover the programming languages powering Pi-Web. Explore its architecture, including TypeScript, Nextjs, React, JavaScript, and CSS with Tailwind.

- Tags: deep-dive
- Published: 2026-07-27

### [How pi-web Implements File Explorer with Directory Browsing and Path Encoding](/agegr/pi-web/pi-web-file-explorer-directory-browsing-path-encoding)

Discover how pi-web's file explorer enables secure directory browsing with a lazy-loading React tree and path encoding utilities. Explore files seamlessly across platforms.

- Tags: how-to-guide
- Published: 2026-07-26

### [How Pi-Web Handles In-Session Branch Navigation: A Technical Deep Dive](/agegr/pi-web/pi-web-branch-navigation-switch-in-session-branches)

Learn how Pi-Web handles in-session branch navigation using the navigate_tree command for efficient context switching without session file rewrites. Explore the technical details.

- Tags: deep-dive
- Published: 2026-07-26

### [How the Pi-Web Chat Minimap Enables Fast Navigation of Long Sessions](/agegr/pi-web/pi-web-chat-minimap-navigate-long-sessions)

Discover how the pi-web chat minimap uses React and scroll calculations to enable lightning-fast navigation through long conversation sessions, improving user experience.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Renders Markdown with Mermaid Diagrams and KaTeX Math](/agegr/pi-web/pi-web-markdown-rendering-mermaid-katex)

Discover how pi-web renders Markdown with Mermaid diagrams and KaTeX math using a React-Markdown pipeline and custom components. Learn its unique rendering process.

- Tags: how-to-guide
- Published: 2026-07-26

### [How pi-web Handles Draft Persistence Using the draft-store Module](/agegr/pi-web/pi-web-draft-persistence-draft-store-module)

Discover how pi-web uses the draft-store module to save chat drafts in localStorage for automatic recovery. Learn about this lightweight persistence solution for seamless user input.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Implements Chat Input Controls for Models, Tools, Thinking, and Compaction](/agegr/pi-web/pi-web-chat-input-controls-model-tools-thinking-compact)

Discover how pi-web implements chat input controls. Learn about its React-powered dropdowns for models, tools, and thinking, plus conditional buttons for compaction, all managed by typed callbacks.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Handles File Previews for Images, Audio, PDF, and DOCX](/agegr/pi-web/pi-web-file-previews-images-audio-pdf-docx)

Discover how pi-web streamlines file previews for images, audio, PDF, and DOCX. Learn about its viewer components, size limits, and dedicated API streaming.

- Tags: how-to-guide
- Published: 2026-07-26

### [How the Pi‑Web Project Sidebar Implements Worktree‑Aware Grouping](/agegr/pi-web/pi-web-project-sidebar-worktree-aware-grouping)

Discover how the Pi-Web sidebar uses worktree-aware grouping to unify sessions from main checkouts and linked worktrees into a single project view.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Reconciles Running State SSE to Prevent Stale Events](/agegr/pi-web/pi-web-reconcile-running-state-sse-prevent-stale-events)

Learn how pi-web reconciles running state SSE using a periodic loop and GET requests to prevent stale events and ensure accurate session state.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Handles Session Compaction Events Across pi Versions](/agegr/pi-web/pi-web-session-compaction-events-across-versions)

Learn how pi-web normalizes session compaction events across pi versions ensuring seamless UI functionality with the useAgentSession hook.

- Tags: internals
- Published: 2026-07-26

### [Pi-Web API Routes and AgentSession Communication Architecture Explained](/agegr/pi-web/pi-web-api-routes-agentsession-communication-architecture)

Explore the agegr/pi-web architecture. Learn how its API routes and AgentSession communication leverage SSE for real-time streaming and connect React frontend to the Pi SDK.

- Tags: architecture
- Published: 2026-07-26

### [How pi-web Exports Sessions to HTML and Avoids Stack Overflow from Deep Recursion](/agegr/pi-web/pi-web-export-sessions-to-html-deep-recursion)

Discover how pi-web exports sessions to HTML using GET requests and an iterative stack approach to prevent stack overflow errors from deep recursion.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Implements Completion Sounds with AudioContext and Browser Autoplay Policy](/agegr/pi-web/pi-web-completion-sound-audiocontext-autoplay-policy)

Discover how pi-web uses AudioContext and browser autoplay policies to implement completion sounds. It leverages a singleton AudioContext, respecting user gestures and persisting preferences in localStorage.

- Tags: internals
- Published: 2026-07-26

### [How pi-web Manages Plugins Using pi's SettingsManager](/agegr/pi-web/pi-web-plugin-management-settingsmanager)

Discover how pi-web manages plugins with SettingsManager and DefaultPackageManager for seamless discovery installation and state management. Persist configurations and resolve package metadata.

- Tags: internals
- Published: 2026-07-26

### [How Skills Are Installed and Model Invocation Is Toggled in pi-web](/agegr/pi-web/pi-web-skills-installation-disable-model-invocation)

Learn how to install skills and toggle model invocation in pi-web. Discover the simple, npx-based CLI and front-matter flag for managing reusable plugins.

- Tags: internals
- Published: 2026-07-26

### [How Pi-Web Handles Model Configuration and Test Connections](/agegr/pi-web/pi-web-model-configuration-testing-connections)

Learn how Pi-Web manages model configuration and tests connections using its models json file and a live API validation endpoint ensuring secure and reliable integrations.

- Tags: how-to-guide
- Published: 2026-07-26

### [How pi-web Integrates with Pi's Auth System for OAuth and API Keys](/agegr/pi-web/pi-web-pi-auth-integration-oauth-api-keys)

Discover how pi-web integrates with Pi's auth system for OAuth and API keys. Learn to manage authentication seamlessly using the @earendil-works/pi-coding-agent SDK.

- Tags: deep-dive
- Published: 2026-07-26

### [How Pi-Web Normalizes Tool Call Field Names Between Pi and UI Formats](/agegr/pi-web/pi-web-normalize-tool-call-field-names)

Explore how Pi-Web normalizes tool call field names using normalizeToolCalls. Learn to map Pi engine fields like id name arguments to UI fields toolCallId toolName input.

- Tags: how-to-guide
- Published: 2026-07-26

### [Understanding the .jsonl Session File Format for Pi and How pi-web Parses It](/agegr/pi-web/pi-web-parse-jsonl-session-file-format)

Learn the .jsonl session file format for Pi and how pi-web parses it. Discover how this line-delimited JSON structure records chat events and transforms SDK entries into UI-ready messages.

- Tags: deep-dive
- Published: 2026-07-26

### [How Pi-Web Manages Git Worktree Operations and Project Grouping](/agegr/pi-web/pi-web-git-worktree-operations-project-grouping)

Discover how Pi-Web simplifies Git worktree operations and project grouping. Effortlessly manage related sessions under a single project root with its intuitive API.

- Tags: how-to-guide
- Published: 2026-07-26

### [How Pi-Web Implements File Access Security Boundaries and Allow-Lists](/agegr/pi-web/pi-web-file-access-security-boundaries-allow-lists)

Learn how Pi-Web secures file access with dynamic allow-lists, preventing traversal attacks through session directories, project roots, and more. Discover its robust containment strategy.

- Tags: how-to-guide
- Published: 2026-07-26

### [How Pi-Web Handles Server-Sent Events (SSE) Reconnection on Page Refresh](/agegr/pi-web/pi-web-sse-reconnection-on-page-refresh)

Discover how Pi-Web manages Server-Sent Events (SSE) reconnection after a page refresh. Explore its strategy for handling transient and fatal errors to ensure a robust connection.

- Tags: deep-dive
- Published: 2026-07-26

### [Session Forking vs In‑Session Branching in Pi‑Web: Key Differences and Implementation](/agegr/pi-web/difference-between-session-forking-and-in-session-branching-pi-web)

Understand session forking vs in-session branching in Pi-Web. Learn how to manage conversation paths with independent files or parent links for effective data organization.

- Tags: deep-dive
- Published: 2026-07-26

### [How Pi‑Web Manages AgentSession Lifecycle Using globalThis Registries](/agegr/pi-web/how-pi-web-manages-agentsession-lifecycle-using-globalthis)

Learn how Pi-Web manages AgentSession lifecycle using globalThis registries to survive Next.js hot-reloads. Discover how it coordinates creation, prevents duplicates, and broadcasts UI states.

- Tags: internals
- Published: 2026-07-26

### [How Pi Web Handles Image Drag-and-Drop with Agent Prompt Integration](/agegr/pi-web/image-drag-and-drop-agent-prompt-integration)

Learn how Pi Web seamlessly integrates image drag-and-drop. See how it converts images to base-64 data URLs and injects them into agent prompts for real-time LLM visual analysis.

- Tags: how-to-guide
- Published: 2026-07-25

### [How the Sidebar Project Selector Resolves Git Worktrees to Main Repository Roots](/agegr/pi-web/sidebar-project-selector-resolve-worktrees-repo-roots)

Learn how the sidebar project selector resolves Git worktrees to main repository roots using git rev-parse for efficient project management.

- Tags: internals
- Published: 2026-07-25

### [How Pi Web Handles Dirty Worktree Detection and Force Removal](/agegr/pi-web/dirty-worktree-detection-force-removal)

Learn how Pi Web detects dirty worktrees using Git errors and handles force removal with a force query parameter for uncommitted changes.

- Tags: internals
- Published: 2026-07-25

### [How to Export Session HTML in Pi Web: Recursive Tree Handling Explained](/agegr/pi-web/exporting-session-html-recursive-tree-handling)

Export Pi Web session HTML with the GET /api/sessions/[id]/export endpoint. Learn how recursive tree handling prevents stack overflows for large sessions.

- Tags: deep-dive
- Published: 2026-07-25

### [How the Chat Minimap Component Interacts with the Message List for Navigation](/agegr/pi-web/chat-minimap-message-list-interaction-navigation)

Discover how the Chat Minimap component navigates the Message List by reading DOM positions and manipulating scroll ratios. Learn about efficient navigation without DOM mutation.

- Tags: internals
- Published: 2026-07-25

### [How Pi Web Implements Extension UI Context Bindings (select, confirm, input, editor)](/agegr/pi-web/extension-ui-context-bindings-implementation)

Learn how Pi Web uses context bindings like select, confirm, input, and editor to manage UI interactions, routing JSON-RPC requests for seamless agent execution.

- Tags: internals
- Published: 2026-07-25

### [Creating New Pi-Web Sessions with Specific Tool Presets: API Workflow and Implementation](/agegr/pi-web/workflow-creating-new-sessions-tool-presets)

Learn the API workflow for creating new Pi-Web sessions with specific tool presets. Send a POST request to api agent new with toolNames array for custom configurations.

- Tags: api-reference
- Published: 2026-07-25

### [How Session List Caching Avoids File Re-Scanning in pi-web](/agegr/pi-web/session-list-caching-avoid-re-scanning-files)

Learn how pi-web's session list caching avoids redundant file rescans. Discover its TTL and generation-based invalidation for efficient data management.

- Tags: internals
- Published: 2026-07-25

### [How Pi Web Normalizes Tool-Call Field Names Between the Pi SDK and UI Types](/agegr/pi-web/normalize-toolcall-field-names-sdk-ui)

Discover how Pi Web normalizes tool-call field names. Learn how id, name, and arguments are mapped to toolCallId, toolName, and input for seamless SDK and UI integration.

- Tags: internals
- Published: 2026-07-25

### [How the Completion Sound Feature Works with Browser AudioContext in agegr/pi-web](/agegr/pi-web/completion-sound-feature-browser-audiocontext)

Explore how the completion sound feature in agegr/pi-web uses AudioContext to create dual-tone notifications. Learn how it syncs with browser AudioContext and handles autoplay policies.

- Tags: internals
- Published: 2026-07-25

### [How Pi Web Handles Model Configuration and Testing: A Complete Guide](/agegr/pi-web/model-configuration-testing-in-pi-web)

Discover how Pi Web manages model configuration and testing. Explore its REST endpoints for reading, writing, and live-testing AI models before saving them for use.

- Tags: how-to-guide
- Published: 2026-07-25

### [AgentSessionWrapper Idle Timeout Behavior in Pi Web: 10-Minute Session Management](/agegr/pi-web/idle-timeout-behavior-agentsessionwrapper)

Understand AgentSessionWrapper idle timeout behavior in Pi Web. Learn how inactive sessions reset after 10 minutes of inactivity. Maximize session efficiency.

- Tags: deep-dive
- Published: 2026-07-25

### [Pi Web Authentication Flows: OAuth Device-Code and Manual-Code Implementation](/agegr/pi-web/pi-web-authentication-flows-supported)

Explore Pi Web's OAuth authentication flows including device-code and manual-code implementation. Learn how to integrate secure login via Server-Sent Events.

- Tags: tutorial
- Published: 2026-07-25

### [How Pi Web Implements Running State SSE Broadcast to Avoid Polling](/agegr/pi-web/running-state-sse-broadcast-avoid-polling)

Discover how Pi Web uses SSE broadcast for real-time running state updates, eliminating inefficient client polling. Learn about this efficient implementation.

- Tags: internals
- Published: 2026-07-25

### [How the Pi Web RPC Manager Handles Concurrent Session Start Requests with Locks](/agegr/pi-web/rpc-manager-concurrent-session-start-requests-locks)

Learn how the pi web RPC manager uses locks to handle concurrent session start requests ensuring only one AgentSession is instantiated per session ID.

- Tags: internals
- Published: 2026-07-25

### [How Pi Web Handles Session Compaction Events and State Synchronization](/agegr/pi-web/session-compaction-events-state-synchronization)

Discover how Pi Web synchronizes compaction state using a React hook and RPC manager, ensuring UI desynchronization is prevented. Learn about event handling and state mirroring.

- Tags: internals
- Published: 2026-07-25

### [How Tool Presets Work in Pi Web: PRESET_NONE, DEFAULT, and FULL Explained](/agegr/pi-web/tool-presets-work-in-pi-web)

Understand Pi Web tool presets like PRESET_NONE, DEFAULT, and FULL. Learn how constants and helper functions manage assistant capabilities for session initialization.

- Tags: deep-dive
- Published: 2026-07-25

### [How Pi Web Integrates Git Worktrees and Project Grouping](/agegr/pi-web/git-worktrees-project-grouping-integration)

Discover how Pi Web integrates git worktrees and project grouping with efficient REST endpoints for creation, deletion, and file access. Learn about its caching mechanism.

- Tags: how-to-guide
- Published: 2026-07-25

### [How the File Access Allow-List Security Boundary Works in /api/files](/agegr/pi-web/file-access-allow-list-security-boundary-api-files)

Discover how the /api/files endpoint uses an allow-list security boundary with canonical path validation and symlink resolution to protect against unauthorized file access.

- Tags: security-explanation
- Published: 2026-07-25

### [How Pi Web Handles SSE Reconnection on Page Refresh During Active Streaming](/agegr/pi-web/sse-reconnection-page-refresh-active-streaming)

Discover how Pi Web seamlessly handles SSE reconnection on page refresh during active streaming. Learn how the isStreaming session flag ensures uninterrupted data flow.

- Tags: internals
- Published: 2026-07-25

### [Session Fork vs In-Session Branch Navigation in Pi Web: Key Differences Explained](/agegr/pi-web/session-fork-vs-in-session-branch-navigation)

Understand session fork vs in-session branch navigation in Pi Web. Learn how session fork creates new diverging files while in-session branch navigation switches within the same file.

- Tags: deep-dive
- Published: 2026-07-25

### [AgentSession Lifecycle Management in Pi Web: How globalThis Registries Survive Next.js Hot Reloads](/agegr/pi-web/agent-session-lifecycle-management-globalthis-registries)

Discover how Pi Web manages AgentSession lifecycles using globalThis registries, ensuring persistence through Next.js hot reloads with deduplication and timeouts.

- Tags: internals
- Published: 2026-07-25

### [How the Draft-Store in Pi-Web Persists Local Drafts Across Sessions](/agegr/pi-web/how-does-the-draft-store-persist-local-drafts-across-sessions)

Learn how the pi-web draft-store maintains local chat drafts across sessions. Discover its in-memory Map mechanism and how data clears upon page reload or navigation.

- Tags: internals
- Published: 2026-07-24

### [How the Completion Sound System Using AudioContext Works in pi-web](/agegr/pi-web/what-is-the-mechanism-behind-the-completion-sound-system-using-audiocontext)

Discover how the pi-web application leverages AudioContext and a custom React hook to play completion sounds with a dual-oscillator ding, enhancing user experience after AI responses.

- Tags: internals
- Published: 2026-07-24

### [How π‑Web Integrates Git Diff and Status Information with the Agent](/agegr/pi-web/how-does-pi-web-integrate-git-diff-and-status-with-the-agent)

Discover how pi-web seamlessly integrates Git diff and status information with the Agent. Learn about its RESTful endpoints and tool call capabilities for efficient repository management.

- Tags: deep-dive
- Published: 2026-07-24

### [How the pi-web file-index API Route Builds and Serves File Indices](/agegr/pi-web/how-does-the-file-index-api-route-build-and-serve-file-indices)

Discover how the pi-web file-index API route builds and serves file indices. Learn about directory validation, caching, index generation with git ls-files or filesystem walk, and filtered results.

- Tags: how-to-guide
- Published: 2026-07-24

### [How Pi-Web’s Running-State SSE Prevents Missed agent_end Events in Background Tabs](/agegr/pi-web/how-does-running-state-sse-prevent-missed-agent_end-events-in-background-tabs)

Discover how Pi-Web’s running state SSE ensures you never miss agent_end events in background tabs with its polling and visibility triggers. Learn more!

- Tags: internals
- Published: 2026-07-24

### [How Pi-Web Manages SSE Reconnection When a Page Refresh Occurs During a Stream](/agegr/pi-web/how-does-pi-web-manage-sse-reconnection-on-page-refresh)

Discover how pi-web handles SSE reconnection after a page refresh. It automatically reestablishes stream connections, preserving conversational context for uninterrupted real-time updates.

- Tags: how-to-guide
- Published: 2026-07-24

### [Understanding Pi-Web Tool Presets: NONE, DEFAULT, and FULL Explained](/agegr/pi-web/what-are-the-pi-web-tool-presets-and-how-are-they-applied)

Master pi-web tool presets NONE, DEFAULT, and FULL. Understand how these configurations control agent tool availability and enhance your sessions.

- Tags: deep-dive
- Published: 2026-07-24

### [How ToolCall Field Normalization Handles Schema Mismatches in pi-web](/agegr/pi-web/how-does-the-toolcall-field-normalization-handle-schema-mismatches)

Discover how pi-web's ToolCall field normalization resolves schema mismatches. Learn how it maps legacy fields to modern equivalents using a prioritized fallback strategy for seamless integration.

- Tags: technical-explanation
- Published: 2026-07-24

### [How to Check if an AgentSession Is Currently Running in Pi-Web](/agegr/pi-web/how-can-i-check-if-an-agentsession-is-currently-running-or-processing-prompts-in-pi-web)

Learn how to check if an AgentSession is running in pi-web. Explore REST API checks, in-process methods, and real-time broadcast subscriptions for efficient status monitoring.

- Tags: how-to-guide
- Published: 2026-07-23

### [What Happens to the AgentSessionWrapper When AgentSession.fork() Is Called](/agegr/pi-web/what-happens-to-the-agentsessionwrapper-when-agentsessionfork-is-called)

Learn what happens to AgentSessionWrapper when AgentSession.fork() is called. Discover how it's destroyed to prevent registry corruption and ensure clean session reloads.

- Tags: internals
- Published: 2026-07-23

### [How the RPC Layer Communicates with AgentSession in Pi-Web](/agegr/pi-web/how-does-the-rpc-layer-communicate-with-agentsession-in-pi-web)

Discover how the RPC layer in pi-web communicates with AgentSession. Learn how AgentSessionWrapper bridges UI commands to SDK methods and dispatches events.

- Tags: internals
- Published: 2026-07-23

### [How pi-web Session List Caching Prevents Redundant File System Scans](/agegr/pi-web/how-does-pi-web-session-list-caching-prevent-redundant-scans)

Learn how pi-web session list caching prevents redundant file system scans by using an in-memory cache and promise coalescing to improve performance. Discover how mutations trigger cache invalidation.

- Tags: internals
- Published: 2026-07-23

### [Pi-Web Tool Presets (NONE, DEFAULT, FULL): Complete Configuration Guide](/agegr/pi-web/what-are-the-pi-web-tool-presets-and-how-do-they-work)

Understand pi web tool presets NONE DEFAULT and FULL. This guide explains how these security levels control agent access to filesystem and shell tools for enhanced security.

- Tags: deep-dive
- Published: 2026-07-23

### [How Pi-Web Resolves Project Roots with Git Worktrees: Inside the `resolveProject` Algorithm](/agegr/pi-web/how-does-pi-web-project-root-resolution-handle-worktrees)

Discover how Pi-Web resolves project roots with Git worktrees. Learn about the `resolveProject` algorithm, its use of `git rev-parse`, and TTL caching for efficient Git operations.

- Tags: internals
- Published: 2026-07-23

### [How Pi-Web Handles SSE Reconnection After Page Refresh](/agegr/pi-web/how-does-sse-reconnection-work-after-page-refresh-in-pi-web)

Discover how Pi-Web ensures seamless SSE reconnection after a page refresh. Learn about its event source management, connection acknowledgments, and intelligent retry logic for robust data streaming.

- Tags: internals
- Published: 2026-07-23

### [How Theme Switching and CSS Variables Work in pi-web](/agegr/pi-web/how-does-theme-switching-and-css-variables-work-in-pi-web)

Discover how pi-web utilizes CSS variables and a React hook for seamless theme switching between light and dark modes, automatically updating styles.

- Tags: deep-dive
- Published: 2026-07-23

### [How Pi-Web Triggers and Manages the Completion Sound](/agegr/pi-web/how-is-the-completion-sound-triggered-and-managed-in-pi-web)

Discover how Pi-Web triggers and manages the completion sound. Learn about its use of ChatWindow.tsx and the reusable AudioContext hook for a distinct two-tone ding.

- Tags: internals
- Published: 2026-07-23

### [How ChatInput Handles Streaming and Tool Selection in pi-web](/agegr/pi-web/how-does-chatinput-handle-streaming-and-tool-selection-in-pi-web)

Discover how ChatInput in pi-web manages streaming and tool selection. Learn about UI controls for steering and follow-up interactions, and backend tool allow-lists.

- Tags: internals
- Published: 2026-07-23

### [How Pi-Web File Preview Supports Images, PDFs, and Audio: Implementation Guide](/agegr/pi-web/how-does-pi-web-file-preview-support-images-pdfs-and-audio)

Learn how pi-web file preview supports images, PDFs, and audio. Explore the implementation guide for viewer components, file streaming, and live synchronization.

- Tags: how-to-guide
- Published: 2026-07-23

### [How Session Compaction Reduces Context Size in Pi Web](/agegr/pi-web/how-does-session-compaction-reduce-context-size-in-pi-web)

Session compaction in pi-web slashes context size by summarizing old conversations into a single entry. Learn how this improves model efficiency and performance.

- Tags: deep-dive
- Published: 2026-07-23

### [OAuth and API-Key Authentication Flow in pi-web: Complete Implementation Guide](/agegr/pi-web/what-is-the-oauth-and-api-key-authentication-flow-in-pi-web)

Master the OAuth and API-key authentication flow in pi-web with this comprehensive implementation guide. Securely manage AI provider credentials using SSE and direct submission.

- Tags: how-to-guide
- Published: 2026-07-23

### [How Models Are Configured, Tested, and Selected in Pi‑Web: A Deep Dive into the Source Code](/agegr/pi-web/how-are-models-configured-tested-and-selected-in-pi-web)

Discover how Pi-Web configures, tests, and selects AI models using JSON, live endpoint validation, and efficient caching. Explore the source code for a deep dive into model management.

- Tags: deep-dive
- Published: 2026-07-23

### [Git Worktree Resolution and Project Grouping in pi-web: How It Works](/agegr/pi-web/how-does-git-worktree-resolution-and-project-grouping-function-in-pi-web)

Learn how pi-web resolves git worktrees and groups projects. Discover how it unifies multiple checkouts under one UI using session grouping and worktree resolution.

- Tags: internals
- Published: 2026-07-23

