agegr/pi-webPublic

Web UI for the pi coding agent

AI summary: Local web-based UI for the Pi coding agent, offering visual session browsing and real-time chat.

Stars
3.7K
+87 today
Forks
517
Watchers
17
Open issues
19
Open PRs
10
Contributors
~25
Commits
379
Branches
3

TypeScriptMITCreated Mar 22, 2026Last push todayLatest release v0.8.1+340 stars this week+725 this month

Star history

since Apr 19, 2026
01K2K3KApr 2026May 2026Jun 2026Aug 2026
3.7K stars as of Aug 7, 2026, tracked back to Apr 19, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 0 commits2025-08-04: 0 commits2025-08-05: 0 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 1 commit2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 1 commit2026-03-23: 7 commits2026-03-24: 15 commits2026-03-25: 6 commits2026-03-26: 7 commits2026-03-27: 3 commits2026-03-28: 1 commit2026-03-29: 0 commits2026-03-30: 1 commit2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 2 commits2026-04-03: 1 commit2026-04-04: 0 commits2026-04-05: 11 commits2026-04-06: 6 commits2026-04-07: 2 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 3 commits2026-04-12: 0 commits2026-04-13: 2 commits2026-04-14: 1 commit2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 3 commits2026-04-18: 1 commit2026-04-19: 1 commit2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 4 commits2026-04-24: 4 commits2026-04-25: 9 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 4 commits2026-04-30: 0 commits2026-05-01: 4 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 3 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 1 commit2026-05-09: 1 commit2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 1 commit2026-05-13: 1 commit2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 2 commits2026-05-22: 1 commit2026-05-23: 3 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 2 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 1 commit2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 8 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 4 commits2026-06-09: 3 commits2026-06-10: 1 commit2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 1 commit2026-06-17: 1 commit2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 7 commits2026-06-24: 5 commits2026-06-25: 0 commits2026-06-26: 15 commits2026-06-27: 3 commits2026-06-28: 0 commits2026-06-29: 7 commits2026-06-30: 0 commits2026-07-01: 12 commits2026-07-02: 9 commits2026-07-03: 12 commits2026-07-04: 12 commits2026-07-05: 1 commit2026-07-06: 15 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 1 commit2026-07-11: 9 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 6 commits2026-07-15: 18 commits2026-07-16: 9 commits2026-07-17: 2 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 9 commits2026-07-22: 11 commits2026-07-23: 4 commits2026-07-24: 4 commits2026-07-25: 18 commits2026-07-26: 7 commits2026-07-27: 1 commit2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
331 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Rising fast

    +340 stars this week

  • Actively maintained

    Pushed within 48 hours

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    5 trending appearances

What pi-web does

Pi Web is a local web application that serves as a graphical interface for the Pi CLI coding agent. It works by reading local Pi session files and rendering them into a browser workspace, transforming raw CLI output into readable Markdown. The interface allows users to browse past sessions, interact via real-time chat, configure AI models, manage agent skills, and preview project files natively within the browser, significantly enhancing the usability of the underlying CLI tool.

Users of the Pi coding agent who want a richer, visual, web-based workspace rather than interacting strictly through the command-line interface.

  • Session browsing: Reads local `.pi` files to visualize past interactions and structured tool calls in a clean UI.
  • Real-time chat interface: Provides a browser-based chat window for interacting directly with the Pi agent.
  • Model configuration: Allows users to easily switch and configure different language models without editing configuration files.
  • Skill management: Provides a visual dashboard to enable, disable, and manage the agent's capabilities.
  • Project file preview: Renders project files directly in the browser for immediate context while chatting with the agent.

Where teams use it

Visual agent interaction

Developers prefer a ChatGPT-like web interface over terminal commands for complex coding conversations with the Pi agent.

Session debugging

Engineers review past agent sessions to understand exactly which tools were called and what data was returned in a structured format.

Rapid model switching

Users quickly toggle between different LLMs via the web UI to compare performance on specific programming tasks.

Contextual file viewing

Developers preview code files directly within the chat interface to verify agent suggestions without opening a separate IDE.

Getting started: npx @agegr/pi-web@latest

README

main branch

Pi Web

