The database client for product engineers.

You aren’t a database administrator. Use the right tool for the job.

macOS · Linux (alpha) · Postgres · MySQL · SQLite · Neon

Includes

  • A Data Editorinsert, update, and delete rows visually
  • An SQL Editorwrite and run queries with full results
  • A Graph Viewerexplore relationships visually
  • An MCP Serversafe AI access to live schema and data
SlashTable main window showing a data table with foreign key relationships highlighted and breadcrumb navigation — dark mode left, light mode right — dark mode

Built for product engineers

01

Click through your data

A graph navigation model so good it will convert keyboard diehards. FKs, reverse FKs, join tables, all navigable.

Learn more ›
02

Connects to where you work

Docker containers, Neon branches, SSH-tunneled prod, SQLite files. Spin one up, /table picks it up. Tear it down, it’s gone.

Learn more ›
03

Screenshot-worthy schema diagrams

Create bespoke ER diagrams of important tables, hide the rest. Pin nodes, hide annoying tables, highlight edges. Get the perfect shot for your RFC.

Learn more ›

Connect and work where you already are

Connect

Parallel development is the new normal.

A normal day is 7 worktrees, 2 compose stacks, and a bastion host.

Docker auto-detect

Detects running Postgres and MySQL containers, reads creds from their env, and groups them by docker-compose project. Spin a stack up, your DB is in the sidebar. Tear it down, it’s gone.

Neon branch sync

Paste a Neon API key. Every project and branch shows up automatically. Create a branch from a PR, it appears; delete it, it disappears.

Multi-database, one connection

Hit ⌘D to flip between every database on the server. Each one keeps its own tabs, so context switching doesn’t blow away your work.

First-class SSH tunneling

Production behind a bastion is a normal connection, not a hack with a separate terminal window.

From the terminal you’re in

slashtable postgres://user:pw@host/db opens the app on that connection. Drop it in package.json scripts or .envrc — your terminal muscle memory works.

Credentials where they already live

macOS Keychain, 1Password, Bitwarden, AWS Secrets Manager, HashiCorp Vault. Stop pasting passwords into text fields.

Try it free

Navigate schema and data

Navigation
id=134
+Clear
T sku
T name
T description
SKU-00134
Water Bottle v9
High quality product #134.

Bidirectional FK navigation.

Click a foreign key value to drill into the related records. A novel breadcrumb tree tracks your full path and every level is clickable.

Reverse FK lookups show every record that points to the current one. Pure join tables collapse into direct relationships so navigation stays clean.

Stack your own filters on top and keep drilling. Traverse the tree from the keyboard with ⌘← ⌘→ ⌘↑ ⌘↓ — no mouse required.

Try it free
Schema Graph

Beautiful ER diagrams without noise.

Auto-layout your schema. Pin root tables to focus on, control graph depth to avoid clutter, search by name. What’s left matches your mental model.

Try it free

Extend with plugins and agents

status-badge/main.ts
import { Plugin } from "slashtable";

export default class StatusBadge extends Plugin {
  onload() {
    this.registerCellRenderer({
      id: "order-status-badge",
      render(value, el) {
        const colors = {
          confirmed: "#44ff88",
          pending:   "#ffcc00",
          shipped:   "#00d4ff",
          cancelled: "#ff5555",
        };
        el.style.color = colors[value] ?? "#6b6860";
        el.textContent = value;
      },
    });
  }
}
Plugins

Bring Your Own Code.

Cell renderers, record enrichers, custom views, query hooks, toolbar actions, and themes. Write TypeScript, drop it in ~/.slashtable/plugins/.

  • Cell renderers change how columns look

  • Record enrichers attach external data to rows

  • Custom views add new tab types

  • Query hooks intercept SQL

  • Toolbar actions wire into the active connection

MCP Server

Controlled access for AI agents.

Two clicks of setup for Claude Desktop, Claude Code, Cursor, or Windsurf. Per-connection policy: hidden, read, or write. Every call is logged.

