@xl0/pi-lovely-web
Pi package published to npm.
Package details
Install @xl0/pi-lovely-web from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@xl0/pi-lovely-web- Package
@xl0/pi-lovely-web- Version
0.1.4- Published
- May 22, 2026
- Downloads
- 446/mo · 237/wk
- Author
- xl0
- License
- MIT
- Types
- extension
- Size
- 46.8 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"extensions": [
"./extensions"
],
"image": "https://raw.githubusercontent.com/xl0/pi-lovely-web/master/assets/web_image.png"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-lovely-web
Lovely Pi extension for accessing the web.
Supply chain
This extension uses plain REST API - not the provider-specific packages. We add zero dependencies, minimizing the supply chain attack surface.
Install
pi install npm:@xl0/pi-lovely-web
Tools
web_search- Compact search results (list of results + markdown of the first result) The plain-text tool output looks likes this:
web_search "pi coding agent harness earendil" (web, limit 5, fetch first)
1. GitHub - earendil-works/pi: AI agent toolkit
https://github.com/earendil-works/pi
Markdown:
[markdown of the first hit if `fetch_first` is not false]
2. packages/coding-agent/README.md at main · earendil-works/pi
https://github.com/earendil-works/pi/blob/main/packages/coding-agent/README.md
The page describes the pi project from earendil-works, a minimal, extensible terminal coding harness designed to adapt to your workflow. Key points:
- Pi is an AI agent toolkit for coding: CLI, unified LLM API, TUI/Web UI libraries, Slack bot, and vLLM pods.
- Core idea: extendable with TypeScript E…
3. Pi Coding Agent
https://pi.dev/
Pi Coding Agent is a minimal, highly customizable terminal coding harness. It adapts to your workflow with extensible packages (extensions, skills, prompts, and themes) that you can bundle
and share via npm or git. Key ideas:
- Four modes: interactive TUI, print/JSON, RPC, and SDK (usable for embedd…
web_fetch- The single web page in markdown formatweb_image- The single image, returned as media content. Respects the Pi image resizing settings:

Configuration
Run /lovely-web in Pi to configure providers interactively:

The settings are stored in ~/.pi/agent/xl0-pi-lovely-web.json (global) or .pi/xl0-pi-lovely-web.json (project):
{
"webSearch": { "provider": "firecrawl" },
"webFetch": { "provider": "firecrawl" },
"webImage": { "enabled": true },
"webApiKeys": {
"firecrawl": "fc-...",
"exa": "...",
"tavily": "...",
"brave": "..."
}
}
API keys can also be set via environment variables: FIRECRAWL_API_KEY, EXA_API_KEY, TAVILY_API_KEY, BRAVE_API_KEY.
Search and fetch default to Firecrawl and can use different providers. Set provider:null
on webSearch or webFetch to remove that tool from Pi's active tool list. Set
webImage.enabled:false to disable web_image.
waitFor is provider-specific: Firecrawl supports it as an extra pre-capture delay; Exa and Tavily ignore it and web_fetch returns a warning if supplied.
web_image fetches a direct image URL without provider config/API keys and returns a short text note plus image content to vision-capable models, matching Pi's read image behavior. Supported MIME types: PNG, JPEG, WebP, GIF. Defaults to a 5 MB download cap and resizes through Pi's inline image helper before returning content.
Providers
| Provider | Search | Fetch | Auth |
|---|---|---|---|
| Firecrawl | ✓ | ✓ | Authorization: Bearer |
| Exa | ✓ | ✓ | x-api-key |
| Tavily | ✓ | ✓ | Authorization: Bearer |
| Brave Search | ✓ | - | X-Subscription-Token |