summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-08-04 12:56:25 -0600
committert <t@tjp.lol>2026-08-04 13:42:28 -0600
commitab6c0d1a9605be2e72de5095ff73bc4c005206aa (patch)
treef77cb14102240ecfbacdde43dd81c9577b52ed41 /README.md
parent56c82d2bd38ba978313d18e9b5f6dc12138ce788 (diff)
Replace web tools with Lightpanda-backed implementation
Use a persistent MCP subprocess for rendered Markdown fetches and Exa search. Support keyless Exa MCP search with optional authenticated REST access.
Diffstat (limited to 'README.md')
-rw-r--r--README.md36
1 files changed, 28 insertions, 8 deletions
diff --git a/README.md b/README.md
index ef4a1db..a0539ce 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,35 @@
# panto-web
The `web` extension for [pantograph](https://github.com/travisp/pantograph)'s
-`panto` CLI: keyless web access packaged as a luarocks rock.
+`panto` CLI, backed by a persistent [Lightpanda](https://lightpanda.io/) MCP
+subprocess.
## Tools
-- **`web.fetch`** — fetches a public HTTP(S) URL with `curl`, follows up to
- five public redirects, and converts HTML to compact readable text. Blocked
- and JavaScript-only pages get one keyless retry through Jina Reader.
-- **`web.search`** — searches through Exa's public MCP endpoint without
- configuration or an API key, returning compact titles, URLs, and excerpts
- for `web.fetch` to read.
+- **`web.fetch`** — renders a URL in Lightpanda and returns its DOM-derived
+ CommonMark, including JavaScript-rendered content.
+- **`web.search`** — searches through Exa's keyless MCP HTTP endpoint by
+ default. If `EXA_API_KEY` is set, it uses Exa's REST Search API instead.
+
+Tool output is capped at 100 KB.
+
+## Requirements
+
+Install `lightpanda` and ensure it is on `PATH`. The extension does not install
+or fall back to another browser. See [Lightpanda installation](https://lightpanda.io/docs/run-locally/installation/one-liner),
+or install the nightly with Lightpanda's Homebrew tap:
+
+```sh
+brew tap lightpanda-io/browser
+brew install lightpanda
+```
+
+An `EXA_API_KEY` is optional. When set, `web.search` uses the authenticated
+Exa REST API instead of the rate-limited keyless endpoint:
+
+```sh
+export EXA_API_KEY=...
+```
## Install
@@ -33,7 +52,8 @@ The extension can be disabled with the usual policy globs, e.g.
## Development
-Run the self-check (needs `panto` for its embedded Lua + luv):
+The self-check requires panto's embedded Lua and `luv`, but does not start
+Lightpanda or access the network:
```sh
panto lua _selfcheck.lua