Skip to content
Tinker
Download

Introduction

Tinker is a native macOS client for PostgreSQL, MySQL, MariaDB and SQLite — and for the Redis beside them — 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 of 1,000 rows is on screen in 122 ms, and the pane picker already offers to draw them as a chart.

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.
  • Redis, added through the same sheet as any other engine: every key in the view its type needs — time series, Bloom filters and vector sets included — a console that prints what redis-cli prints, and the server’s INFO, clients and slow log.
  • Connections with TLS, SSH tunnels, production and read-only modes, Keychain-backed secrets.
  • A paged, editable data grid with typed editors, enum and SET values picked from a menu, filters, a cell inspector, and a map pane that draws a geometry column on Apple Maps.
  • A SQL editor with highlighting, alias-aware autocomplete, function completion with signatures, a formatter, per-tab sessions and true cancellation — beside its results or above them, as you prefer.
  • A Chart pane after Rows: any result with something to measure drawn as a bar, line, pie, scatter or area chart, without leaving the query tab — within a budget of marks, so a large result opens at once.
  • Objects overview, a structure designer that offers every type each engine’s manual documents and chooses foreign keys from lists, structure sync, visual query builder, server view, and the MySQL and MariaDB event scheduler.
  • Export, dump, import from CSV, Excel and JSON, and transfer, all streamed so a table is never held in memory — and transfer, data sync and structure sync run between two different engines as readily as within one.
Note
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.