npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@isr4el-silv4/pi-web-ui

v1.0.2

Published

Chrome side-panel UI and local bridge extension for Pi.

Downloads

398

Readme

pi-web-ui

A local bridge that gives Pi Coding Agent direct browser control — so you can work in your terminal and your browser without ever breaking context.

npm version License


💡 Philosophy

Your session shouldn't be confined to one tool. When you're debugging a frontend issue, you switch between your terminal (where Pi lives) and your browser (where the problem is). Every switch costs context. Every copy-paste loses nuance.

pi-web-ui eliminates that friction by turning your Chrome browser into a first-class tool for Pi. The bridge runs entirely on your machine — no data leaves to a third-party server — and enforces permissions so sensitive operations (cookie access, script evaluation, raw CDP commands) require your explicit approval.

Core principles:

  • Local-first privacy — The bridge is a local WebSocket/HTTP server on 127.0.0.1. All communication stays on your machine.
  • Seamless terminal ↔ browser sessions — Start a session from Pi's terminal, continue it in the Chrome side panel, resume it hours later. One conversation, multiple surfaces.
  • Permission-aware by default — Cookie and storage access are opt-in. Script evaluation and raw CDP commands require confirmation. All sensitive actions are audit-logged.
  • Browser as a tool, not a toy — Pi gets structured access to page content, network requests, console logs, screenshots, and the full Chrome DevTools Protocol.

🔌 What It Does

pi-web-ui is the server-side bridge that connects three pieces:

| Component | Role | |---|---| | Pi Coding Agent | Sends prompts, receives responses, requests browser tools | | pi-web-ui (this package) | Local bridge — manages sessions, enforces permissions, relays messages | | Chrome Extension | Side panel UI + executes browser operations via Chrome DevTools Protocol |

┌───────────────────────────┐         WebSocket          ┌──────────────────────┐
│   Chrome Extension        │ ◄──── ws://127.0.0.1 ───►  │   Local Bridge       │
│   (side panel UI)         │         (port 43117)       │  (pi-web-ui)         │
│                           │                            │                      │
│  • Debugger client        │   browser_tool_request     │  • Pi SDK session    │
│  • Network capture        │ ◄───────────────────────── │  • Tool executor     │
│  • Console capture        │   browser_tool_response    │  • Permission gates  │
│  • Session management     │                            │  • Session registry  │
└───────────────────────────┘                            └──────────────────────┘
         ▲                                                ▲
         │                                                │
   Chrome tabs ◄──────── Chrome DevTools Protocol ────── Pi Coding Agent

📋 Prerequisites


📦 Installation

npm install pi-web-ui

Chrome Extension Setup

From the Chrome Web Store: Coming soon — link TBD.

Manual (development): Until the extension is published, load it from source:

  1. Clone the Chrome extension repository.
  2. Open chrome://extensions/.
  3. Enable Developer mode (top-right corner).
  4. Click Load unpacked and select the extension directory.
  5. Click the Pi Web UI extension icon (or right-click → "Add to toolbar") to pin it.

🚀 Quick Start

1. Start the Bridge

From a Pi terminal session, run:

/pi-web-ui start

This spawns the local bridge on port 43117 and opens Chrome with the side panel.

2. Open the Side Panel

Click the Pi Web UI extension icon in Chrome. The side panel should show Bridge online when connected.

3. Pick Your Working Directory

Click Browse… in the side panel header to select your project directory. This sets the cwd for the Pi session and determines where session files are saved.

4. Start Working

Send a prompt from either:

  • Pi's terminal — type your message as usual.
  • The Chrome side panel — use the chat input in the extension.

Pi responds in both places, and the conversation stays synchronized.


⌨️ Usage

CLI Commands

The pi-web-ui binary provides lifecycle management:

| Command | Description | Example | |---|---|---| | start | Start the bridge and open Chrome | /pi-web-ui start | | stop | Stop the running bridge | /pi-web-ui stop | | status | Check if the bridge is running | /pi-web-ui status | | open | Open Chrome with the side panel (bridge must be running) | /pi-web-ui open |


🛠️ Browser Tools

Pi gains access to these browser operations on your active tabs:

Page Inspection

| Tool | Description | |---|---| | browser_get_page_text | Get the visible text content of the current page | | browser_get_page_html | Get the full HTML of the current page | | browser_get_selection | Get the currently selected/highlighted text | | browser_capture_screenshot | Capture a screenshot of the current tab |

