@demigodmode/pi-web-agent
Pi package for reliable web access with explicit search, fetch, and headless boundaries.
Package details
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
0.6.0- Published
- May 4, 2026
- Downloads
- 732/mo · 200/wk
- Author
- demigodmode
- License
- AGPL-3.0-only
- Types
- extension
- Size
- 146.2 KB
- Dependencies
- 5 dependencies · 1 peer
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
@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 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
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 whether headless rendering can find a browser.
Headless rendering currently requires a detectable Chromium-family browser: Chrome, Chromium, Edge, or Brave. Firefox/Safari-only systems can still use search and plain HTTP reads, but browser-rendered fallback pages need a supported Chromium-family browser for now.
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 everywherepreview— slightly richer bounded viewverbose— 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 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 are DuckDuckGo search, plain HTTP fetch, and local browser headless fallback:
{
"backends": {
"search": { "provider": "duckduckgo" },
"fetch": { "provider": "http" },
"headless": { "provider": "local-browser" }
}
}
Self-hosted example for existing SearXNG/Firecrawl services:
{
"backends": {
"search": { "provider": "searxng", "baseUrl": "http://localhost:8080" },
"fetch": { "provider": "firecrawl", "baseUrl": "http://localhost:3002" },
"headless": { "provider": "local-browser" }
}
}
Prefer PI_WEB_AGENT_FIRECRAWL_API_KEY for Firecrawl auth instead of putting secrets in project config. /web-agent doctor validates required backend fields and checks configured self-hosted endpoints.
Full guide: https://demigodmode.github.io/pi-web-agent/self-hosted-backends
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.