← All projects

Tacivan

Fast database client for macOS

Tang Yijia (Tom)

Category
Mac Apps
Platform
macOS 13+
Version
0.1.0
Size
22 MB
License
MIT
Languages
EN · 中文

A fast, open-source database client for macOS, built for people who live in MySQL all day. Streams million-row results without freezing; Go + native WebView, no Electron, no account, no telemetry.

Web demoQuery results in a virtualised grid
Web demoConnection tree, tabs and SQL editor

Try it in your browser

The window below is a browser replica of Tacivan’s main window. Queries really run, on SQLite compiled to WebAssembly, against a fictional bookstore database generated in your browser. local-mysql and cache-redis are mock connections you can browse but not query. Nothing is sent anywhere.

Try a query:
Tacivan
main ⌘/Ctrl + Enter runs the selection, or everything

Streaming results with a Stop that works

In Tacivan a result set is a cursor, not an array. Rows arrive through a chunked cache with a process-wide memory budget; chunks you are not looking at spill to disk, so several million-row tabs can stay open at once. A slow fetch in one tab does not hold up another. Every long operation shows its stage and elapsed time, and Stop cancels the driver context, which interrupts the blocked network read rather than just hiding the spinner.

The demo imitates the visible part: rows are fetched in time slices, the grid only renders the rows on screen, and Stop ends the fetch between slices. It keeps everything in memory and stops at 500,000 rows; the app has no such cap because it spills to disk.

Made for big, old MySQL

All metadata goes through SHOW … statements and never through information_schema, which is a temporary-table scan on MySQL 5.7. An instance with 3,165 databases lists in one round trip, and a connection can be told to show only a hand-picked set of databases.

Plugins and MCP servers as connections

A plugin is a separate process in any language that speaks line-delimited JSON-RPC 2.0 over stdio. Each plugin becomes a new connection type with its own form fields, object tree and context-menu actions; the SQL editor, grid, filters, whole-database search and export work as usual. The host enforces the plugin’s rules (selectOnly, singleStatement, forceLimit, denyPatterns) before any SQL reaches it, and a read-only plugin has no write path at all. Plugins are installed from Settings and never ship in a release build.

MCP servers (stdio or Streamable HTTP) are connections too: the tree lists their tools and resources, a tool is called from a form generated from its JSON Schema, and table-shaped results land in the same grid. No language model is involved; every call is one you press.

Privacy

No telemetry, no crash reporting, no update checks, no account. The app talks only to the database hosts, plugin processes and MCP servers you configure. Passwords live in the macOS Keychain; everything else is plain JSON under ~/Library/Application Support/Tacivan/. MIT licensed, macOS 13 or later, universal binary.