The PostgreSQL Client for Mac That Finds Your Missing Indexes

Browse, edit and query Postgres in a native Mac app, see which indexes your real workload is missing, and let Claude Code, Codex or Cursor work on the database without a free hand on production.

TableStudio is a native Mac client for PostgreSQL. It reads what your database actually spends its time on and turns that into fixes. It watches for the problems that take Postgres down, like wraparound, bloat and stuck replication slots. And it lets coding agents like Claude Code, Codex and Cursor work on it under rules TableStudio enforces itself.

Find the indexes your workload is missing

Most index advice is a guess. TableStudio's comes from pg_stat_statements. Query Insights ranks the statements Postgres spends its time on, explains what's wrong with each, and proposes a fix.

The Index Advisor then looks across the whole workload for the fewest indexes that cover the most database time. It builds each one as a hypothetical index and checks that the planner would actually use it before suggesting it. It works the other way too: hide an index from the planner to see which queries would slow down before you drop it.

What TableStudio does for Postgres

From a quick look at a table to vacuum trouble at 2 a.m.

Claude Code and Cursor, kept in check

  • Claude Code, Codex, Cursor and OpenCode reach your connections by name, with no password in a config file.
  • Reads run in a read-only transaction. pg_terminate_backend, dblink and server file access are refused.
  • A data change on a remote database must be dry-run first, and rolls back if the real row count differs.
  • Production changes are staged for review and applied with Touch ID; every AI change can be undone, cascades included.
  • The plugin stops psql, Prisma, Drizzle and Rails from writing to production from the terminal.
  • Set a database to Structure only and agents see the schema, never a row value.

Every Postgres you run

  • Paste a connection string or URL into Host and every field fills itself.
  • Supabase, Neon, Amazon RDS, Railway, Render, Vercel, Prisma Postgres, DigitalOcean, Fly.io, Aiven and Azure, directly or over SSH.
  • Import your RDS instances, or the databases in your projects' .env and docker-compose files.
  • The servers Homebrew and Postgres.app set up are picked up with their data untouched.

Health checks that know Postgres

  • Transaction ID and multixact age climbing toward wraparound.
  • Autovacuum off, starved of workers, or unable to remove dead rows.
  • Abandoned prepared transactions, and inactive replication slots holding WAL.
  • Replica lag, WAL archiving that's off or failing, data checksum failures and fsync off.
  • work_mem × max_connections larger than the machine's memory.

The whole schema, not just tables

  • Create schemas, enums, domains, materialized views and triggers without writing DDL.
  • Browse row-level security policies, roles, functions and procedures.
  • Schema checks catch json that should be jsonb, timestamps without a time zone, the locale-dependent money type, foreign keys without an index, invalid indexes and sequences close to running out.
  • Write table and column comments with AI, so agents and teammates understand the schema.

Rows and results

  • Enum columns get a dropdown of their type's values; jsonb is shown readably.
  • Hover a foreign key to preview the row it points to.
  • Stage edits across rows and apply them in one transaction.
  • Import CSV or TSV. Export to CSV, TSV, JSON, SQL, Markdown or Excel.
  • Fill a table with realistic fake rows that respect its foreign keys.

SQL and plans

  • Autocomplete that knows your schemas, tables and columns.
  • EXPLAIN ANALYZE drawn as a tree, with the slow node obvious.
  • Ask in plain English for Postgres SQL, or have AI fix the error a query just threw.
  • Open the connection in psql in Terminal, or copy the command line without the password.

A dashboard that fits your stack

  • Packs for connections and locks, top queries, bloat and vacuum, cache and I/O, index health, replication and storage.
  • Packs that recognize your schema: better-auth, Auth.js, Supabase Auth, Django, Rails and Devise, Stripe, pg-boss, Graphile Worker, Oban and pgvector.
  • Maintenance at a glance: tables due a VACUUM ANALYZE and indexes nothing reads.

Backups, copies and moves

  • pg_dump and pg_restore to your Mac or any S3 bucket, using the client tools you already have.
  • Restore points before a risky change, and throwaway sandbox copies with real rows or none.
  • Move a database to another host, or to MySQL, with a pre-flight report of what won't translate.
  • Sync rows from one database to another, parents before children.

Postgres on your Mac

  • Create, start and stop local servers, launch them at login, and read their logs.
  • Add pgvector, PostGIS or pg_trgm to a local server, and enable extensions anywhere.
  • Share a local server with a teammate through a Cloudflare Tunnel.

Connecting to Supabase, Neon and RDS

Supabase: open your project's Connect panel, copy a connection string, and paste it into TableStudio's Host field. Linking your Supabase account adds the host's own tools for that project.

Neon: copy the connection string from the project dashboard and paste it in. Link your Neon account to work with branches and the rest of Neon's tools from TableStudio.

Amazon RDS: import your RDS instances to add the Postgres ones without copying endpoints by hand.

When Postgres gets into trouble

The problems that take Postgres down are usually slow and silent: transaction IDs creeping toward wraparound, autovacuum that can't keep up, a replication slot nobody uses quietly filling the disk with WAL. TableStudio's health checks read the system catalogs for exactly those. Each finding says what it means and what to do about it, and the ones with a safe fix offer it for your review.

Last updated

Common questions

Let Your Agent Near the Database Tonight

7 days, every feature, nothing to sign up for. Install the app, let it set up your agent, and ask about your data. Then keep it for $49, once.