TL;DR
100x integrated PGLite — a WebAssembly build of PostgreSQL — into its autonomous browser agent to provide a local relational store and long-term memory. The setup brings SQL features (fuzzy matching, hierarchical queries, window functions) into the tab, trading full durability for much faster local writes and working-set performance.
What happened
100x Bot has been updated to use PGLite, a Postgres compiled to WebAssembly, as the agent's long-term memory inside the browser. The integration lets the agent scrape data directly into relational tables without leaving the current tab and run native SQL operations instead of bespoke JavaScript logic. That unlocks capabilities such as fuzzy joins (via the pg_trgm extension) for reconciling messy names, tree-structure queries (via the ltree extension) for preserving DOM hierarchies, and analytical window functions for time-series and moving-average calculations. PGLite runs in a browser-friendly single-user mode and maps its filesystem to IndexedDB so data persists across sessions. The team benchmarked performance: JavaScript implementations were faster up to roughly 10,000 rows, while PGLite pulled ahead as datasets scaled toward 100,000 rows. To keep the agent responsive in tab-constrained environments, they accept relaxed durability to avoid synchronous fsyncs to IndexedDB.
Why it matters
- Gives browser agents a structured, queryable working memory instead of transient JSON blobs.
- Shifts complex data reconciliation and analytics from fragile JavaScript code to declarative SQL.
- Enables native fuzzy matching and hierarchical queries in the tab, simplifying scraper workflows.
- Demonstrates a trade-off between durability and interactive performance for client-side databases.
Key facts
- 100x Bot now integrates PGLite (Postgres compiled to WebAssembly) as its long-term memory.
- Agents can scrape into relational tables and run SQL instead of exporting CSVs and using spreadsheets.
- The pg_trgm extension is used to perform fuzzy joins for matching similar text across sources.
- The ltree extension preserves and queries hierarchical structures extracted from the DOM.
- PGLite runs Postgres in a browser-friendly single-user bootstrap mode because browsers lack fork support.
- PGLite maps Postgres' filesystem to IndexedDB via a virtual file system to persist data across sessions.
- Browser storage quotas differ: Chrome is described as generous (~60–80% of disk), Firefox uses a group limit (often ~2GB soft limit), and Safari has restrictive eviction policies.
- Benchmarks showed JavaScript was faster up to ~10k rows; PGLite performed better as datasets scaled toward ~100k rows.
- The team accepts relaxed durability (avoiding synchronous fsync per row) to achieve much higher write throughput.
- A Chrome extension is available for trying the integrated agent; the project was written about by Shardul Lavekar.
What to watch next
- How PGLite-backed agents behave under Safari's stricter eviction policies and whether that affects persistence of scraped data.
- Real-world adoption among web-scraping and browser-automation users who need larger local working sets.
- not confirmed in the source
Quick glossary
- PGLite: A WebAssembly build of PostgreSQL designed to run inside a browser tab as a single-process database engine.
- WebAssembly (WASM): A binary instruction format that enables near-native performance for compiled languages running in web browsers.
- IndexedDB: A browser-based key-value storage API used for persisting structured data locally across sessions.
- pg_trgm: A PostgreSQL extension that supports trigram-based similarity measures and fuzzy text matching.
- Window functions: SQL functions that perform calculations across sets of rows related to the current row, useful for running moving averages and rankings.
Reader FAQ
Does the agent persist data across browser sessions?
Yes. PGLite maps its filesystem to IndexedDB, which allows stored data to persist across user sessions.
Is this meant to replace server-side data warehouses?
No. The project is described as a structured working memory for agents, not a replacement for large-scale warehouses like Snowflake.
Is data fully durable on every write?
No. The team uses relaxed durability to avoid synchronous fsyncs to IndexedDB and accepts the risk of losing the most recent milliseconds of data in a crash for much higher write performance.
Does PGLite run a normal multi-process Postgres server in the browser?
No. It runs Postgres in a single-user bootstrap mode because browser environments do not support the OS-level forking model Postgres normally uses.
We Gave Our Browser Agent a 3MB Data Warehouse CATEGORY: #Technical PUBLISHED ON: Jan 12, 2026 We Gave Our Browser Agent a 3MB Data Warehouse 100x bot is an autonomous…
Sources
Related posts
- Control Claude Code permissions with cloud decision-table UIs
- Control Claude Code permissions with cloud-hosted decision tables
- How I Learned Everything I Know About Programming Without LLMs