Skip to content
Tinker
Download

Introduction

Tinker is a native macOS client for PostgreSQL, MySQL, MariaDB and SQLite, built for the developer who lives in a database all day: dev in the morning, staging after lunch, production over SSH at 5 p.m.

A query over big_table (1,000,000 rows). The first page is on screen in 152 ms.

What Tinker is

It is fast enough to page through a million rows without flinching, honest enough to show you the server’s exact words when something goes wrong, and careful enough that every write is a transaction you previewed first. No Electron. No web view. A real Mac app with real menus, real windows, and a data grid that is an NSTableView because nothing else keeps up.

Design principles

In priority order. When two of them conflict, the one higher on the list wins.

  1. Never corrupt or lose user data. Every write is explicit, previewable as SQL, and reversible before commit.
  2. Handle large result sets without degrading. A 1M-row table scrolls at 60 fps and is never loaded fully into memory.
  3. Feel like a Mac app. Menus, keyboard shortcuts, multiple windows, tabs, dark mode, native text editing.
  4. Be honest with the user. Every error surfaces the server’s actual message. No silent retries, no swallowed exceptions.

What is in version 0.1

  • PostgreSQL, MySQL and MariaDB on Apple Silicon, macOS 14 or later, and SQLite files opened straight from disk.
  • Connections with TLS, SSH tunnels, production and read-only modes, Keychain-backed secrets.
  • A paged, editable data grid with typed editors, filters, a cell inspector and a map pane for geometry.
  • A SQL editor with highlighting, alias-aware autocomplete, function completion with signatures, a formatter, per-tab sessions and true cancellation.
  • Objects overview, structure designer, structure sync, visual query builder, server view.
  • Export, dump, import and transfer that stream and never hold a table in memory — and transfer, data sync and structure sync run between two different engines as readily as within one.
Note
Redis, MongoDB, SQL Server, Oracle, cloud sync, collaboration and ER modelling are explicitly out of scope for 0.1. They are neither built nor stubbed: nothing in the app is greyed out waiting for a version that may never come.

How the project is run

Tinker is specification-driven. SPEC.md is the source of truth for contracts, screens and acceptance criteria. DECISIONS.md is an append-only log of architecture decision records. PROGRESS.md records, per phase, what was completed, which tests prove it, and what was deliberately deferred. These docs are written from those three documents.