@hheei/pi-web-access

Web search, URL fetching, GitHub repo extraction, and content tools for Pi.

Packages

Package details

extension

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

$ pi install npm:@hheei/pi-web-access
Package
@hheei/pi-web-access
Version
0.2.4
Published
Oct 30, 2026
Downloads
474/mo · 474/wk
Author
hheei
License
MIT
Types
extension
Size
1.3 MB
Dependencies
9 dependencies · 5 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

@hheei/pi-web-access

Web search, URL fetching, GitHub repo extraction, and content tools for Pi. Install with pi install npm:@hheei/pi-web-access.

Tools

Registers four web tools plus a web_enable loader, each renamable through toolNames in the config section:

Default name Purpose
web_search Source-linked results or provider answers; queries runs 2-4 angles concurrently. Full results are stored for get_search_content.
fetch_content Fetch one URL and return extracted content (HTML to markdown, PDF, GitHub repo/issue/PR, video frames).
get_search_content Retrieve the full stored results of an earlier search by responseId.
source_check Gather bounded passage-level citations for a claim, for manual review.
web_enable Activate the configured web tools on the next model request; it never searches or fetches. Registered unless discovery is already handled elsewhere (toolExposure: "deferred", toolActivation of eager/deferred/disabled, or enableWebLoader: false).

toolActivation defaults to auto and infers toolExposure: "direct", so the web tools register with exposure: "direct" and defaultActive: true. In a fresh session on a model that supports mid-conversation tool additions, they still start inactive with only web_enable active; resumed transcripts, sessions that predate transcript tool declarations, and models without that support keep them eagerly active. Set toolExposure: "deferred" to register them with exposure: "deferred" and defaultActive: false so tool_search discovers them on demand; deferred cannot be combined with toolActivation: "eager".

Commands: /websearch (search curator), /curator (toggle or configure the curator workflow), /search (browse stored results), /google-account (active Gemini Web account).

Configuration

Config lives in the webSearch section of <agentDir>/ext_settings.json, with a project override in <cwd>/.pi/ext_settings.json deep-merged over the global section. With @hheei/pi-settings installed, the same section appears as the "Web Access" page in /ext-settings.

Keys: searchProvider (single provider, list, or auto when none is configured), toolNames, toolActivation, toolExposure, enableWebLoader, workflow, summaryModel, curatorRemote, autoOpenBrowser, shortcuts, tools.<name>.enabled (gates registration of webSearch, sourceCheck, fetchContent, getSearchContent), webSearch.enabled (turns off web_search and source_check), webSearch.allowedProviders, commands.<name>.enabled, fetch.defaultMode / fetch.allowedModes, fetch.answerProvider / fetch.answerModel (defaults for mode: "answer", overridable per call through fetch_content's answerModel), ssrf.allowRanges / ssrf.trustEnvProxy, and authFetch profiles for credentialed hosts. Provider keys come from the same section and may reference $ENV_NAME or a command source. Unknown or malformed values fail loudly with the offending key name rather than falling back silently.

Browser-cookie extraction (chrome-cookies) and Gemini Web reuse an existing browser session; PDF and video extraction need the external binaries their modes document (yt-dlp, ffmpeg).

Compatibility

Requires Pi host >=1.3.0. No other HEPI extension is required: settings and rendering primitives come from @hheei/pi-ext-core, and richer tool views appear only when @hheei/pi-ext-ui is loaded. Native tool text stays complete without it.