中文文档 | 日本語

Local web UI for the pi coding agent. Pi Web reads your local pi session files and gives you a browser workspace for session browsing, real-time chat, model configuration, skill management, and project file preview.

Pi Web shows the same pi session with structured Markdown, tool calls, and project navigation beside the CLI

The same pi session in CLI and Pi Web: structured tool calls, readable Markdown, session browsing, and cleaner results.

Quick Start

Pi Web requires Node.js 22.19.0 or newer. Check your version with node --version.

Run without installing:

npx @agegr/pi-web@latest

Or install globally:

npm install -g @agegr/pi-web
pi-web

Then open http://127.0.0.1:30141. The CLI will try to open the browser automatically after the server is ready. Pi Web listens on 127.0.0.1 by default.

Options:

pi-web --port 8080              # custom port
pi-web --hostname 0.0.0.0       # expose on a trusted network
pi-web -p 8080 -H 0.0.0.0       # combine options
pi-web --no-open                # do not open the browser automatically

PORT=8080 pi-web                # environment variable is also supported
PI_WEB_HOSTNAME=0.0.0.0 pi-web  # explicit network exposure
PI_WEB_NO_OPEN=1 pi-web         # useful when running as a background service

Pi Web has no application-level authentication and can invoke a high-privilege agent. Do not expose it to the internet; only use non-loopback bindings on a trusted network.

HTTP Proxy

Pi Web reads the standard HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables for server-side model and API requests.

On macOS or Linux:

HTTP_PROXY=http://127.0.0.1:7890 \
HTTPS_PROXY=http://127.0.0.1:7890 \
NO_PROXY=localhost,127.0.0.1 \
npx @agegr/pi-web@latest

On Windows PowerShell:

$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:NO_PROXY = "localhost,127.0.0.1"
npx @agegr/pi-web@latest

Features

  • Pick work back up: browse previous pi conversations by project without digging through terminal history or session paths.
  • Try different directions safely: continue from an earlier message or fork a session into a separate route.
  • Work across branches: switch Git worktrees from the sidebar so new sessions and the Explorer follow the checkout you choose.
  • Chat beside the project: browse files on the left and preview source, docs, images, audio, and PDFs on the right while the agent works.
  • See session state clearly: context usage, cost, compaction state, and system prompt details are visible from the top bar.
  • Configure less from the terminal: manage models, login/API keys, model tests, and skill switches from the web UI.

Notes

  • Data directory: Pi Web reads ~/.pi/agent/sessions by default. Set PI_CODING_AGENT_DIR to point at another pi agent directory.
  • Session files: files are stored as ~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl.
  • Model config: the Models panel reads and writes models.json in the pi agent directory. Model lists and defaults come from pi's config.
  • File access: file browsing and preview are scoped to the selected project directory and working directories that appear in sessions.
  • Git worktrees: see Worktrees in Pi Web for when the switcher appears, how new worktrees are created, and what removal does.
  • Forks vs in-session branches: Fork creates a new .jsonl file. "Edit from here" creates another branch inside the same session file.

Development

npm install
npm run dev

The local dev server runs at http://127.0.0.1:30141.

Common checks:

node_modules/.bin/tsc --noEmit
npm run lint

Avoid running next build / npm run build during local development. It writes to .next/ and can interfere with the dev server; leave builds for release work.

Project Structure

app/
  api/
    agent/          # creates/drives AgentSession and exposes SSE events
    auth/           # OAuth and API key management
    cwd/browse/     # browsable server directory listing
    cwd/validate/   # custom working directory validation
    default-cwd/    # pi default working directory lookup
    files/          # file listing, reading, preview, and watching
    home/           # current user home directory
    models/         # available models, default model, thinking levels
    models-config/  # read/write models.json and test models
    sessions/       # session reads, rename, delete, context, HTML export
    skills/         # skill listing, search, install, enable/disable
