The wrkr CLI

Database — wrkr db

Replaces Supabase, Neon, Pinecone.

Postgres 18 with pgvector is already running on your machine. wrkr db hands your app a ready connection URL — no signup, no keys, no provisioning wait.

wrkr db
# → prints a ready-to-use Postgres connection URL

Point your app at that URL and you have a database. Because pgvector is enabled, embeddings and RAG work out of the box — the same database is your vector store.

When to reach for it

Any time your app needs to store data, run queries, or do vector similarity search. It's a full Postgres, so anything Postgres does — transactions, JSON, full-text search, LISTEN/NOTIFY for live updates — it does.

Command reference

You'll usually just ask your agent; these are the exact commands it runs (and you can too).

wrkr db [--json] [--pooled]
wrkr db snapshot [--note <text>] [--json]
wrkr db snapshot list [--json]
wrkr db snapshot rm <snapshot-id> [--json]
wrkr db restore <snapshot-id> [--yes] [--json]
wrkr db restore --file <path> [--yes] [--json]
wrkr db export <path> [--format plain|custom] [--json]
wrkr db extension list [--json]
wrkr db extension add <name> [--json]
wrkr db extension remove <name> [--json]

Full flags and examples: wrkr db --help.

Connection URLs

  • Direct URL (default) — a normal long-lived connection. Use this for LISTEN/NOTIFY, transactions, and most app code.
  • Pooled URL (wrkr db --pooled) — a transaction-pooled connection, for when you have many short-lived or serverless-style connections and want to avoid exhausting Postgres connection slots.
wrkr db --pooled   # → a transaction-pooled connection URL

Snapshots and restore

wrkr db snapshot and wrkr db restore are per-database rollback — take a point-in-time snapshot before a risky migration, restore it if something goes wrong.

wrkr db snapshot --note "before adding the billing tables"
wrkr db snapshot list
wrkr db restore <snapshot-id> --yes

You can also restore from a dump file with wrkr db restore --file <path>.

Portable export

wrkr db export is a standard pg_dump. Your data is never trapped — take it with you whenever you want:

wrkr db export ./backup.sql                 # plain SQL
wrkr db export ./backup.dump --format custom # pg_dump custom format

Extensions

Postgres extensions from a curated allowlist can be added and removed:

wrkr db extension list
wrkr db extension add <name>
wrkr db extension remove <name>

The curated allowlist covers the common ones: vector (pgvector, already enabled), postgis (geospatial), pgcrypto, pg_trgm (fuzzy text matching), hstore, citext, unaccent, uuid-ossp, ltree, tablefunc, postgres_fdw, and file_fdw. Run wrkr db extension list for the live menu on your machine.

Limits

Be aware of what wrkr db is and isn't today:

  • It's one Postgres database with per-database snapshot/restore and a curated extension allowlist. There's no branching and no managed auto-scaling tier yet.
  • Extensions outside the curated allowlist aren't offered.
  • Durable queues belong in the database, not the cache (Redis here is memory-bounded with LRU eviction).

Your database lives within your machine's storage — your plan's 200 GB is the envelope, shared with everything else on the box. Postgres comfortably handles app-scale databases (tens of gigabytes) here, and wrkr status warns you when you're nearing your plan.