This repository has been archived on 2026-08-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
pi-web/docs/index.html
T

313 lines
14 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>PI WEB — persistent AI coding agents in your browser</title>
<meta
name="description"
content="PI WEB makes AI coding work persistent by default: agents keep running outside your browser while you supervise from any device."
/>
<meta property="og:title" content="PI WEB" />
<meta
property="og:description"
content="Run persistent AI coding agents in real workspaces, keep them alive outside your device, and supervise everything from a browser."
/>
<meta property="og:image" content="assets/pi-web-banner.png" />
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg" />
<script>
(() => {
const theme = window.localStorage.getItem("pi-web-theme");
if (theme === "light" || theme === "dark") document.documentElement.dataset.theme = theme;
})();
</script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="styles.css" />
</head>
<body class="home-page">
<header class="site-header">
<nav class="container nav" aria-label="Main navigation">
<a class="brand" href="./" aria-label="PI WEB home">PI WEB</a>
<div class="nav-links">
<a href="remote-first.html">Remote-first</a>
<a href="machines.html">Fleet</a>
<a href="install.html">Install</a>
<a href="plugins.html">Plugins</a>
<a href="faq.html">FAQ</a>
<a class="github-link" href="https://github.com/jmfederico/pi-web" aria-label="PI WEB on GitHub">
<svg class="github-icon" viewBox="0 0 16 16" aria-hidden="true">
<path
fill="currentColor"
d="M8 0C3.58 0 0 3.67 0 8.2c0 3.63 2.29 6.7 5.47 7.79.4.08.55-.18.55-.4 0-.2-.01-.85-.01-1.55-2.01.38-2.53-.5-2.69-.96-.09-.24-.48-.96-.82-1.16-.28-.16-.68-.56-.01-.57.63-.01 1.08.59 1.23.84.72 1.24 1.87.89 2.33.68.07-.53.28-.89.51-1.09-1.78-.21-3.64-.91-3.64-4.04 0-.89.31-1.62.82-2.2-.08-.2-.36-1.03.08-2.16 0 0 .67-.22 2.2.84A7.4 7.4 0 0 1 8 3.94c.68 0 1.36.09 2 .28 1.53-1.06 2.2-.84 2.2-.84.44 1.13.16 1.96.08 2.16.51.58.82 1.31.82 2.2 0 3.14-1.87 3.83-3.65 4.04.29.26.54.76.54 1.53 0 1.1-.01 1.99-.01 2.27 0 .22.15.49.55.4A8.12 8.12 0 0 0 16 8.2C16 3.67 12.42 0 8 0Z"
/>
</svg>
<span>GitHub</span>
</a>
<button class="theme-toggle" type="button" data-theme-toggle aria-label="Toggle light and dark theme">
<span data-theme-icon aria-hidden="true"></span>
<span data-theme-label>Theme</span>
</button>
</div>
</nav>
</header>
<main>
<section class="hero">
<div class="container hero-grid">
<div>
<p class="eyebrow"><span class="pulse"></span> A cockpit for agentic development</p>
<h1>
<span class="title-context">Your agents keep working.</span>
<span class="gradient-text intro-target" aria-label="You just need a browser.">
<span class="intro-word" style="--i: 0">You</span>
<span class="intro-word" style="--i: 1">just</span>
<span class="intro-word" style="--i: 2">need</span>
<span class="intro-word" style="--i: 3">a</span>
<span class="intro-word" style="--i: 4">browser.</span>
</span>
</h1>
<p class="hero-lede">
PI WEB runs Pi Coding Agent sessions in real server-side workspaces, keeps them alive when your browser
leaves, and gives you a fast web surface to supervise, redirect, and review the work.
</p>
<p class="hero-manifesto">
Local development made sense when humans drove every keystroke. Agentic development works better when the
environment is persistent, remote, and always available.
</p>
<div class="hero-actions">
<a class="button primary" href="#quick-install">Install in minutes</a>
<a class="button" href="install.html">Read the docs</a>
</div>
<div class="hero-stats" aria-label="Highlights">
<div class="stat"><strong>Persistent</strong><span>sessions survive browser disconnects</span></div>
<div class="stat"><strong>Parallel</strong><span>projects, worktrees, and agents</span></div>
<div class="stat"><strong>Yours</strong><span>runs on your machine or server</span></div>
</div>
</div>
<aside class="terminal" aria-label="PI WEB install preview">
<div class="terminal-top">
<div class="dots"><span></span><span></span><span></span></div>
<span>agent-hub.local</span>
</div>
<pre><code><span class="prompt">$</span> pi-web status
✓ session daemon running
✓ web server listening on 127.0.0.1:8504
<span class="prompt">$</span> open http://127.0.0.1:8504
# laptop, phone, tablet — same live sessions
<span class="prompt">$</span> pi-web doctor
✓ login shell can find node >= 22
✓ native service shell can find pi
✓ ready for persistent agent work</code></pre>
</aside>
</div>
</section>
<section class="section compact">
<div class="container">
<div class="demo-frame">
<div class="demo-caption">
<strong>Workspaces, sessions, transcripts, terminals — one agent control plane.</strong>
<span>Bring your own repositories.</span>
</div>
<img src="assets/pi-web-demo.gif" alt="PI WEB browser UI demo" />
</div>
</div>
</section>
<section class="section manifesto-section" aria-labelledby="manifesto-title">
<div class="container manifesto-panel">
<div class="manifesto-copy">
<p class="eyebrow"><span class="pulse"></span> The mental shift</p>
<h2 id="manifesto-title">Developer tools were built for a world that no longer exists.</h2>
<p>
Editors and terminals assume the work lives with you, on your device, inside your session. AI agents break
that assumption: their work should persist, continue, and evolve independently of your laptop.
</p>
<p>
PI WEB makes persistence first-class. Sessions live outside the browser, agents keep working, and every
device becomes a control surface for supervising, redirecting, and reviewing progress.
</p>
</div>
<div class="manifesto-lines" aria-label="PI WEB principles">
<p>Persistence should not be something you bolt on after the fact.</p>
<p>The work should not disappear the moment your session ends.</p>
<p>You do not carry the work. You guide it.</p>
</div>
</div>
</section>
<section class="section">
<div class="container">
<div class="section-head">
<p class="eyebrow"><span class="pulse"></span> Remote AI-driven development</p>
<h2>Your laptop is a window, not the workstation.</h2>
<p>
Local-only development can become the blocker: one device owns the tools, terminals, build cache, editor,
and agent runtime. PI WEB moves the working environment to a machine that stays on, so agents can keep
making progress while every browser becomes a control surface.
</p>
</div>
<div class="cards">
<article class="card">
<div class="card-icon"></div>
<h3>The workstation becomes remote</h3>
<p>
Keep repositories, dependencies, secrets, build caches, and long-running agent sessions on the machine
designed to run them.
</p>
</article>
<article class="card">
<div class="card-icon"></div>
<h3>The browser becomes the control plane</h3>
<p>
Your device is replaceable. The sessions are not. Move between laptop, phone, tablet, and desktop
without moving the development environment.
</p>
</article>
<article class="card">
<div class="card-icon"></div>
<h3>Agents become persistent workers</h3>
<p>
Start work, leave, return later, review progress, and keep multiple streams running in parallel from one
stable environment.
</p>
</article>
</div>
<div class="doc-actions">
<a class="button" href="remote-first.html">Read the remote-first philosophy</a>
</div>
</div>
</section>
<section class="section">
<div class="container">
<div class="section-head">
<p class="eyebrow"><span class="pulse"></span> Why it feels different</p>
<h2>Not another tab. A persistent place for agent work.</h2>
</div>
<div class="cards">
<article class="card">
<div class="card-icon"></div>
<h3>Come back later</h3>
<p>
Active sessions live in a long-running daemon, not in your browser tab. Close the lid, reconnect from a
phone, and continue supervising the same work.
</p>
</article>
<article class="card">
<div class="card-icon"></div>
<h3>Use real workspaces</h3>
<p>
Add projects once, discover git worktrees automatically, and start agents where the code actually lives.
</p>
</article>
<article class="card">
<div class="card-icon" aria-hidden="true">
<svg
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
focusable="false"
>
<circle cx="12" cy="12" r="6.5"></circle>
<path d="M12 2.5v4M12 17.5v4M2.5 12h4M17.5 12h4"></path>
</svg>
</div>
<h3>Keep control</h3>
<p>
Watch transcript history, status, shell activity, context usage, and costs while redirecting the agent in
realtime.
</p>
</article>
</div>
</div>
</section>
<section id="quick-install" class="section">
<div class="container install-panel">
<div class="install-card">
<p class="eyebrow"><span class="pulse"></span> Quick install</p>
<h2>Run PI WEB as user services.</h2>
<ol>
<li>Install the package globally with npm.</li>
<li>Run the installer to create native per-user services.</li>
<li>Open the local URL, or tunnel it from a remote machine.</li>
</ol>
<div class="doc-actions">
<a class="button primary" href="install.html">Complete installation guide</a>
<a class="button" href="faq.html">Troubleshooting FAQ</a>
</div>
</div>
<div class="terminal quick-install">
<div class="copy-row">
<strong>User service install</strong>
<button class="copy-button" data-copy="#home-install">Copy</button>
</div>
<pre id="home-install"><code><span class="prompt">$</span> npm install -g @jmfederico/pi-web
<span class="prompt">$</span> pi-web install
<span class="prompt">$</span> pi-web doctor
<span class="prompt">$</span> pi-web version
<span class="comment"># Open http://127.0.0.1:8504</span></code></pre>
</div>
</div>
</section>
<section class="section compact">
<div class="container doc-grid">
<article class="doc-card">
<h3>WSL and containers?</h3>
<p>
Use <code>pi-web install</code> where a supported per-user service manager is available. WSL works with the
installer when systemd is enabled; otherwise use the manual run path.
</p>
<a href="faq.html#is-this-linux-only">Read compatibility notes →</a>
</article>
<article class="doc-card">
<h3>Local UI plugins?</h3>
<p>
Ask AI agents to add trusted local UI plugins from <code>~/.pi-web/plugins</code> without rebuilding or
restarting the session daemon.
</p>
<a href="plugins.html">Build a plugin →</a>
</article>
<article class="doc-card">
<h3>Node or tools not found?</h3>
<p>
Services run login shells. If tools work in your interactive terminal but not in PI WEB, fix PATH in your
login shell startup files and run the doctor command.
</p>
<a href="faq.html#tools-are-not-found">Fix PATH issues →</a>
</article>
</div>
</section>
</main>
<footer class="site-footer">
<div class="container footer-inner">
<span>PI WEB · remote control for persistent Pi Coding Agent sessions.</span>
<div class="footer-links">
<a href="remote-first.html">Remote-first</a>
<a href="machines.html">Fleet</a>
<a href="install.html">Install</a>
<a href="plugins.html">Plugins</a>
<a href="faq.html">FAQ</a>
<a href="https://www.npmjs.com/package/@jmfederico/pi-web">npm</a>
</div>
</div>
</footer>
<script src="site.js"></script>
</body>
</html>