v0.3.3 · macOS · Windows · Linux
Database client built for confidence.
Quay is a native cross-platform client for 20+ engines — relational (PostgreSQL, MySQL/MariaDB, SQLite, SQL Server), columnar (DuckDB, ClickHouse, Snowflake, BigQuery, Redshift), document + KV (MongoDB, Redis, DynamoDB), wide-column (Cassandra, ScyllaDB), graph + vector + time-series, and more. Every edit — cells, JSON fields, Redis keys — stages into a draft buffer. Type the connection name to commit on production. Same flow across every engine.
Native on macOS, Windows, and Linux.
One client. 20+ engines.
Core SQL — Free
-
PostgreSQL -
MySQL -
MariaDB -
SQLite -
SQL Server -
DuckDB -
ClickHouse
Wire-compat presets — Free (postgres / mysql protocol)
-
CockroachDB -
YugabyteDB -
Neon -
Supabase -
TimescaleDB -
Redshift -
Aurora-PG -
Greenplum -
Citus -
TiDB -
PlanetScale -
Aurora-MySQL -
Vitess
NoSQL · Cloud · Specialty · Vector — Pro
-
MongoDB -
Redis -
Cassandra -
Snowflake -
BigQuery -
Databricks -
Elasticsearch -
InfluxDB -
Neo4j -
DynamoDB -
Firestore -
Memcached -
Qdrant -
Weaviate -
Pinecone
How it works
Four steps from connect to commit.
- 01
Connect
Add a connection or pick a saved one. SQLite asks for a file path; the others want host, port, and credentials. Tag it dev/staging/prod — the tag changes how Quay protects the connection later.
- 02
Browse
One rail spans every engine — databases, tables, collections, and Redis keys. Right-click anything for actions: backup, restore, indexes, columns, copy to another connection.
- 03
Edit
Every change — a cell, a JSON field, a Redis hash, a list member — stages into a per-session pending buffer. Multi-tab SQL editor for parallel queries; query history is persistent.
- 04
Commit
Review the diff. ⌘S to commit, ⌘R to refresh. On a production connection you type the connection name first. Every time.
Inside Quay
See it in action.
Real screenshots from the latest build. 20+ engines, one workflow, every diff visible before commit.
-
Review modal— every old → new diff before commit -
EXPLAIN— plain-language interpretation, no AI -
Schema diff— side by side, identical or different per object -
Redis browser— type-aware viewers for strings, hashes, lists, sets, zsets
Features
The boring, handled.
Quay is opinionated about the parts of the workflow nobody likes. So you don't have to be.
-
Restore-safe SQL exports
Foreign-key topological order. Charset and collation preserved. AUTO_INCREMENT and sequences intact. Triggers, views, and routines emitted in dependency order.
-
Encrypted backups (.qenc)
Single-file envelope: AES-256-GCM with an Argon2id-derived key. Auth tag on every blob, so tampering or wrong passwords fail fast. Restore picks up .qenc automatically — paste the password, Quay decrypts, then runs the import.
-
Edit as draft
Cells, JSON fields, Mongo documents, Redis hash/list/set/zset members — every change stages into a session-scoped buffer. Review the diff. ⌘S commits all. ⌘R refreshes.
-
Production feels different
Typed-name confirmation gates every commit to a prod-tagged connection — pending edits, raw INSERT/UPDATE/DELETE, ALTER TABLE, CREATE/DROP INDEX, restore, copy table. The friction is the feature.
-
20+ engines, one feel
Free covers 20 engines — 7 core SQL backends (Postgres, MySQL, MariaDB, SQLite, SQL Server, DuckDB, ClickHouse) plus 13 wire-compat presets (Cockroach, Yugabyte, Neon, Supabase, Timescale, Redshift, Aurora-PG, Aurora-MySQL, Greenplum, Citus, TiDB, PlanetScale, Vitess). Pro adds 15: NoSQL (Mongo, Redis, Cassandra), cloud warehouses (Snowflake, BigQuery, Databricks), specialty (Elasticsearch, InfluxDB, Neo4j, DynamoDB, Firestore, Memcached), and the vector trio (Qdrant, Weaviate, Pinecone). Same context menus, same edit-as-draft, same review modal, same shortcuts across every one.
-
Schema diff between connections
Pick two open SQL connections. Quay walks every table, surfaces tables present on only one side, and per-column diffs the rest — type, nullability, primary key, default. Side-by-side, no SQL needed.
-
EXPLAIN with plain-language interpretation
Run any SELECT, click Explain. Quay parses the dialect-specific plan (MySQL row format, Postgres FORMAT JSON, SQLite QUERY PLAN) and surfaces the issues — full scans, filesort, missing indexes — with concrete suggestions. Deterministic. No AI.
-
Result grid that works like a spreadsheet
Click row index to select; ⇧-click ranges; ⌘-click toggles. Same for columns. Right-click for: copy as TSV/JSON/SQL, export selection (CSV/JSON/SQL/Markdown/NDJSON), DELETE rows by primary key, sort by column, hide columns.
-
Multi-tab editor, history, saved queries
Run several queries in parallel — each tab keeps its own SQL. History is persistent per connection (last 200, deduplicated). Star a query to save it under a name; reload from the Saved dropdown.
-
Native, zero CLI dependency
Quay implements every export, import, EXPLAIN, and structure operation natively. No mysqldump, pg_dump, mongodump dependency. Nothing leaves the data path unless you switch it on: the AI assistant (off by default, your own key) and, if you use them, team sync and cloud backup.
-
SSH tunneling that stays alive
Connect through any bastion. Quay forwards a random local port to the remote DB and routes the driver through it. Auth via key file, password, or your existing ssh-agent. TOFU host-key verification (known_hosts persisted to ~/.config/quay). Background keepalives every 30 seconds — when the bastion stops answering the connection chip flips to a danger pill so you know to reconnect before issuing a query.
-
Streaming import, never out-of-memory
Multi-GB SQL backups stream through a state-machine splitter at 1 MB chunks — Quay never holds the whole script in RAM. A live progress bar shows bytes scanned, statements executed, and statements failed in real time, so a long restore looks like work, not a hang.
-
Restore preview before you click
Pick a backup file and Quay scans it before the import runs — counts of CREATE TABLE, ALTER, INSERT, COPY, and the destructive ones (DROP, TRUNCATE) flagged in danger color. The FK-ordered table list from Quay's own export header is laid out so you see the blast radius up front.
-
Postgres deep tools — LISTEN/NOTIFY, RLS, extensions, replication
Live LISTEN/NOTIFY tail (sqlx PgListener — real streaming, not polling). Extension manager listing every available + installed extension. Materialized views with REFRESH from the SQL editor. Replication slots viewer to surface stalled or unused slots. RLS policies across every schema. pg_stat_statements top-queries panel.
-
MySQL & MariaDB — triggers, events, performance schema
Triggers and scheduled events listed across every schema. Performance schema top-digest panel sorted by total time. Master / replica status. mysql.user list (run SHOW GRANTS in the editor for per-user grants). Read-side coverage today; editable panels in the next release.
-
MongoDB — aggregation runner, change streams
Aggregation pipeline runner: paste stages as JSON, run against any collection. Change streams live tail (cluster-, db-, or collection-scoped) — backed by a real watch() subscription, not polling.
-
Redis — pub/sub tail, CLUSTER, ACL, INFO
Live SUBSCRIBE / PSUBSCRIBE tail with channel filter and pause. CLUSTER NODES topology view. ACL LIST viewer. INFO + CLIENT LIST for snapshotting connection state during incidents.
-
ClickHouse — MergeTree parts, mutations, distributed
MergeTree parts inspector. Mutations panel with one-click KILL MUTATION. Distributed clusters listing. TTL inspector showing engine + key configuration per table.
-
Cassandra / ScyllaDB — ALLOW FILTERING parser, ring, compaction
ALLOW FILTERING parser explains why a query would need a full scan + suggests a safer rewrite, before you fire it. Token ring + peers view. Compaction strategy listing per table.
-
SQL Server — T-SQL trace, Agent, sys.sql_modules
Stored procedure trace mode (Pro Plus) — the body gets auto-instrumented with PRINT breadcrumbs, run once, returns the trace in order. No engine extension. Agent jobs viewer. Stored procedures browseable from sys.sql_modules.
-
DuckDB — extensions, settings, functions
Extension manager listing every extension (httpfs for S3, json, parquet, fts). Settings panel exposing every config knob. Table-function browser for ad-hoc queries against external data sources.
-
SQLite — pragmas, WAL toggle, attached DBs
Pragma panel surfacing the most-asked-about settings in one shot. WAL ↔ DELETE journal-mode toggle (Pro Plus). Attached-databases listing.
-
Cloud DWs — Snowflake, BigQuery, Databricks, Redshift
Pro tier. Snowflake warehouse manager with one-click suspend / resume + query history. BigQuery dry-run cost estimator (bytes processed → dollar cost before you run) + datasets / jobs panels. Databricks warehouses + query history. Encrypted backups support all four.
-
Vector databases — Qdrant, Weaviate, Pinecone
Pro tier. Collections / indexes browser. Vector similarity search panel — paste a query vector, pick top-K, see matches with their scores + payload. Run vector queries with the same draft buffer and prod-confirm safety as your SQL writes — surprisingly few clients treat vectors as first-class.
-
Specialty — Elasticsearch, InfluxDB, Neo4j, DynamoDB, Firestore, Memcached
Pro tier. Each engine's native command shape (DSL, Flux/SQL, Cypher, PartiQL, Firestore REST, memcached text) gets its own editor mode plus a dedicated deep-tools panel — Elastic mappings + snapshots, Influx buckets, Neo4j Cypher with autocomplete chips, DynamoDB DescribeTable, Firestore composite indexes, Memcached live STATS at 1 Hz.
-
Team sync — shared encrypted connections + queries
Pro Plus. Connection profiles and saved queries sync across your team, end-to-end encrypted client-side (server stores ciphertext only). Workspaces let you scope what's shared.
-
Scheduled cloud backups
Pro Plus. Recurring backups directly to S3, R2, or GCS. Per-connection cron schedule for SQL, MongoDB and Redis connections. Runs while Quay is open.
-
AI assistant — opt-in, BYO key, non-AI fallback always
Pro Plus. Natural-language SQL generation, query explanation, index suggestion. Off by default. Bring your own OpenAI or Anthropic key — your queries never go to a Quay-controlled LLM. Every AI feature has a deterministic non-AI fallback so you're never blocked by AI being unavailable, slow, or just wrong.
-
Migration tooling — native runner, zero external CLI
Pro Plus. Versioned up/down SQL files in your project, applied in transaction order against any connection. Tracking table managed for you. Generate migrations from a schema diff. Audit history of every applied change. No Flyway / Liquibase / Sqitch dependency — ships with Quay.
Use cases
Built for the work most clients hand off to a CLI.
-
Restoring after an incident
Bring production back from a dump without manual SQL editing — FK-ordered, charset-preserved, optional .qenc decryption.
-
Editing production data safely
Stage, review, type the connection name, commit. Same pattern across SQL, Mongo, and Redis.
-
Catching schema drift
Diff dev, staging, and prod side-by-side. Per-column type / nullability / PK / default differences surfaced in one pass.
FAQ
Questions, answered.
-
Which databases does Quay support?
20+ engines. Free tier (20 SQL dialects): 7 core SQL — PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, DuckDB, ClickHouse — plus 13 wire-compat presets — CockroachDB, YugabyteDB, Neon, Supabase, TimescaleDB, Redshift, Aurora-PG, Aurora-MySQL, Greenplum, Citus, TiDB, PlanetScale, Vitess. Pro tier adds 15: NoSQL (MongoDB, Redis, Cassandra/ScyllaDB), cloud warehouses (Snowflake, BigQuery, Databricks), specialty (Elasticsearch/OpenSearch, InfluxDB, Neo4j, DynamoDB, Firestore, Memcached), vector (Qdrant, Weaviate, Pinecone).
-
When can I use it?
Quay is shipping today on macOS, Windows, and Linux — head to Downloads for the latest builds.
-
Which platforms is Quay on?
macOS, Windows, and Linux — all three from day one. Quay is built on Tauri, which compiles each platform into a native app. The database layer is identical across platforms; chrome (titlebar, menus, file dialogs) follows each OS's conventions.
-
What's in an encrypted backup?
A single file with a header (magic, version, Argon2id parameters), a 16-byte salt, a 12-byte AES-GCM nonce, and the ciphertext + auth tag. Key derivation is Argon2id. Wrong password and tampered files fail fast. There is no recovery without the password — Quay never escrows it.
-
Will it cost money?
Three tiers. Free covers 20 SQL dialects (7 core engines + 13 wire-compat presets), the SQL editor, schema browser, plain backup/restore, and the per-engine deep tools for the SQL family. Pro ($15/mo) adds the 15 NoSQL / Cloud / Vector dialects and the safety-critical features (edit-as-draft, prod-tag confirmations, FK-aware backup, restore preview, streaming import, EXPLAIN tips, schema diff, SSH health monitoring, encrypted backups). Pro Plus ($30/mo) adds team sync, cloud backup destinations, scheduled backups, opt-in AI, the native migration runner, and stored procedure trace mode. See the [Pricing page](/pricing) for the full breakdown.
-
Does Quay use AI?
Not in the core client. Exports, EXPLAIN, schema diff and suggestions run without AI. Pro Plus includes an optional AI assistant: off by default, uses your own OpenAI or Anthropic key, and sends only the prompts you choose to that provider. Every AI feature has a non-AI fallback.
-
Do I need mysqldump or pg_dump installed?
No. Quay implements export and import natively in Rust — that's why backups round-trip on the first try regardless of which CLI is on the host. Official CLIs can be wired in as an optional fast path, but they're never required.
More answers: full FAQ · best database client for Mac · TablePlus alternative · DBeaver alternative · compare prices