components/
  AppShell.tsx        # main layout, URL state, top panels, file tabs
  SessionSidebar.tsx  # project selector, session tree, Explorer
  DirectoryPicker.tsx # browsable and editable working-directory picker
  ChatWindow.tsx      # messages, SSE, image drag/drop, minimap
  ChatInput.tsx       # input bar, model/tools/thinking/compact/slash controls
  MessageView.tsx     # message, thinking, tool call/result rendering
  ModelsConfig.tsx    # model and auth configuration panel
  SkillsConfig.tsx    # skill management panel
  FileExplorer.tsx    # file tree
  FileViewer.tsx      # source, diff, image, audio, PDF, DOCX preview
lib/
  directory-browser.ts # directory normalization and safe listing helpers
  http-dispatcher.ts  # HTTP(S) proxy setup for server-side fetch
  rpc-manager.ts      # AgentSessionWrapper lifecycle and global registry
  session-reader.ts   # parses .jsonl session files and branch contexts
  normalize.ts        # normalizes toolCall field names
  file-access.ts      # file read safety boundary
  file-paths.ts       # path encoding and relative path helpers
  markdown.ts         # Markdown/Mermaid/KaTeX plugin configuration
  pi-types.ts         # pi-related types
hooks/
  useAgentSession.ts  # session loading, command sending, SSE state machine
  useAudio.ts         # completion sound
  useDragDrop.ts      # image drag/drop
  useTheme.ts         # theme switching
bin/
  pi-web.js           # npm CLI entrypoint
instrumentation.ts    # initializes the server HTTP dispatcher
View on GitHub

Recent activity

commits and pull requests

Releases and announcements

