diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 36 |
1 files changed, 28 insertions, 8 deletions
@@ -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 |
