Releases: nicobailon/pi-web-access
Release list
v0.24.2
Pi Web Access 0.24.2 makes automatic search routing feel more natural in Codex sessions and fixes the Windows Gemini Web cookie path added in the last release. If you run Pi with a Codex model, auto search now tries Codex-backed OpenAI search before Exa. Other sessions keep the existing Exa-first behavior. Windows Chrome and Edge users should see fewer false cookie failures when using Gemini Web browser-cookie access.
Highlights
autosearch now uses Codex-backed OpenAI search when Pi is running a Codex model.- Non-Codex sessions still prefer Exa first, so zero-config search keeps its fast keyless path.
- Gemini Web browser-cookie access is more reliable on Windows Chrome and Edge profiles.
Full changelog
Highlights
autosearch now uses Codex-backed OpenAI search when Pi is running a Codex model.- Non-Codex sessions still prefer Exa first, so zero-config search keeps its fast keyless path.
- Gemini Web browser-cookie access is more reliable on Windows Chrome and Edge profiles.
Changed
- Prefer Codex-backed OpenAI search in
automode when the active Pi model isopenai-codex; otherwise prefer Exa before OpenAI.
Fixed
- Fixed Windows Gemini Web browser-cookie extraction when Chromium cookie expiry values are too large for JavaScript numbers or PowerShell DPAPI key unprotect needs encoded command transport. Thanks to @laixuanthoi for issue #290.
v0.24.1
Added
- Added
pdf.maxPagesto limit Datalab, Gemini, and local PDF extraction to the first N pages. Thanks to @jaudiger for issue #277. - Added optional
openaiSearchProvidersconfig to choose which Pi model providers fund OpenAIweb_search, in priority order. Thanks to @hank-warren for PR #276. - Added Windows Chrome and Edge browser-cookie support for Gemini Web. Thanks to @laixuanthoi for issue #286.
Fixed
- Hardened GitHub clone cache path handling. Thanks to @dsvi-b and @spikelab for the responsible disclosures.
- Updated the local
fetch_contentHTTP User-Agent for wider compatible content retrieval. Thanks to @_can1357 for the User-Agent observation. - Replaced inline RFC 2397
data:URIs in extracted page content with explicit bounded omission markers before content reaches tool results, the fetch cache, or session persistence. - Detached Linux curator browser launches so
xdg-opencannot blockweb_searchuntil the browser exits. Thanks to @nguyenphivn for issue #279. - Allowed configured Firecrawl API base URLs to use loopback addresses without opening loopback for submitted fetch targets. Thanks to @ackalker for issue #280.
v0.24.0
Pi Web Access 0.24.0 makes search and fetching more capable and less fragile. You can now use more providers, including Parallel Search MCP, Valyu, and Serper. Pages that hide their real article in Next.js or React Server Components payloads are recovered more reliably. Summary and query rewrite defaults now prefer newer fast models, and nested model calls follow Pi's model registry routing.
Highlights
- Added more provider choices, including Parallel Search MCP, Valyu, and Serper.
- Made
fetch_contentrecover useful article text from more Next.js and React Server Components pages. - Updated summary and query rewrite model defaults to newer fast models.
- Made nested summary and rewrite model calls follow Pi's model registry routing.
- Added more control over summary thinking levels and provider API base URLs.
Full changelog
Highlights
- Added more provider choices, including Parallel Search MCP, Valyu, and Serper.
- Made
fetch_contentrecover useful article text from more Next.js and React Server Components pages. - Updated summary and query rewrite model defaults to newer fast models.
- Made nested summary and rewrite model calls follow Pi's model registry routing.
- Added more control over summary thinking levels and provider API base URLs.
Added
- Added
summaryModelthinking-level suffix support. Thanks to @pkos98 for issue #264. - Added explicit-only Parallel Search MCP support for keyless search and opt-in hosted fetch. Thanks to @happytomatoe for #257.
- Added explicit-only Valyu and Serper search providers. Thanks to @mikhel01 for issues #259 and #260.
- Added configurable API base URLs for Brave, keyed Exa, and Tavily requests, with credential stripping across redirect origins. Thanks to @XWIlluDelu for #265.
Changed
- Refreshed default summary and query rewrite model preferences. Thanks to @hyein-cbio for #266.
Fixed
- Route nested model calls through Pi's model registry. Thanks to @rany2 for #263.
- Recover useful Next.js RSC content when Readability only extracts a loading shell, and report full, partial, or failed background content fetches accurately (#272, #273).
- Keep valid AnySearch results when the API omits or nulls result content. Thanks to @mikhel01 for #258.
v0.23.0
Added
- Added opt-in
authFetchprofiles for local browser-cookiefetch_contentrequests. Thanks Luka (@lmilojevicc) for issue #254. - Added Firecrawl as a
web_searchprovider using the existing Firecrawl configuration. Thanks Andrés Sanabria (@andy-spike) for issue #246. - Added macOS Brave profile support for opt-in Gemini Web browser-cookie access. Thanks Rajyavardhan Singh (
@imrajyavardhan12) for PR #248.
Changed
- Made local-video detection use an explicit result state in extraction code.
Fixed
v0.22.0
Added
- Added Bocha web search provider support. Thanks @jingyulong for PR #243.
- Added
maxInlineContentCharsto configure the direct content and stored-content slice limit, with a 200,000-character maximum. Thanks @be4zad for issue #244.
Fixed
v0.21.0
Added
- Added per-tool and per-command registration gates plus image and PDF extraction gates. Thanks @jaudiger for issue #234.
- Added
summaryGenerationDeadlineMsto configure the summary model deadline for curator and auto-summary workflows. Thanks @cataldoc for issue #237.
Fixed
- Store full fetched content in an external cache instead of embedding it in session JSONL entries, preventing large search-heavy sessions from ballooning on restore. Thanks Igor Samokhovets (
@samohovets) for issue #236. - Document
get_search_contentparameter constraints in the tool schema. Thanks@iwangjiefor PR #233.
v0.20.0
Added
- Added keyless DuckDuckGo HTML search as an explicit and routing provider. Thanks @lmilojevicc for issue #228.
- Added Datalab hosted PDF-to-Markdown extraction as an optional PDF provider. Thanks José Antonio Galiano Sandoval (
@jagaliano) for PR #226.
Changed
- Tightened Datalab JSON response validation and Gemini Web fetch initialization internals.
Fixed
- Fix Gemini Web "fetch failed" (
UND_ERR_HEADERS_OVERFLOW) when running inside a host agent whose global undici dispatcher uses HTTP/1.1 with the default 16 KiBmaxHeaderSize: Google's/apppage exceeds that budget. Gemini Web requests now use a dedicated undici agent with a 4 MiB header budget. Thanks José Antonio Galiano Sandoval (@jagaliano) for PR #230. - Preserve collapsed
web_searchresult background padding. Thanks@SheffeyGfor PR #224.
v0.19.0
Added
- Added Jina Search as a normal configured
web_searchprovider withjinaApiKey/JINA_API_KEY, explicit/auto/routing/all-provider support, domain and recency constraints, optional inline page content, and Curator integration. Thanks Orbio Agent (@Gabrielgvl) for PR #214.
Fixed
- Added a tracked npm lockfile for reproducible contributor installs, and updated model-registry auth header typing for current Pi peer packages. Thanks
@dougEfreshfor PR #218. - Keep manual
/websearchcurator pages in sync if the live SSE stream disconnects or misses events while searches are still running. Thanks@Whisperfallfor issue #215. - Updated Kagi Search and Extract requests for the current v1 API contracts. Thanks
@mattgafffor PR #217. - Recognize
:maxthinking suffixes when matching scoped summary models. Thanks@justin8tyfor PR #219. - Route local video Gemini upload, polling, and deletion requests through configured
geminiBaseUrl/GOOGLE_GEMINI_BASE_URLrelays. Thanks Mr. (@Liemo99) for PR #213. - Classify xAI
403spending-limit and quota-exhaustion responses as quota errors so configured search routing can fall back, while preserving ordinary403responses as authentication errors. Thanks@0xmarcinzfor PR #212.
v0.18.0
Added
fetch_contentcan now return the original text response withmode: "raw", which is useful for JSON APIs, error pages, and debugging what a server actually sent.fetch_contentcan now answer a question about a single fetched page withmode: "answer", while still saving the original page text so you can inspect it later.- Direct image links now work for PNG, JPEG, WebP, and GIF files. The tool downloads them safely, resizes large images, and returns an inline image result.
get_search_contentnow acceptsfindTextandfindMode, so you can search saved content for the passage you need instead of paging through a long page by hand. Inspired by@xl0'spi-lovely-webproject.- Added optional
searxngHeadersso self-hosted SearXNG requests can carry reverse-proxy or Zero Trust auth headers. Thanks@preinpostfor PR #202. - Added explicit-only xAI/Grok search with
xaiApiKey/XAI_API_KEY, Pi model-registry auth, and optionalxaiSearchModel. Thanks@join3rfor PR #196. - Added explicit-only Bright Data SERP search with
brightdataApiKey/BRIGHTDATA_API_KEYcredentials and a requiredbrightdataSerpZone/BRIGHTDATA_SERP_ZONEzone of Bright Data typeserp. Bright Data is never chosen byautoand never participates inprovider: "all". Thanks@mo-rootfor PR #198. - Added Bright Data Web Unlocker as a paid
fetch_contentextraction fallback withbrightdataApiKey/BRIGHTDATA_API_KEYcredentials and a requiredbrightdataUnlockerZone/BRIGHTDATA_UNLOCKER_ZONEzone of Bright Data typeunblocker. Thanks@mo-rootfor PR #199. - Added Kagi Search API support with
kagiApiKey/KAGI_API_KEY, plus Kagi Extract as afetch_contentfallback. Thanks@imlonghaofor issue #197. - Added Ollama Cloud Web Search support with
ollamaApiKey/OLLAMA_API_KEY, plus Ollama Web Fetch as afetch_contentfallback. Thanks@bradley-holtfor issue #203. - Added explicit-only SerpBase Google SERP search with
serpbaseApiKey/SERPBASE_API_KEY, domain filters assite:clauses, and recency mapped to Googletbs. Thanks@gefsikatsineloufor issue #195.
Changed
- Long
fetch_contentresults are easier to continue reading. The first response now stops on cleaner line boundaries and tells you the character, byte, and line totals plus the exact offset to request next.
Fixed
- Fixed the
fetch_contentcall header showingfetch (no URL)when Pi suppliedurltogether with an emptyurlsarray. Thanks@Vergil824for issue #192. - Resolve preferred summary and query-rewrite models through routed provider registrations such as OpenRouter, preserving the registered provider and model ID instead of falling back when the native provider is unavailable. Thanks
@robzolkosfor issue #200 and PR #201. - GitHub clone subprocesses now disable interactive credential prompts and terminate their process trees on timeout or cancellation, preventing orphaned Git helpers from capturing terminal input. Thanks
@MDGChamomilefor PR #193.
v0.17.1
Fixed
- Removed the unsupported JSON Schema
uniqueItemskeyword from provider-array tool schemas so Gemini-compatible tool validators can register pi-web-access tools. Thanks@akmaldirafor PR #191.