Everything you need.
Nothing you don't.

A grid of features. Read top-to-bottom — pricing tiers labeled inline.

GPU-rendered grid

Virtualized, 1M rows, transform-only scroll. The grid is a Metal/DirectX/Vulkan surface, not a DOM table.

scroll fps · last 3 s ● 60.0 fps
rows
1,000,000
frame
16.6 ms
mem
184 MB

Native on every desktop OS

Same Rust binary class on macOS, Windows, Linux. Identical shortcuts. No 'we ported it' second-class citizens.

macOS
12+ · arm64 · x86_64
→ Metal
Windows
10+ · x86_64
→ DirectX 12
Linux
GNOME · KDE · Wayland
→ Vulkan

Bring-your-own AI

PRO

Pro unlocks the integration layer. Plug in Ollama, the claude CLI, an Anthropic / OpenAI key, or any MCP server. AI usage is billed by your provider — never by zolt.

top 10 repeat customers in q1 via ollama · llama3.1
-- preview · press ⌘⏎ to insert
select u.email,
       count(*) as orders
from orders o
join users u on u.id = o.user_id
where o.placed_at >= '2026-01-01'
group by 1
order by orders desc limit 10;

SSH tunneling, built-in

Define a bastion once. zolt opens, holds, and tears down the tunnel per session. No PuTTY, no autossh dance.

your laptop
bastion
postgres
SSH (key-auth, ed25519) TLS 1.3

Keychain-only credentials

Passwords live in macOS Keychain, Windows DPAPI, or libsecret. Never on disk in plaintext. Ever.

analytics-prod
postgres · admin@db-1.acme.io
password = ••••••••••••
● keychain · macOS

E2E-encrypted team sharing

TEAM

Connection blobs are sealed with age to each member's Ed25519 key. The sync server holds ciphertext and nothing else.

you
sync (blind)
teammate
age-encrypt(blob, ed25519:rae)
→ -----BEGIN AGE ENCRYPTED…

Schema diff & DDL gen

Diff two schemas, generate the migration, paste into your repo. No external diff tool.

+ ALTER TABLE users ADD COLUMN tier text;
CREATE INDEX users_email_lower
~ ALTER COLUMN orders.total TYPE numeric(12,2);
− DROP TABLE legacy_sessions;
4 changes · postgres · ready to copy

MCP server mode

PRO

Run zolt as a Model Context Protocol server. Claude Desktop calls query_database and describe_schema directly. Tool-use trace, not a chat about your data.

→ tool_use: describe_schema(connection: "analytics-prod")
← 14 tables, 86 columns
→ tool_use: query_database(sql: "select count(*)…")
← 1 row · 12 ms · returned to claude
● mcp.local:7841 · 2 tools registered

Three things you couldn't do this morning.

zolt — capture 1/3 · palette
monthly active users by week K
Generate SQL · MAU by week ollama · llama3.1
Open dashboard
Run last query again
-- generated · review before run
select date_trunc('week', started_at) as wk,
       count(distinct user_id) as maus
from sessions
where started_at >= '2026-01-01'
group by 1
order by wk;
events · 1,000,000 rows scanned · scroll position 423,118 ● 60 fps
#
event
payload
ts
user
423,118
page_view
{"path":"/p/0"}
14:00:0
u_23s6
423,119
click
{"path":"/p/73"}
14:01:7
u_23s7
423,120
sign_up
{"path":"/p/146"}
14:02:14
u_23s8
423,121
purchase
{"path":"/p/219"}
14:03:21
u_23s9
423,122
sign_in
{"path":"/p/292"}
14:04:28
u_23sa
423,123
logout
{"path":"/p/365"}
14:05:35
u_23sb
423,124
page_view
{"path":"/p/438"}
14:00:42
u_23sc
423,125
click
{"path":"/p/511"}
14:01:49
u_23sd
423,126
sign_up
{"path":"/p/584"}
14:02:56
u_23se
423,127
purchase
{"path":"/p/657"}
14:03:3
u_23sf
423,128
sign_in
{"path":"/p/730"}
14:04:10
u_23sg
423,129
logout
{"path":"/p/803"}
14:05:17
u_23sh
01,000,000
your laptop
macOS · 192.168.1.7
bastion
ssh-key · ed25519
postgres
db-1.internal · 5432
tunnel up · 0 bytes plaintext · round-trip 18 ms