Help
Release notes
What changed in each version of Rowkery, newest first, and how you get a new version.
How updates arrive
Rowkery updates itself. You don't need to download a new copy by hand.
It checks quietly
About 15 seconds after launch, and then every six hours while it's open, Rowkery asks for the latest release. If you're up to date, it says nothing.
It downloads in the background
When there's a newer version, Rowkery downloads it and checks its signature against the key built into the app. A download that doesn't match is never installed.
You choose when to restart
A toast says Rowkery 0.2.0 is ready, with Restart and “or it installs when you quit”. Click Restart (or press ↵) to install it now and reopen. If you leave it, the update installs when you next quit, and the next launch runs the new version. Rowkery never restarts on its own.
If a query is running in any window when you choose Restart, nothing restarts. The toast says A query is running (or how many are), and you can restart once it finishes, or quit to install.
Check now
Choose Rowkery › Check for Updates…, or Check for updates… in ⌘K. You'll see Checking for updates… and then one of:
| Toast | What it means |
|---|---|
| Rowkery is up to date, with the version | You have the latest release |
| Rowkery 0.2.0 is ready | An update was downloaded; restart to install it |
| Couldn't check for updates, with the reason | The check failed, for example with no network. Try again later |
| This build doesn't update itself | A copy you built yourself, such as with make dmg. Update it by building again. See Build from source |
Only one check runs at a time: a check from the menu waits for one already running. Once an update is downloaded, every check reports it straight away.
Where releases live
Every release is published on GitHub at github.com/rowkery/rowkery/releases. The latest release has Rowkery.dmg for a fresh install, and a SHA256SUMS file if you want to check the download. The update check reads the same latest release, so drafts and pre-releases are never offered as updates.
v0.2.0
New
- Google Cloud SQL: pick Google Cloud SQL under Postgres's Connect to and choose an instance. Rowkery connects through Google itself, with no Cloud SQL Auth Proxy to run. It signs in to Google with your gcloud login or a service account key kept in the Keychain.
- Running several statements lists each one's result beside the grid; pick one with a click or ↑ / ↓. A write says how many rows it changed.
- Query tabs load the whole result; the query's LIMIT decides how many rows come back. Load more, the page-size menu, Data / Structure and Copy all results as CSV are now on table tabs only.
Fixed
- Couldn't connect reads a connection pooler's "SASL authentication failed" as a wrong password.
- Delete… in the connection form asks Keep / Delete first.
- Typing a row's first letters in a menu or filter picker moves to that row.
-
- and ⌘T show the empty window if one is already open, and leave Agents or Settings.
- The Columns table lines up each row's cells.
- The update button shows under Automatic too, and an empty result reads No records.
v0.1.3
New
- Agents (⇧⌘A) is an inbox: waiting proposals over the activity log. Sharing moved to Settings › Agents.
- The review page lists every waiting proposal; open them in any order.
- The window pill holds the safe mode shield and an agent mark (green dot after a recent read). ⌘K opens mid-window.
Fixed
- SSH tunnels: upgraded russh for RUSTSEC-2026-0153/0154. Saved host keys still match.
- Patched rustls advisories (RUSTSEC-2026-0346 to 0349).
v0.1.2
New
- Settings (⌘,) in the Rowkery menu: updates, appearance and keyboard in one place.
- Choose how updates arrive: Automatic, Download only (the default), Notify only, or Off.
- A round orange button at the schema column's foot shows when an update is waiting.
- Check for Updates… moved to the Rowkery menu.
v0.1.1
A fix for agents connecting through Rowkery's MCP server.
Fixed
- Agent queries no longer fail after you change a connection's password. Rowkery's MCP server kept the password it read from the Keychain when it started. After you saved or changed the password in the app, every agent call failed with "Postgres rejected password" until the agent restarted. Now, when Postgres rejects the login, the MCP server reads the Keychain again and retries once. The password stays inside Rowkery and is never sent to the agent.
- When no password reaches Postgres, the error now says why: macOS refused the Keychain read, or no password is saved for that connection.
Install
Rowkery 0.1.0 offers this update after launch and installs it when you restart. Help > Check for Updates… checks right away.
For a new install, open Rowkery.dmg and drag Rowkery to Applications. Rowkery isn't signed by Apple yet, so choose Open Anyway in System Settings > Privacy & Security on the first launch, or run this in Terminal:
xattr -dr com.apple.quarantine /Applications/Rowkery.app
Because the app isn't signed, macOS asks again for Keychain access to each connection after the update.
v0.1.0
The first public release of Rowkery: a keyboard-first Mac app for Postgres and SQLite, with an MCP server built in so your AI agent can read your data while only you change it.
Working with your data
- Postgres and SQLite. Connect to Postgres directly, over SSL or through an SSH tunnel, or paste a
postgres://URL to fill in a new connection. ⌘O opens a SQLite file. A small sample database is there on first launch to try things on. - Keyboard first. ⌘K finds any table, recent query, connection or command. Hold ⌘ to see the keys for what's on screen; ⇧⌘/ lists them all. The mouse works everywhere too.
- Query tabs each keep their own session, so
SETandBEGIN … COMMITcarry across runs. ⌘↵ runs the statement under the caret, and Esc or ⌘. cancels it. Load more fetches the next page of results, and Export… writes CSV, TSV, JSON or SQL INSERTs. - Table tabs show the exact SQL behind the rows, with your filters as chips in its WHERE. Sorting and paging run on the server.
- Staged edits. Change cells, insert, duplicate or delete rows, and the bar at the grid's foot counts the changes. Review SQL shows the exact transaction. Commit (⌘S) runs it, and rolls it back unless every statement changed exactly one row.
- Readable query plans. ⌘E shows a statement's plan as a short tree, with the slowest step marked and at most one plain hint. On Postgres, Explain with timings runs the statement for real and rolls it back.
- Sessions (⌘K, Show sessions) lists what's running on a Postgres database, blocked and blocking sessions first. Pick one to see its locks and query, then cancel it or end it.
Staying safe
- Environments. Tag each connection prd, stg, dev or local, and its window pill carries the colour.
- Safe mode. Confirm writes stops every write and shows the exact SQL before it runs. Read-only refuses writes, and its sessions are read-only on the server too.
- Presenting hides sensitive columns and the host line on screen while you share it. Copy still copies the real value.
- Undo. Closing a tab or a window, deleting a connection and discarding edits all offer Undo.
- Passwords stay in your macOS Keychain. There's no account and no sign-in.
Agents
- Rowkery runs as a stdio MCP server (
Rowkery --mcp). The Agents page connects Claude Code or Claude Desktop in one click and shows the command for any other MCP client. - An agent sees only the connections, databases and tables you share, for as long as you choose. Every query is a single SELECT on a read-only session with a row cap and a time limit. A query that would read a big table end to end is refused.
- Sensitive columns. Mark a column and agents only ever get a stand-in for its values. They can still count and match on it, but they can't filter or sort by it.
- Proposed changes. An agent can send an INSERT, UPDATE or DELETE with its reason. Rowkery dry-runs it and shows you the rows before and after. Nothing is written until you press Commit.
- Every call lands in the activity log on the Agents page, with its request and the start of its response.
Install
-
Open
Rowkery.dmgand drag Rowkery to Applications. -
Rowkery isn't signed by Apple yet, so macOS blocks the first launch. Choose Open Anyway in System Settings > Privacy & Security, or run this in Terminal:
xattr -dr com.apple.quarantine /Applications/Rowkery.app
Rowkery checks for updates after launch and installs them when you restart it. Help > Check for Updates… checks right away.
Requirements
macOS on Apple Silicon or Intel. One universal build covers both.
Known limits
- Sessions and Explain with timings work on Postgres only.
- Because the app isn't signed, macOS asks again for Keychain access to each connection after an update.
- Linux and Windows build from source, but they aren't released or tested the way the Mac app is.
Tell us
Help > Report an Issue… sends a bug, a feature request or feedback with what it lists and nothing else.