Example — Ask Pi to inspect a page:

"What does the current page say about the error message?"

Pi calls browser_get_page_text, reads the content, and responds with an analysis.

Tab Management

| Tool | Description | |---|---| | browser_list_tabs | List all open browser tabs | | browser_get_current_tab | Get info about the active tab (including debugger attachment status) |

Example — Switch context:

"List my open tabs and summarize what each one is about."

Console & Network Debugging

| Tool | Description | |---|---| | browser_get_console_logs | Get buffered console logs from the browser | | browser_clear_console_log_buffer | Clear the console log buffer | | browser_start_network_capture | Start capturing network requests | | browser_stop_network_capture | Stop network capture | | browser_get_network_requests | Get all captured network requests | | browser_get_network_request | Get details for a specific request by ID | | browser_get_network_response_body | Get the response body of a specific request |

Example — Debug a failing API call:

"Check the network requests for any failures and show me the error response."

Pi attaches the debugger, captures network traffic, filters for errors, and shows you the response — all without you touching DevTools.

Example — Console errors:

"Are there any errors in the browser console?"

Debugger & Script Evaluation

| Tool | Description | Requires Confirmation | |---|---|---| | browser_attach_debugger | Attach Chrome debugger to a tab | No | | browser_detach_debugger | Detach debugger from a tab | No | | browser_get_attached_tabs | List tabs with debugger attached | No | | browser_evaluate_script | Execute JavaScript in the page context | Yes | | browser_send_cdp_command | Send raw Chrome DevTools Protocol commands | Yes |

Example — Evaluate a selector:

"Run document.querySelectorAll('.card').length in the current tab and tell me how many cards there are."

A confirmation prompt appears in the side panel. Approve it, and Pi executes the script and reports the result.

Cookies & Storage (Opt-In)

| Tool | Description | Permission | |---|---|---| | browser_get_cookies | Get cookies for the current page or domain | Header toggle | | browser_get_local_storage | Get localStorage entries | Header toggle | | browser_get_session_storage | Get sessionStorage entries | Header toggle |

Enable these via the Cookie access and Storage access checkboxes in the side panel header. They are disabled by default.


🎨 Frontend Development Workflows

Here are common scenarios where pi-web-ui saves time:

Debug a Visual Bug

  1. Open the page with the bug in Chrome.
  2. Ask Pi: "Take a screenshot of the current tab and tell me what's wrong with the layout."
  3. Pi captures the screenshot, analyzes it, and suggests fixes.
  4. Apply fixes in your editor, refresh, and ask Pi to verify.

Investigate a Network Error

  1. Reproduce the error in your browser.
  2. Ask Pi: "Check the network requests for any failures and show me the error response."
  3. Pi reads the captured requests, identifies the failing call, and shows you the response body and status code.

Audit Console Output

  1. Ask Pi: "Read the browser console — are there any warnings or errors?"
  2. Pi fetches console logs, filters by severity, and summarizes findings.

Cross-Reference Page State with Code

  1. Ask Pi: "Get the HTML of the current page and compare it with src/App.tsx — are there any mismatches?"
  2. Pi reads the live DOM, reads your source file, and highlights discrepancies.

📂 Session Management

Sessions are tied to your working directory and persisted as JSONL files.

  • New session — Click + New Session in the side panel, or run /pi-web-ui start in a new directory.
  • Resume session — Pick a previous session from the dropdown to continue where you left off.
  • Switch surfaces — Start a conversation in Pi's terminal, continue it in the Chrome side panel. History is synchronized.
  • Session history — When resuming, the full conversation (including tool calls and results) is loaded and displayed.

🔒 Permissions & Safety

| Operation | Default | Control | |---|---|---| | Page inspection (text, HTML, screenshot) | Allowed | Always | | Tab management | Allowed | Always | | Console logs | Allowed | Always | | Network capture | Allowed | Always | | Cookie access | Disabled | Header toggle | | Storage access | Disabled | Header toggle | | Script evaluation | Requires confirmation | Per-request prompt | | Raw CDP commands | Requires confirmation | Per-request prompt |

All confirmed sensitive actions are recorded in an audit log on the bridge side, so you can review what was executed and when.


📄 License

Apache 2.0 — see LICENSE for details.