This page describes Calíope 1.7, the version I am building right now. 1.6 is on the App Store for the Mac, iPad, iPhone, Apple Watch, Apple TV and Apple Vision Pro. The changelog says which version each feature landed in.
Adds an “Open in Calíope” button to every topic. It only works with the app installed.
Complete history of executed queries with timing and status.
Where it is: Workspace › Tools › SQL Log
Open the SQL Log from the workspace navigation bar. It has two views:
- Persistent log — every query you run, from this and earlier sessions, kept in a file on disk: its number, date, connection, status (OK/Error), the query and what the server answered.
- Session history — the queries this window ran, with how long each one took.
Double-click a row (on iPad, tap it) to see its detail.
In a Redis or MongoDB session it is called Command Log and keeps what you run: the console commands and, in MongoDB, also queries, writes and indexes. What Calíope asks the server to draw a screen is not kept. It opens filtered by the session's connection, each row shows as it came —not colored as SQL, with passwords masked— and there is no session history, because there is no SQL Editor there. In Redis, Open in console takes a row to the console without running it.
Apple Vision Pro: as on iPad: look at the row and pinch to open it.
Keywords: log, history, queries, query log, record
The Session picker in the Log toolbar filters by session. Each time Calíope starts, a new session ID is generated, and every query run until it quits carries it. Choose All sessions to view the complete history or select a specific session.
Type in the search field in the Log toolbar to keep only the queries whose text contains it. The search combines with the session, connection and result filters: all of them apply at the same time.
Show only queries from a specific connection profile.
Where it is: Query Log › Connection selector
The second picker in the Log toolbar filters entries by connection profile. Choose the server or profile name from the dropdown to see only the queries executed in that context. Select All connections to view the complete history.
Each connection appears as “name (host:port)”, so two profiles with the same name on the same machine —a MySQL and a Redis, for example— are listed separately. Entries written by earlier versions of Calíope carry “name (host)”, without the port, and are listed as another connection.
Show only successful queries or only those that produced an error.
Where it is: Query Log › OK / Error selector
The third picker in the Log toolbar filters by execution status: All, OK (successful queries only), or Error (failed queries only). Combine it with the session filter and the text search to quickly narrow down the relevant entries.
The list keeps itself up to date: every query that gets logged —in this tab or from another one— and whatever arrives from iCloud shows up without you doing anything. The reload button (circular arrow icon) in the Log toolbar reads the file again by hand.
Copy the result of a logged query to the clipboard.
Where it is: Query Log › right-click › Copy result
Open the context menu on any entry in the Query Log — right-click on macOS, press and hold on iPad — and select Copy result. The result (response text or error message) is copied to the clipboard without needing to re-run the query.
Apple Vision Pro: the context menu opens by looking at the row and pinching and holding.
Keywords: copy, result, clipboard, log, context menu
Permanently delete all entries from the SQLite log.
Where it is: Query Log › Purge / Clear
The persistent log is stored in a local SQLite database (query_log.db) in the application support directory. To delete everything, use either of these two methods:
- "Clear" button (trash icon) in the top filter bar.
- "Purge" button in the file info bar at the bottom of the view.
In both cases Calíope shows a confirmation dialog before deleting. The operation removes all rows from the executedqueries table; it does not affect the in-memory session history or the DDL audit log.
Share your query history across your devices via iCloud.
Where it is: Query Log › iCloud sync button
The cloud icon in the upper-right corner of the Query Log controls synchronisation with iCloud CloudKit. The feature is disabled by default and is entirely optional.
Enabling synchronisation
Tap the cloud icon (grey outline) to enable it. Calíope will ask you:
- Upload existing history — uploads all current local entries to iCloud.
- New entries only — starts syncing from now without uploading previous history.
From that point on, every executed query is saved simultaneously to the local database and to iCloud. The result field is stored with a maximum of 500 characters.
Disabling synchronisation
Tap the filled (blue) cloud icon to disable it. Calíope will ask you:
- Download history from iCloud — downloads all iCloud entries to the current device.
- No, just disable — disables sync without touching local data.
- Turn off and delete the iCloud copy — turns syncing off and also deletes the copy in iCloud, for all your devices; what each device keeps locally stays there.
The first two keep the copy in iCloud: your other devices with syncing on keep reading it.
Status indicators
Icon
Meaning
Grey cloud (outline)
Sync disabled
Filled blue cloud
Sync active, up to date
Loading indicator
Synchronisation in progress
Red crossed-out cloud
Sync error (hover to see details)
Retention
The same retention policy configured for the local log (default 90 days) is automatically applied to iCloud records once a day. This keeps both stores aligned to the same time horizon.
Privacy
Data is stored in your personal iCloud account (CloudKit private database), invisible to other users and out of Calíope's reach: no server of mine reads it. Before you turn it on, the confirmation warns that the synced log can carry sensitive information — passwords written in SQL, personal or financial data — and while syncing is on, the same warning stays at the top of the persistent log.
Keywords: icloud, sync, synchronise, cloudkit, cloud, history, share, ipad, mac
When the sync icon appears crossed out in red, tap it to see the error details and available options:
- Retry — attempts synchronisation again. Use this if the error was temporary (no network, iCloud down).
- Disable sync — disables synchronisation without downloading data. Local history is not modified.
Common causes and solutions:
Error
Cause
Solution
"You are not signed in to iCloud"
The iCloud account is not active
Open System Settings → Apple Account
"iCloud temporarily unavailable"
Apple servers are down or no network coverage
Wait a few minutes and tap Retry
"Account restrictions"
Parental controls or MDM blocking CloudKit
Contact your device administrator
"Could not verify status"
No internet connection at launch
Check network and tap Retry
Note: The iCloud account status is verified automatically when the app opens. If the problem is resolved (e.g. you connect to the internet), the icon will return to blue after the next query is executed.
Calíope sends a notification when iCloud log sync fails silently.
Where it is: Calíope › Settings › General → Notifications
If the iCloud sync of the query history fails (no connection, full quota, account unavailable), Calíope can alert you with a local notification so you don't lose records without knowing it.
Covered scenarios:
- No Internet connection at sync time.
- iCloud quota exceeded — the notification uses a specific message indicating storage is full.
- iCloud account temporarily unavailable.
Enable or disable:
Go to Settings › General › Notifications and use the iCloud sync failure toggle. This toggle only appears when iCloud sync is turned on in Settings.
The cooldown between notifications is 15 minutes to avoid spam (sync is checked on every executed query).
From a row’s menu or from its detail, a button takes the statement to the SQL Editor without running it.
Where it is: Workspace › Tools › SQL Log
From a row’s menu, or from the detail sheet, Open in editor takes the statement to the SQL Editor without running it. On the Mac it opens in a new tab; outside the Mac the editor comes to the front with the statement in place of what it had. The session history works the same way.
With Redis the option is Open in console and takes the command to the console. With MongoDB it is not offered.
Keywords: open in editor, log, statement, history, console
On the Mac, ⌘P with the persistent log in front prints the rows that pass the filters, each with its full statement.
Where it is: Keyboard shortcut: ⌘P
On the Mac, with the persistent log in front, ⌘P prints the rows that pass the filters: each with its number, date, connection, response and the full statement, without cutting it. The session history is not printed.