@demigodmode/pi-web-agent

Pi package for reliable web access with explicit search, fetch, and headless boundaries.

Packages

Package details

extension

Install @demigodmode/pi-web-agent from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@demigodmode/pi-web-agent
Package
@demigodmode/pi-web-agent
Version
1.3.0
Published
Jun 4, 2026
Downloads
1,718/mo · 504/wk
Author
demigodmode
License
AGPL-3.0-only
Types
extension
Size
192.3 KB
Dependencies
5 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./dist/extension.js"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-web-agent

CI npm version Docs

@demigodmode/pi-web-agent is a Pi package for web access.

Most agent web tools blur search, fetch, browser rendering, and research into one vague thing. pi-web-agent exposes one public research tool, web_explore, and keeps search/fetch/headless work inside that bounded workflow.

The point is keeping the model-facing boundary simple: ask web_explore to research a question, and it handles direct links, discovery, HTTP reads, targeted browser rendering, source ranking, and caveats internally.

That sounds obvious, but a lot of agent tooling gets fuzzy right there. This package is meant to be stricter about what it actually did and more willing to say when a read was not good enough to trust.

Install

Compatibility notice: current pi-web-agent requires Pi 0.74+ because Pi packages moved to the @earendil-works/* scope. Update Pi before updating this package. If you are on an older Pi version, stay on @demigodmode/pi-web-agent@0.6.x until Pi is updated.

pi install npm:@demigodmode/pi-web-agent

After installing, reload or restart Pi. Run /web-agent for the action menu, or /web-agent doctor to check whether the package loaded cleanly and which web backends are configured.

Headless rendering first tries a detectable Chromium-family browser: Chrome, Chromium, Edge, or Brave. If none is found, it falls back to Playwright-managed Chromium and still launches headless. Firefox/Safari-only systems can still use search and plain HTTP reads; browser-rendered fallback uses Chromium.

Later on, update installed packages with:

pi update

Docs

Docs site:

Work on the docs locally:

npm run docs:dev

Build the docs:

npm run docs:build

Presentation modes

pi-web-agent renders web tool output in one visible mode at a time:

  • compact — short summary, default everywhere
  • preview — slightly richer bounded view
  • verbose — fuller bounded view

See the v0.3.0 release notes for a before/after of the transcript cleanup:

Settings

Primary UI:

/web-agent settings

Helper commands:

/web-agent doctor
/web-agent show
/web-agent changelog
/web-agent reset project
/web-agent reset global
/web-agent mode preview
/web-agent mode web_explore verbose
/web-agent mode web_explore inherit

Config files:

Global:  ~/.pi/agent/extensions/pi-web-agent/config.json
Project: .pi/extensions/pi-web-agent/config.json

Precedence:

  • built-in defaults
  • global config
  • project config

Project config overrides global config.

Example:

{
  "presentation": {
    "defaultMode": "compact",
    "tools": {
      "web_explore": { "mode": "verbose" }
    }
  }
}

Backend config is also supported. Defaults remain DuckDuckGo search, plain HTTP fetch, and local-browser headless fallback with managed Chromium fallback configured.

Backend settings can be changed from:

/web-agent settings

Choose Backends to edit search/fetch providers, fallback behavior, and SearXNG or Firecrawl base URLs interactively. Firecrawl API keys should stay in environment variables rather than being written into config files.

If you already run SearXNG or Firecrawl, see the self-hosted backend guide:

Local development

npm install
npm test
npm run lint
npm run build

For local Pi work, this repo includes .pi/extensions/pi-web-agent.ts.

If Pi is already running, use /reload after changes.

License

AGPL-3.0-only. See LICENSE.