19 total
  1. v0.8.1v0.8.1Jul 25, 2026

    ## 中文 基于 `v0.8.0..v0.8.1` 的提交整理。 ### 新增 - 新增可浏览的目录选择器,并完善路径导航、显示和交互样式(`2db68da`、`8b5b9fb`)。 - 输入框支持历史消息回溯,并可通过 `Cmd+I` 引用文件查看器中选中的代码行(`f66347f`、`a3810ba`)。 - Markdown 体验增强:支持图片预览、LaTeX/KaTeX 数学公式,以及文件预览中的 Mermaid 渲染、缩放和平移(`aa30c78`、`65d59dc`、`1c8a3dc`、`7d584cc`、`6c1fe3a`)。 - 消息用量中新增缓存写入统计(`105c4fc`)。 ### 修复 - 加固本地 API 与文件系统边界:限制跨源请求、规范化工作区路径,并约束上传、图片附件和输出跟踪路径(`0a32acb`、`3f47c75`、`5c57870`、`d885880`)。 - 服务默认仅监听回环地址,并修正 LAN 模式下的 API Origin 校验(`3bd11ee`、`3a15372`)。 - 修复流式新会话在侧边栏不可见、后台完成后列表不刷新,以及仅存在于运行时注册表中的会话遗漏问题(`0bd6cca`、`56877fb`、`c910e1f`)。 - 修复发送失败时输入内容丢失,以及同时创建新会话可能复用同一 RPC 锁的问题(`3fd3007`、`819f644`)。 - 修复模型配置更新后无法立即选择新提供商、运行时错误不可见及错误状态下模型选择器消失的问题(`9ccfc48`、`316b547`、`413cc2f`)。 - 修复自动会话命名的流函数参数,以及压缩发生在会话轮次中时后续消息无法正确折叠的问题(`5306e8e`、`142137a`)。 ### 改进 - 最低 Node.js 版本调整为 `22.19.0`,启动时会进行明确校验(`236b148`)。 - Pi 相关依赖升级至 `0.82.1`(`ae58c82`)。 - 新增日文 README,并同步文档导航(`80269f`)。 ### 内部调整 - 发布 npm 包 `@agegr/pi-web@0.8.1`(`b4f4576`)。 ## English Prepared from commits in `v0.8.0..v0.8.1`. ### Added - Added a browsable directory picker with refined path navigation, display, and interaction styling (`2db68da`, `8b5b9fb`). - Added input history recall and `Cmd+I` mentions for selected

  2. v0.8.0v0.8.0Jul 22, 2026

    ## 中文 基于 `v0.7.17..v0.8.0` 的提交整理。 ### 新增 - 文件浏览器新增 Git 工作区状态标记和 diff 视图,可直接比较文件与 `HEAD` 的差异(`5941e4b`)。 - 支持根据会话内容自动生成会话名称(`2903ccd`)。 - 支持通过 URL 的 `cwd` 参数直接打开指定工作目录,并在同时存在会话参数时优先使用 `cwd`(`f191fc1`,#185)。 - 支持用鼠标中键关闭文件标签页(`26e8722`)。 ### 修复 - 服务端请求现在遵循 `HTTP_PROXY`、`HTTPS_PROXY` 和 `NO_PROXY` 环境变量,并统一配置连接超时行为(`fcb4b37`)。 ### 改进 - 产品名称由 Pi Agent Web 更新为 Pi Web,并同步更新界面与文档(`0571a15`)。 - 升级 Pi 相关依赖至 `0.81.0`(`81c4789`)。 - 调整会话标题操作文案,使自动命名与手动重命名的含义更明确(`acbe764`)。 - 将已打入前端产物的依赖移至开发依赖,精简 npm 运行时安装内容(`c57300e`)。 ### 内部调整 - 发布 npm 包 `@agegr/pi-web@0.8.0`(`ff99f93`)。 ## English Prepared from commits in `v0.7.17..v0.8.0`. ### Added - Added Git working-tree status indicators and a file diff view that compares files directly with `HEAD` (`5941e4b`). - Added automatic session naming based on conversation content (`2903ccd`). - Added direct project navigation through the `cwd` URL parameter, with `cwd` taking precedence when a session parameter is also present (`f191fc1`, #185). - Added middle-click support for closing file tabs (`26e8722`). ### Fixed - Server-side requests now honor `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`, with consistent connection timeout handling (`fcb4b37`

  3. v0.7.17v0.7.17Jul 21, 2026

    ## 中文 基于 `v0.7.16..v0.7.17` 的提交整理。 ### 新增 - `10effd2` 支持在 Web UI 使用 pi CLI 风格的 shell 前缀:`!command` 执行结果会进入模型上下文,`!!command` 的结果仅保留在本地。 - `17945f9` 支持 headless 自定义 TUI 渲染。 ### 修复 - `3ab8662` 提升 shell 命令执行的稳定性。 - `cedaee8` 调整会话状态展示位置,使其显示在元数据行。 ### 内部调整 - 发布 npm 包 `@agegr/pi-web@0.7.17`。 ## English Prepared from commits in `v0.7.16..v0.7.17`. ### Added - `10effd2` Added pi CLI-style shell prefixes in the web UI: `!command` sends output to the model context, while `!!command` keeps output local. - `17945f9` Added headless custom TUI rendering support. ### Fixed - `3ab8662` Stabilized shell command execution. - `cedaee8` Moved session status to the metadata row. ### Internal - Published npm package `@agegr/pi-web@0.7.17`.

  4. v0.7.16v0.7.16Jul 17, 2026

    ## Pi upstream - Upgraded Pi from `0.80.7` to `0.80.10`. - Upgraded `@earendil-works/pi-ai`, `@earendil-works/pi-coding-agent`, and `@earendil-works/pi-tui` to `0.80.10`; `pi-agent-core` followed transitively. ## Important upstream changes - Migrated pi-web to the new async `ModelRuntime` API for model catalogs, request auth, API keys, OAuth login/logout, model tests, and session model selection. `AuthStorage` is no longer exported upstream. - Added upstream Kimi K3 support and deferred tool loading, plus Kimi Coding adaptive-thinking compatibility and corrected thinking metadata. - Added xAI device-code OAuth and Grok 4.5 support; restored xAI catalog entries accidentally removed in `0.80.9`. ## Validation - `node_modules/.bin/tsc --noEmit` passed. - `npm run lint` passed. - `npm run release` passed: production build completed and `@agegr/pi-web@0.7.16` was published to npm. The build retained the existing dynamic-dependency warning in the session export route.

  5. v0.7.15v0.7.15Jul 16, 2026

    ## 中文 基于 `v0.7.14..v0.7.15` 的提交整理。 ### 新增 - 文件浏览器支持上传单个或多个文件,并提供冲突检测、覆盖或跳过选项及安全路径校验(`08b77b2`)。 - 新增全局快捷键:`Esc` 停止正在运行的 Agent,`Ctrl+Alt+N` 新建会话(`d386c1a`)。 - 浏览器标签页标题现在会显示当前工作区目录名(`c4b7998`)。 ### 修复 - 输入法组合输入期间按 `Esc` 不再误触发停止 Agent(`01ae83a`)。 - 修复根工作区目录名未正确显示在浏览器标题中的问题(`ac9a3ec`)。 - 移除文件查看器 Markdown 预览的硬编码最大宽度,改善宽屏内容显示(`cb68820`)。 ### 内部调整 - 发布 npm 包 `@agegr/pi-web@0.7.15`。 ## English Prepared from commits in `v0.7.14..v0.7.15`. ### Added - Added single and multi-file uploads to the file explorer, with conflict detection, overwrite or skip choices, and safe path validation (`08b77b2`). - Added global shortcuts: `Esc` stops the running agent and `Ctrl+Alt+N` starts a new session (`d386c1a`). - Browser tab titles now include the current workspace directory name (`c4b7998`). ### Fixed - Prevented `Esc` from stopping the agent while an IME composition is active (`01ae83a`). - Fixed the root workspace directory name in the browser title (`ac9a3ec`). - Removed the hardcoded maximum width from FileViewer Markdown previews for better wide-screen rendering (`cb68820`). ### Internal - Published npm package `@agegr/pi-web@0.7.15`.

