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.