You

Try your best to modify the database, I promise it's safe.

Claude

Let me try every flavor of destructive query.

> DROP TABLE orders

Blocked — DROP is not allowed

> DELETE FROM orders WHERE id = 1

Blocked — DELETE is not allowed

> INSERT INTO orders (id) VALUES (0)

Blocked — INSERT is not allowed

> TRUNCATE orders

Blocked — TRUNCATE is not allowed

Claude

Keyword filter caught those. Let me try the sneaky stuff — CTEs that write:

> WITH d AS (DELETE FROM orders RETURNING *) SELECT * FROM d

Blocked — cannot execute DELETE in a read-only transaction

Claude

It’s holding up. Two independent layers: a statement-level keyword filter, and a database-level read-only transaction underneath. The CTE bypassed the filter but Postgres itself refused.

More of the client

Every plan

Everything else.

SQL editor

Autocomplete that knows your schema, tables, and columns. Multi-statement execution with per-statement timing. Auto-format for the queries you’re not proud of. Run active query (⌃⏎), all (⇧⏎), or selection (⌘⏎).

Filter from the keyboard

Press f in any table to start typing. One command input instead of a builder. NOT toggle is its own switch. Fuzzy match across columns and the command palette too.

Saved favorites

Pin a configured filter set to a table. Drag to reorder, drop into folders. The filters you reach for, where you reach for them.

Array & JSON cell editors

First-class editors for text[], int[], uuid[], and json/jsonb cells. No more composing literal SQL by hand.

Safe data mutations

Edit rows inline. Changes queue with a SQL diff preview before anything commits. Revert one edit, or nuke them all.

Schema-aware grid

Composite primary keys, Postgres user-defined types (enums, domains, citext), and inet/cidr render and edit correctly. Fewer 'your schema isn’t supported' walls.

Virtual scrolling

Renders only what’s on screen. Scroll through millions of rows and 200-column tables without pagination, memory spikes, or a LIMIT clause you’ll forget to remove.

Schema graph, scoped

Open a graph from any table’s context menu and start there, not in a 500-node soup. Adjust depth, pin starting tables, hide the noise.

Prefix grouping

Snake- or camel-case tokenizer rolls user_*, billing_*, and friends into collapsible groups in the Explorer. Real schemas with hundreds of tables stop being a scroll-fatigue exercise.

Customizable keybindings

Every global action is rebindable, with multiple bindings per action. Make the app fit your hands.

Connection paint

Color-and-icon tags on connections. Trivial to set up, surprisingly load-bearing once you have prod, staging, and dev side by side.

Connection organization

Folders, color tags, and environment badges. Tell databases apart at a glance. Run a query against the wrong one less often.

Tab workspaces per connection

Explorer, SQL, and Schema Graph tabs with independent state, preserved per connection and per database. Switching context doesn’t blow away your open tables.

Command palette

⌘K opens it. New connection, disconnect, reconnect (⇧R), release notes — all from the keyboard. Keyword aliases too.

Semantic column types

Detects emails, URLs, images, currency, and dates. Renders them as clickable links, formatted values, and relative timestamps. Per-column override.

SQL execution logging

Every query logged with timing, row count, and parameters. When something goes wrong at 2am, you’ll know exactly which query did it.

Regret-driven development

Every destructive action shows a SQL preview and a confirmation dialog. The UI actively discourages you from doing anything you’d have to explain in a postmortem.

And more...

Download the app and find out what didn’t fit in this list. Shipping daily.

Get the app

/table.app

Built with Rust and React.

macOS downloads

Linux downloads (alpha)

Download for Mac(Silicon)

🍺 Also available via Homebrew

Community

Build with us

Come watch, or come help. Let me know what you think.

Discord

Bug reports, feature debates, and the occasional hot take on ORMs.

Join the server

Twitter / X

Release notes, feature previews, and questionable database opinions.

Follow us