skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
oakoss/agent-skills140 installs

pglite

PGlite embeds PostgreSQL 17.4 in the browser and Node.js via WASM, under 3MB gzipped. Covers storage backends, queries, transactions, extensions (pgvector, pg_trgm, full-text search), live queries, React integration, multi-tab worker architecture, and Electric sync. Use when setting up PGlite, choosing storage backends, writing queries or transactions, configuring extensions, implementing live queries, integrating with React, managing multi-tab workers, or syncing with Electric.

How do I install this agent skill?

npx skills add https://github.com/oakoss/agent-skills --skill pglite
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides a comprehensive guide for integrating PGlite, a WASM-based PostgreSQL engine. It highlights essential security practices such as using parameterized queries to prevent SQL injection. The skill also describes mechanisms for database synchronization and file-based backups, which involve standard processing of external data and present a manageable attack surface for indirect prompt injection.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerwarn

    8/8 files flagged

What does this agent skill do?

PGlite

Overview

PGlite is a lightweight WASM build of PostgreSQL 17.4 that runs directly in the browser, Node.js, and Bun with no external dependencies. It provides a full Postgres query engine with extensions, transactions, COPY support, and listen/notify in under 3MB gzipped.

When to use: Local-first apps needing a real SQL engine, browser-based analytics, offline-capable PWAs, embedded Postgres for testing, prototyping without a server.

When NOT to use: High-concurrency server workloads (use native Postgres), apps requiring full Postgres replication, Safari OPFS storage (not supported), write-heavy multi-tab scenarios without leader election.

Quick Reference

PatternAPIKey Points
Create instancePGlite.create(dataDir?, options?)Awaits ready internally
In-memory DBPGlite.create()Default, ephemeral storage
IndexedDB storagePGlite.create('idb://dbname')Persists in browser
OPFS storagePGlite.create('opfs-ahp://dbname')Worker only, no Safari
Parameterized querydb.query<T>(sql, params)Returns QueryResult<T>
Tagged templatedb.sql\SELECT ...``Auto-parameterized
Multi-statement execdb.exec(sqlString)No params, returns void
Transactiondb.transaction(async (tx) => {})Full ACID, use tx.query
Load extensionextensions: { vector } in createLoaded at construction
Live querydb.live.query(sql, params, cb)Re-runs on data change
Incremental querydb.live.incrementalQuery(sql, params, key, cb)Diffs large result sets
Live changesdb.live.changes(sql, params, key, cb)Raw insert/update/delete ops
React hookuseLiveQuery(sql, params)Returns { rows } reactively
Multi-tab workerPGliteWorker + leader electionSingle writer, multi reader
Electric syncsyncShapeToTable(db, shape, table)One-way read-only sync
Dump datadb.dumpDataDir('gzip')Returns File blob
Load dataPGlite.create({ loadDataDir: blob })Restore from dump
Listen/notifydb.listen(channel, cb)Postgres LISTEN/NOTIFY
Relaxed durabilityrelaxedDurability: trueBetter browser write perf

Common Mistakes

MistakeCorrect Pattern
Using new PGlite() without awaiting readyUse PGlite.create() which awaits internally
Using OPFS in main threadOPFS-AHP requires a Web Worker context
Using OPFS on SafariSafari lacks required OPFS APIs; use idb://
Querying outside transaction callbackPass tx from transaction callback, use tx.query()
Forgetting extension in create optionsExtensions must be declared at PGlite.create({ extensions })
Multiple tabs writing without leader electionUse PGliteWorker with leader election for multi-tab
Expecting Electric sync to be bidirectionalElectric sync is read-only, one-way from server
Using live.query() for large datasetsUse live.incrementalQuery() for large result sets
Not providing key to incremental queryIncremental and changes queries require a unique key column
Importing extensions without bundler supportExtensions are WASM; ensure bundler handles .wasm assets

Delegation

If the electricsql skill is available, delegate Electric sync patterns, Shape configuration, and real-time replication to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s electricsql -a claude-code -y

If the drizzle-orm skill is available, delegate Drizzle + PGlite driver setup and schema management to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s drizzle-orm -a claude-code -y

If the local-first skill is available, delegate local-first architecture decisions and sync engine selection to it. Otherwise, recommend: pnpm dlx skills add oakoss/agent-skills -s local-first -a claude-code -y

References

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/oakoss/agent-skills/pglite">View pglite on skillZs</a>