Code frequency

additions and deletions
+17.4K-17.4KWeek of 2026-03-15: +17,428 linesWeek of 2026-03-15: -0 linesWeek of 2026-03-22: +10,614 linesWeek of 2026-03-22: -6,705 linesWeek of 2026-03-29: +158 linesWeek of 2026-03-29: -92 linesWeek of 2026-04-05: +2,766 linesWeek of 2026-04-05: -1,495 linesWeek of 2026-04-12: +1,795 linesWeek of 2026-04-12: -1,166 linesWeek of 2026-04-19: +1,804 linesWeek of 2026-04-19: -1,214 linesWeek of 2026-04-26: +9,178 linesWeek of 2026-04-26: -2,206 linesWeek of 2026-05-03: +1,656 linesWeek of 2026-05-03: -425 linesWeek of 2026-05-10: +264 linesWeek of 2026-05-10: -67 linesWeek of 2026-05-17: +5,021 linesWeek of 2026-05-17: -5,317 linesWeek of 2026-05-24: +264 linesWeek of 2026-05-24: -8 linesWeek of 2026-05-31: +1,532 linesWeek of 2026-05-31: -531 linesWeek of 2026-06-07: +631 linesWeek of 2026-06-07: -335 linesWeek of 2026-06-14: +47 linesWeek of 2026-06-14: -14 linesWeek of 2026-06-21: +3,855 linesWeek of 2026-06-21: -1,024 linesWeek of 2026-06-28: +7,433 linesWeek of 2026-06-28: -1,005 linesWeek of 2026-07-05: +2,171 linesWeek of 2026-07-05: -790 linesWeek of 2026-07-12: +3,884 linesWeek of 2026-07-12: -724 linesWeek of 2026-07-19: +6,615 linesWeek of 2026-07-19: -1,852 linesWeek of 2026-07-26: +419 linesWeek of 2026-07-26: -619 linesMar 15, 2026Jul 26, 2026
+77.5K lines added, -25.6K removed over the last year.

Commits per week

