No description
  • TypeScript 96.4%
  • JavaScript 3.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
sleepy 8a26d4aae2
Some checks failed
CI / Verify and package (ubuntu-latest) (push) Has been cancelled
CI / Verify and package (windows-latest) (push) Has been cancelled
feat: add speech-to-text mic button to prompt editor
- Server: /api/transcribe + /api/transcribe/health proxy to the local
  Parakeet ASR service (127.0.0.1:13344, loopback-only) with raw audio
  content-type passthrough (fastify buffer parser for audio/*)
- Client: mic button in PromptEditor records via MediaRecorder (webm/opus
  preferred, ogg/mp4 fallback), posts blob to the proxy, inserts the
  transcript into the editor and autosends
- Recording state pulses red; errors surface inline next to attachments
2026-08-15 00:53:34 +02:00
.agents/skills feat: add relay skill and distributable skills folder 2026-06-17 12:17:11 +02:00
.changeset fix: inherit dispatcher model for spawned sessions 2026-06-28 16:46:37 +02:00
.githooks Add pre-commit verification hook 2026-05-11 11:14:48 +02:00
.github/workflows ci: run verify/build on Linux and Windows, allow manual dispatch 2026-06-13 11:41:17 +02:00
docs feat: add manual session cleanup 2026-06-26 15:57:12 +02:00
extensions feat: add pi-web version reporting 2026-05-28 21:33:14 +02:00
pi-web-plugins Show Tasks tab badge only for unavailable config 2026-06-16 22:32:57 +02:00
plugin-api feat: add public plugin workspace capabilities 2026-06-04 13:00:25 +02:00
scripts fix: ensure node-pty spawn-helper has executable bit 2026-06-28 19:06:00 +02:00
skills docs(relay): add context-contained status baton 2026-06-25 11:30:49 +02:00
src feat: add speech-to-text mic button to prompt editor 2026-08-15 00:53:34 +02:00
.gitignore chore: gitignore Vite dep cache (src/client/.vite/) 2026-06-28 22:50:38 +02:00
AGENTS.md feat: add external path access allowlist 2026-06-23 12:30:30 +02:00
CHANGELOG.md chore(release): v1.202606.7 2026-06-26 18:20:39 +02:00
eslint.config.js feat(plugins): add actions plugin package 2026-05-21 09:31:33 +02:00
install.sh Namespace npm package under jmfederico 2026-05-08 18:57:20 +02:00
knip.json Clean up remaining dead code and dependencies 2026-06-13 21:57:51 +02:00
LICENSE Add MIT license 2026-05-08 11:41:14 +02:00
package-lock.json fix: ensure node-pty spawn-helper has executable bit 2026-06-28 19:06:00 +02:00
package.json fix: ensure node-pty spawn-helper has executable bit 2026-06-28 19:06:00 +02:00
plugin-api.d.ts feat: add public plugin workspace capabilities 2026-06-04 13:00:25 +02:00
README.md docs: mark as fork, fix run/install instructions, drop todo.md 2026-06-28 22:42:53 +02:00
tsconfig.build.json Add npm package installer CLI 2026-05-08 16:26:08 +02:00
tsconfig.json feat: add public plugin workspace capabilities 2026-06-04 13:00:25 +02:00
tsconfig.plugin-api.json feat: add public plugin workspace capabilities 2026-06-04 13:00:25 +02:00
tsconfig.plugins.json feat: build bundled plugins from TypeScript 2026-05-19 12:50:42 +02:00
vite.config.ts fix: context menu for delete/rename + parser media type fix 2026-06-28 19:32:50 +02:00
vitest.config.ts feat: bundle workspace tasks plugin 2026-06-03 22:31:36 +02:00

PI WEB

This is a personal fork. Forked from jmfederico/pi-web. It tracks upstream and adds a few local changes (terminal spawn fix, file preview for HTML/Markdown/PDF, file delete/rename, client-side token-speed display). The original project lives at https://github.com/jmfederico/pi-web and its website/docs at https://pi-web.dev/.

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 them from any browser.

PI WEB

PI WEB desktop screenshot

Why PI WEB?

Agentic development works better when the work environment is persistent.

PI WEB lets you:

  • keep Pi Coding Agent sessions alive after browser disconnects;
  • run agents inside real repositories and git worktrees;
  • supervise multiple sessions in parallel;
  • switch between laptop, phone, tablet, and desktop;
  • use a server, workstation, or remote dev box as your agent runtime;
  • manage projects, workspaces, files, terminals, sessions, and remote machines from one web UI.

Your browser is the control surface. The work stays where it can keep running.

Quick start

Requirements:

  • Node.js 22 or newer
  • npm
  • Pi Coding Agent installed and configured for your user (i.e. a working ~/.pi directory)
  • git and the development tools your agents need

Option A — Run from source (this fork)

git clone <your-fork-url> pi_web
cd pi_web
npm install
npm run dev

Then open the Vite dev URL printed in the terminal:

http://localhost:4444

npm run dev starts three things together: the long-lived session daemon, the API server, and the Vite UI. The browser talks to Vite (4444), which proxies /api to the API server (8504 by default).

For the split setup (run each in its own terminal), use:

npm run dev:sessiond   # session daemon (long-lived, holds active Pi sessions)
npm run dev:web        # API server + plugin builder
npm run dev:client     # Vite UI

Note: the session daemon must be restarted manually to pick up changes to src/server/sessiond.ts or the session daemon protocol. The API/UI side autoreloads via tsx watch / Vite HMR.

Validate changes with:

npm run verify          # typecheck + lint + knip + tests

Option B — Install from npm (upstream)

The upstream package is published to npm as @jmfederico/pi-web:

npm install -g @jmfederico/pi-web
pi-web install          # installs per-user launchd/systemd services
pi-web doctor           # checks your setup
pi-web status
pi-web logs
pi-web restart

Then open:

http://127.0.0.1:8504

See the upstream installation guide for one-line installs, Pi package install, WSL/manual usage, and remote access.

Core model

PI WEB organizes work like this:

Machine     a local or remote PI WEB runtime endpoint
Project     a folder on that machine
Workspace   a git worktree, or the project folder for non-git projects
Session     a Pi Coding Agent chat running inside a workspace

A typical flow:

  1. Add a project.
  2. Choose a workspace or git worktree.
  3. Start a session.
  4. Let the agent work.
  5. Come back later from any browser.

Remote-first development

PI WEB is designed for remote AI-driven development.

Instead of tying agent work to your laptop session, run PI WEB on a machine that stays available: a server, desktop, cloud VM, home lab machine, or remote dev box.

Use a private network, SSH tunnel, trusted reverse proxy, or federated PI WEB machine setup when accessing it remotely.

Read more: Remote-first development

Machines and fleets

PI WEB can register other PI WEB runtimes as remote machines. One browser-facing PI WEB instance can proxy projects, files, git state, sessions, terminals, and activity from trusted remote machines.

Read more: Fleet and machines guide

Plugins

PI WEB supports trusted local browser-side plugins that can add actions, workspace panels, and workspace metadata.

Read more: Plugin API

Configuration

Global config lives at:

$PI_WEB_CONFIG
~/.config/pi-web/config.json

Project-local PI WEB config lives at:

<project>/.pi-web/config.json

Common configuration includes host/port, path access, uploads, plugins, shortcuts, and session daemon options.

Read more: Configuration reference

Development

See Quick start → Option A above for the run-from-source flow.

Key scripts:

npm run dev            # sessiond + API + Vite UI together
npm run dev:sessiond   # session daemon only
npm run dev:web        # API server only
npm run dev:client     # Vite UI only
npm run build          # production build
npm run verify         # typecheck + lint + knip + tests
npm test               # vitest

Security model

PI WEB assumes trusted users, trusted repositories, and trusted server paths.

It is not a sandbox, permission system, or multi-tenant platform. Do not expose it directly to the public internet without a trusted network, firewall, VPN, SSH tunnel, or authenticated reverse proxy.

Documentation

License

MIT © 2026 Federico Jaramillo Martinez. See LICENSE.