pi-web

jmfedericoMIT活跃维护

为 Pi 编码 Agent 提供网页界面,让会话在真实工作区中持续存活,方便远程开发和长期任务不中断。

Web UI for Pi Coding Agent that keeps sessions alive in real workspaces.

v1.202611.1发布于 2026-11-07 10:39 UTC933star +6 / 7 天188fork同步于 2026-11-10 17:54 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g @jmfederico/pi-web --allow-scripts=node-pty
pi-web install
pi-web doctor
硬件要求按 README 说明

README 未说明硬件要求,只要求 Node.js 22.19.0+、npm、git 以及已安装配置好的 Pi Coding Agent;Bun 为尽力支持。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

给 Pi Coding Agent 加网页界面的工具,让会话留在真实工作区里持续运行

为 Pi 编码 Agent 提供网页界面,让会话在真实工作区中持续存活,方便远程开发和长期任务不中断。

核心能力

  • 在浏览器中同时监管多个 Agent 会话
  • 会话断开后仍保持运行,可随时重连
  • 按机器、项目、工作区、会话四层组织
  • 可注册远程机器,跨机器统一管理会话
  • 界面内集成文件、终端、插件与 Agent 工作流

容易踩的坑

npm 12 下必须带 --allow-scripts=node-pty,否则 node-pty 原生模块无法准备;需先自行安装并配置好 Pi Coding Agent;默认监听 127.0.0.1:8504,远程访问要走 VPN、SSH 隧道或带认证的反向代理,不能直接暴露公网。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.202611.1
  1. v1.202611.1最新正式版2026-11-07 · 2026-11-07 10:39 UTC

    Upgrade

    Update/restart the web/API process before restarting the session daemon to load the daemon-side changes. Restarting the session daemon interrupts active sessions and terminals. Existing managed-Pi services may need /pi-web install again, as noted below.

    Patch Changes

    • 5a8181c: Add one hostAccess policy for production and development: restrict access to local addresses and listed hostnames, or explicitly allow any hostname. Configure it in General settings or with PI_WEB_HOST_ACCESS. A persistent notice prompts new and existing installations to choose; until then, production hostname restrictions remain off and development retains its legacy allowedHosts behavior. Allowing any hostname or leaving the decision unresolved lacks application-level DNS-rebinding protection.

      Reject malformed Host headers and cross-origin browser mutations and WebSocket upgrades regardless of hostname policy. These checks do not replace authentication or restricted backend access.

      Upgrade guidance: Reverse proxies must preserve public Host (including nonstandard ports) and browser Origin unchanged. Restart web/API and the development UI server, if running, after changing the policy; no session-daemon restart is needed for this change. See browser request security for configuration, proxy requirements, and restart details.

    • 3806bbd: Keep a session's Needs input state and its open question form in step. Both now close when the conversation continues, including a message sent before the question that is delivered after it. Passive entries, such as extension notices or shell output, leave both open.

    • 569f070: Clarify agent guidance to separate user actions from questions and approvals, and keep intervention requests short with detailed instructions in chat.

    • 028ec93: Ask for confirmation before saving or resetting a hostname policy in Settings that would block the current browser hostname after restart. Cancel preserves the draft; Save anyway keeps the requested policy unchanged.

    • b1e4ca0: Make automatic model availability explicit in the model picker's All models view, keeping the Enabled view focused on choosing a model. Enabling all current and future models clears the saved manual selection and disables individual availability controls. Turning it off starts a new manual selection containing every currently available model; newly discovered models stay disabled. Catalog refreshes preserve the saved manual selection, even when it includes every current model, instead of silently enabling newly discovered models.

    • 5edf6bf: Style the Allowed hostnames select as a form field, consistent with the other settings inputs.

    • d6d1159: Keep a federated machine's language pack on that machine. Its translations no longer change the interface language while another machine is selected. Gateway language packs still apply on every machine.

    • 4460f0c: Support Pi installed with the managed installer (pi.dev/install.sh). PI WEB now finds that Pi's SDK from the pi command on PATH. Services installed with /pi-web install from a managed Pi keep working after pi update, because they follow the install's current version instead of one release. Installation preflight verifies any explicit Pi selection retained for services and reports specific failures before changing configuration or services. Services installed earlier from a managed Pi need /pi-web install again.

    • 52bc7ad: Give system messages a consistent, readable chat presentation. Show sender attribution once for new session messages using structured sender and body information, while preserving existing messages and agent-facing history.

    • Update HTTP, static-file, and URI parsing dependencies to address reported security vulnerabilities without changing the supported Node.js requirement.

    • Keep bundled Relay and scheduled task tools compatible with Pi 1.5 by using Pi-provided TypeBox schema imports.

    • a756

  2. v1.202611.02026-11-04 · 2026-11-04 22:18 UTC
    查看更新说明

    Patch Changes

    • 8646931: Include request-correlated transport errors in session daemon logs so oversized channel rejections can be distinguished from unrelated disconnects.
    • 84a3287: Add actions to copy session, workspace, project, and machine IDs from their menus without displaying the IDs.
    • 0ec82b5: Add plugin renderers for transcript tools and displayed custom messages, with tool resolver chaining for delegation, replacement, and wrapping. Custom messages use the first matching renderer. Keep the existing view as fallback and provide a default-view control.
    • 5b0f00b: Show a static “Needs input” indicator when a session needs the user's attention to a request, including plain-text questions, structured forms, and extension dialogs. Clear agent-requested intervention when any new run starts, and retain it across restarts. Show the agent's request in the transcript as an “Input requested” card instead of inside collapsed tool activity.
    • d982b52: Automatically restore missing macOS terminal helper execute permissions during terminal checks and creation, preventing failures after reinstalling or updating.
    • ad06af3: Move automatic session naming into a removable bundled Pi package, usable in both PI WEB and the TUI. Remove the package to use another naming extension. Migrate naming tuning into package-owned configuration and remove the old writable core key. Core configuration APIs reject the retired setting. Migration failures log errors, retain source data, and allow startup to continue. Update the web UI when extensions rename sessions.
    • 6e82a8d: Keep plain-text code blocks and files in raw view without unnecessary Highlighted/Raw controls.
    • f91fcb4: Keep routine workspace plugin requests, including terminal badge updates, from repeatedly launching Git discovery and stalling the session daemon. Refresh workspace records through discovery and change notifications while retaining fresh validation before workspace deletion.
    • 7ebaf86: Keep the reading position steady when scrolling upward into long code blocks that finish rendering as they enter view.
    • 4ac2158: Coordinate chat scrolling through one viewport owner so consecutive history prepends preserve the original reading position and queued scrolling respects user navigation. Keep saved positions and disclosure choices separate between machines, while preserving existing local state.

    Upgrade notes

    Existing session-naming settings migrate automatically. Future naming changes use <active-agent-profile>/session-naming/config.json instead of the Session daemon settings panel.

    Restart the web/API process and then the session daemon after upgrading to activate all changes. Restarting the session daemon interrupts active sessions and terminals.

    Automatically generated by the user's AI workflow.

  3. v1.202610.92026-10-30 · 2026-10-30 15:38 UTC
    查看更新说明

    Patch Changes

    • a2d4c60: Move Dismiss into closed extension-dialog headers and hide text-input answers by default, with an eye icon to reveal or hide them.

    • 33f6a57: Show machine names without URLs consistently in PWA and browser headers, and keep the machine logo visible in the mobile machine picker. URLs remain available in tooltips and machine details.

    • 0dc78b3: Require confirmation of scheduled task definitions before creation or updates, and keep task prompts faithful to the user's request without adding execution plans or unrequested files.

    • 447d64b: Add an agent action to permanently delete archived scheduled tasks and all their definition and execution history, while preserving existing conversations.

    • 7fb972c: Add an optional, disabled-by-default scheduled agent tasks package (beta) with conversation-based task management, a persistent execution ledger, background conversation dispatch, and a read-only dashboard with execution history, conversation links, and collapsed disclosures for current task prompts and saved run instructions.

    • 63a7360: Redesign the scheduled tasks dashboard around problems needing attention, reported results, and upcoming work. Keep list rows focused on linked titles, status, and time. Open task history and technical details only when needed, with full reports collapsed by default and warnings and text links to conversations inside task details.

    • 4473955: Summarize cleanup rules and protections in a compact icon-led list, with a warning when pinned sessions are included. Clarify that preview counts are estimates and eligible sessions are rechecked when cleanup runs.

    • 14c0848: Keep autocomplete suggestions anchored above the editor when the iOS keyboard is open.

    • 68b1c83: Open the native attachment chooser directly on non-Android and unknown devices, including iPhone, iPad, and touch-enabled Windows machines. Keep Photos, Camera, and Files shortcuts on Android so its photo gallery remains accessible.

    • 2f3f7fa: Add locally bundled Material file-type shapes to Files and Git in a single muted tone that follows the active colour theme. Select file icon themes independently of colour themes in Settings, and let plugins contribute additional icon sets. Git preserves status labels and uses filename colours to distinguish changes without tinting the icons.

    • ec64552: Expose session pin, unpin, archive, restore, and archived-session deletion to browser and server plugins using explicit session identities. Pins protect cleanup without blocking deliberate plugin commands. Expose creation, modification, archive timestamps, and pin state through session discovery so plugins can implement their own age filters and cleanup policies without a cleanup-specific API. These metadata fields are always present; unknown dates are explicitly null.

      Use the same native lifecycle guards for core cleanup and explicit plugin archive/delete commands.

      Move session pins to daemon-owned storage, preserving existing pins. Upgrade/restart the web/API process before restarting the session daemon; do not leave an older web/API process writing pins after the migration. Session-daemon restarts interrupt active sessions and terminals.

    • 931253d: Avoid flashing the worktree list on mobile for single-worktree projects, and open Sessions without waiting for its contents to finish loading.

    • bc290f2: Open the restored session's chat instead of the previously selected chat when restoring from the session list. Keep the list open if restoration fails or becomes stale.

    • 7a6cb1d: Use the bottom safe area for vertically centred session statistics while keeping model and send controls above it.

    • 05eb410: Allow scheduled agent tasks to select an optional model and thinking level. Use current session defaults when omitted, and record a visible notice when unavailable settings require a fallback before execution starts.

    • Keep server plugin thinking-level declarations self-contained so plugin consumers do not need to resolv

  4. v1.202610.82026-10-27 · 2026-10-27 10:16 UTC
    查看更新说明

    v1.202610.8

    Configuration defaults and deployment policy

    Add optional read-only deployment defaults through PI_WEB_DEFAULTS_CONFIG, environment overrides for core settings, and source indicators and reset controls in Settings. Environment policy can enforce theme and localization without erasing saved browser preferences.

    Existing config paths and supported setting names remain valid. Project path additions, plugin setting overrides, and empty upload/attachment container inheritance are preserved. No config-file or data migration is required.

    Configuration upgrade notice

    • Boolean environment values must be true/false (case-insensitive) or 1/0. Invalid or empty values now fail startup; unset unused variables. This includes PI_WEB_SPAWN_SESSIONS, PI_WEB_SUBSESSIONS, PI_WEB_ASK_USER, and PI_WEB_ENVIRONMENT_FACTS.
    • PI_WEB_OFFLINE, PI_OFFLINE, PI_WEB_SKIP_VERSION_CHECK, and PI_SKIP_VERSION_CHECK now interpret those values as booleans rather than enabling the flag for every nonempty string. false and 0 now disable the corresponding flag; use true or 1 to keep it enabled.
    • Previously ignored unknown fields in pathAccess, uploads, and attachments are rejected, including in project config. Correct misspellings or remove unsupported fields.
    • Environment-controlled settings are read-only in Settings/API. Unset the controlling variable to edit saved overrides.
    • extensionDialogsTimeoutMs must be at most 2147483647 milliseconds; use 0 to wait indefinitely.

    When adopting deployment defaults, keep that file separate from writable PI_WEB_CONFIG and configure both services. Upgrade federated peers before relying on their enforcement metadata. See the configuration reference.

    Files and plugin previews

    • Add audio playback and plugin-contributed text and binary previewers. Preserve built-in previews, text-file Raw views, and downloads; remove the redundant Original view for binary files.
    • Reveal selected files after reloads and navigation. Preserve expanded folders, deliberate collapses, and tree scroll position when returning to Files, including after interrupted directory loads.
    • Add scoped plugin resource URLs for streaming documents, media, and binary data through PI WEB, including remote machines and range responses, without a separate HTTP port.

    Other improvements

    • Add status-coloured Git icons, conflict labels, and staged/unstaged hints.
    • Return to Chat when collapsing the desktop workspace pane, while remembering the selected tool.
    • Keep Reload before Actions across desktop and mobile layouts, and make toolbar separators consistent.
    • Report failed daemon version checks accurately and retry automatically, without incorrectly declaring the daemon down.
    • Allow refreshed plugin UI builds to use the running backend during development; production pairing remains strict by default.
    • Remove the optional Workspace Reviews example from the package; retain the minimal workspace-provider example.

    Automatically generated by the user's AI workflow.

  5. v1.202610.72026-10-25 · 2026-10-25 20:55 UTC
    查看更新说明

    Changes

    • Add optional comments to selected answers in Ask User forms. Preserve custom answers and comments when switching choices or reloading, and submit only active answers and comments left open.
    • Choose interface language, regional formatting, time zone, and clock style independently in General settings, with live examples. Administrators can set installation-wide defaults, while each browser can override or inherit individual preferences. Show only installed languages and make inherited values clear.
    • Keep session cleanup results visible above the dialog buttons instead of hiding them in the scrolling preview.
    • Add optional, best-effort Bun support for installed PI WEB, including terminals and services, while keeping Node.js as the default and recommended production choice. Show the runtime actually used in version and health reports, and clearly report unsupported timeout settings. Existing services need pi-web install again to adopt the new launchers; native Pi extensions may not work with Bun.
    • Make controls consistently sized across mouse, touch, and pen input, keep attachment buttons compact, and make panel dividers easier to grab. Keep menus anchored and above surrounding content, improve dialog accessibility, and show the current model and selected sessions correctly from the start. Make nested-session labels less prominent and preserve drafts and completion behavior when switching sessions.
    • Fix PI WEB commands and standalone services failing after installation through Pi. Reuse the existing Pi installation and allow Pi upgrades and downgrades without requiring a separate engine.
    • Refresh the product overview with desktop theme previews, tablet and phone screenshots, and a link to explore more device and theme combinations.
    • Keep bundled Relays and Workflows available after PI WEB upgrades while preserving resource selections and intentionally removed packages.
    • Display formatted messages correctly when they return to view instead of leaving raw Markdown visible.
    • Add live interface translation across navigation, conversations, settings, sign-in, session management, and built-in tools, including Files, Git, Terminal, Updates, Workflows, and Relay. Apply regional formatting to dates, counts, sizes, and costs, and support right-to-left navigation. Preserve drafts, selections, open content, original messages, commands, and diagnostic output when the language changes.
    • Run updates in a dedicated maintenance terminal on the selected machine without requiring or using a project workspace. Show maintenance and workspace terminals together, allow update commands to be continued interactively, and avoid freezing when no project is selected. Keep terminal text fully visible and show selection and extra-key controls only on touch-capable devices.
    • Add “Mark as unread” to session menus. Marking the open session unread keeps its indicator until you leave and return; pinning remains unchanged.
    • Give installations recognizable names in Settings, including single-machine installations. Use remote installations' reported names unless locally overridden, and show the gateway name when installing PI WEB as an app.
    • Allow plugins and language packs to provide translations that update immediately when the interface language changes. Keep the interface usable with English fallback if a language pack is missing, slow, or broken, including across machines running different plugin versions.
    • Add an optional quiet conversation view under Settings → General → Chat display. Keep tool activity, thinking, results, and skill loads in one expandable live activity line instead of expanding each event while the agent works. Quiet mode is off by default and can also be set as an installation-wide default.
    • Show clear local and network addresses at startup so PI WEB is easier to open from another device.
    • Restore live conversation updates when returning to a browser tab and check visible conversations for missed updates. Prese

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    PI WEB

    CI npm version Node.js Bun* License: MIT

    PI WEB is a web UI for Pi Coding Agent that keeps agent sessions running in real workspaces on your machine or server.

    Run agents where your code, tools, credentials, and build caches live. Supervise multiple sessions from any browser, even after disconnecting.

    The same PI WEB workspace in PI WEB Dark, PI WEB Light, Paper, and Graphite themes

    Explore devices and themes

    Quick start

    The recommended setup uses Node.js 22.19.0+, npm, Pi Coding Agent installed and configured for your user, git, and the development tools your agents need. Best-effort Bun support is also available.

    npm install -g @jmfederico/pi-web --allow-scripts=node-pty
    pi-web install
    pi-web doctor
    

    On npm 12, the scoped flag lets node-pty prepare its required native module.

    Open http://127.0.0.1:8504. Add a project, choose a workspace or Git worktree, and start a session.

    pi-web status
    pi-web logs
    pi-web restart
    pi-web update
    pi-web uninstall
    

    For installation variants, Docker, and remote access, see the installation guide.

    Core model

    • Machine: a local or remote PI WEB runtime.
    • Project: a folder on that machine.
    • Workspace: a working folder, such as a Git worktree.
    • Session: a Pi Coding Agent conversation running in a workspace.

    Use files, terminals, plugins, and agent workflows in one UI. Register remote machines to supervise work across a fleet.

    Security

    PI WEB assumes trusted users, repositories, paths, and plugins. It is not a sandbox or a multi-tenant platform.

    For remote access, use a trusted private network, VPN, SSH tunnel, or authenticated reverse proxy. Do not expose PI WEB directly to the public internet.

    Documentation

    Development

    npm install
    npm run dev
    

    Open the Vite URL, usually http://localhost:8505. See development checks for verification guidance.

    License

    MIT © 2026 Federico Jaramillo Martinez. See LICENSE.