last 52 weeks
520Week of 2025-08-03: 0 commitsWeek of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 1 commitsWeek of 2026-03-22: 40 commitsWeek of 2026-03-29: 4 commitsWeek of 2026-04-05: 22 commitsWeek of 2026-04-12: 7 commitsWeek of 2026-04-19: 18 commitsWeek of 2026-04-26: 8 commitsWeek of 2026-05-03: 5 commitsWeek of 2026-05-10: 2 commitsWeek of 2026-05-17: 6 commitsWeek of 2026-05-24: 2 commitsWeek of 2026-05-31: 9 commitsWeek of 2026-06-07: 8 commitsWeek of 2026-06-14: 2 commitsWeek of 2026-06-21: 30 commitsWeek of 2026-06-28: 52 commitsWeek of 2026-07-05: 26 commitsWeek of 2026-07-12: 35 commitsWeek of 2026-07-19: 46 commitsWeek of 2026-07-26: 8 commitsAug 3, 2025Jul 26, 2026
331 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 2 commitsSun 1:00 — 4 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 2 commitsSun 15:00 — 2 commitsSun 16:00 — 1 commitsSun 17:00 — 1 commitsSun 18:00 — 0 commitsSun 19:00 — 3 commitsSun 20:00 — 4 commitsSun 21:00 — 0 commitsSun 22:00 — 1 commitsSun 23:00 — 2 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 1 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 2 commitsMon 14:00 — 3 commitsMon 15:00 — 1 commitsMon 16:00 — 1 commitsMon 17:00 — 7 commitsMon 18:00 — 0 commitsMon 19:00 — 5 commitsMon 20:00 — 1 commitsMon 21:00 — 9 commitsMon 22:00 — 14 commitsMon 23:00 — 2 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 2 commitsTue 10:00 — 0 commitsTue 11:00 — 3 commitsTue 12:00 — 1 commitsTue 13:00 — 1 commitsTue 14:00 — 2 commitsTue 15:00 — 3 commitsTue 16:00 — 1 commitsTue 17:00 — 4 commitsTue 18:00 — 3 commitsTue 19:00 — 5 commitsTue 20:00 — 3 commitsTue 21:00 — 5 commitsTue 22:00 — 5 commitsTue 23:00 — 7 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 1 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 2 commitsWed 10:00 — 1 commitsWed 11:00 — 1 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 4 commitsWed 15:00 — 2 commitsWed 16:00 — 8 commitsWed 17:00 — 4 commitsWed 18:00 — 0 commitsWed 19:00 — 3 commitsWed 20:00 — 7 commitsWed 21:00 — 10 commitsWed 22:00 — 9 commitsWed 23:00 — 8 commitsThu 0:00 — 0 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 1 commitsThu 9:00 — 3 commitsThu 10:00 — 1 commitsThu 11:00 — 2 commitsThu 12:00 — 1 commitsThu 13:00 — 0 commitsThu 14:00 — 3 commitsThu 15:00 — 6 commitsThu 16:00 — 3 commitsThu 17:00 — 2 commitsThu 18:00 — 2 commitsThu 19:00 — 4 commitsThu 20:00 — 5 commitsThu 21:00 — 2 commitsThu 22:00 — 6 commitsThu 23:00 — 4 commitsFri 0:00 — 0 commitsFri 1:00 — 2 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 2 commitsFri 10:00 — 0 commitsFri 11:00 — 3 commitsFri 12:00 — 0 commitsFri 13:00 — 4 commitsFri 14:00 — 3 commitsFri 15:00 — 4 commitsFri 16:00 — 2 commitsFri 17:00 — 7 commitsFri 18:00 — 1 commitsFri 19:00 — 0 commitsFri 20:00 — 1 commitsFri 21:00 — 6 commitsFri 22:00 — 7 commitsFri 23:00 — 9 commitsSat 0:00 — 3 commitsSat 1:00 — 0 commitsSat 2:00 — 1 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 2 commitsSat 7:00 — 3 commitsSat 8:00 — 0 commitsSat 9:00 — 2 commitsSat 10:00 — 1 commitsSat 11:00 — 1 commitsSat 12:00 — 1 commitsSat 13:00 — 1 commitsSat 14:00 — 3 commitsSat 15:00 — 1 commitsSat 16:00 — 2 commitsSat 17:00 — 6 commitsSat 18:00 — 1 commitsSat 19:00 — 9 commitsSat 20:00 — 8 commitsSat 21:00 — 6 commitsSat 22:00 — 8 commitsSat 23:00 — 1 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits322 (85%)
Community commits56 (15%)

378 commits in total over the last year.

DateListRankStars gained
Jul 31, 2026weekly#11+1,260
Jul 30, 2026weekly#11+1,260
Jul 29, 2026weekly#6+1,474
Jul 28, 2026weekly#5+1,676
Jul 27, 2026weekly#4+1,551
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    453.6K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    194.7K stars · TypeScript