Cassandra and ScyllaDB client for Mac
Browse keyspaces and tables, run CQL in the editor, and edit rows that are written back by their full primary key. The same driver connects to ScyllaDB and to Amazon Keyspaces.
Works on MacDriver downloads the first time you pick Cassandra
Free to use, with optional paid plansOpen source (AGPL-3.0)


At a glance
- Query language
- CQL
- Driver
- Downloads on first useShared with ScyllaDB
- Connect with
- Host and port, SSH tunnel, SSL/TLS, AWS IAM
- Default port
- 9042
- Minimum version
- 3.0
- iPhone and iPad
- Does not open
Connect
Give TablePro a contact point and its port, plus a user name and password when the cluster has an authenticator configured. There is no keyspace field: pick one in the sidebar after connecting, or put it in the path of a cassandra:// or cql:// URL and import that. Switching keyspaces happens in place and leaves the system keyspaces out of the list, while tabs that are already open stay on their own keyspace.
TLS is off on a new connection. Preferred and Required both encrypt without checking the certificate, because the driver has no opportunistic TLS. Verify CA and Verify Identity need a CA certificate file and never fall back to the system roots. For mutual TLS, add a client certificate, its key and the key’s passphrase. A cluster on a private network is reached through an SSH tunnel.
Amazon Keyspaces signs in with SigV4 instead of a password. Point the connection at the regional endpoint, such as cassandra.us-east-1.amazonaws.com on port 9142, set Authentication to an AWS IAM mode (an access key, a profile or AWS IAM Identity Center), leave the user name and password empty and turn TLS on, because Keyspaces refuses plain text.
Browse and run CQL
Open a table from the sidebar to read it in the data grid. Lists, sets, maps and tuples show as collections, a user-defined type as its fields, a duration as 1d2h30m, a vector as a list of numbers and a blob as hex. Results in the CQL editor are read-only, so rows are changed from the table opened in the sidebar.
CQL has no OFFSET, so pages are read forward from the first row: Next and Previous over pages already shown cost one read each, and a jump to a distant page reads every page before it. Rows arrive in token order, and a column header does not re-sort them, because CQL orders rows only by clustering columns inside one partition. Nothing is counted when a table opens; Count Exactly runs SELECT COUNT(*), which reads every partition.
Filters add ALLOW FILTERING, so the server reads every partition unless the filter pins the whole partition key. Contains, starts with and ends with are sent as LIKE, which Cassandra accepts only on a column with a SASI or SAI index. Operators CQL cannot express, such as not equals or is NULL, are refused by name, and conditions join with AND only, because CQL has no OR.
An edited value is sent as its column’s CQL type, and a value that does not parse stops the whole save. Each row is written by its own statement, named by its full primary key. Add Row writes INSERT … IF NOT EXISTS, so a new row never overwrites one that already holds its key. A key column cannot be changed in place: delete the row and add it again.
Counter columns need UPDATE … SET c = c + 1 in the CQL editor; the server rejects the plain UPDATE a grid edit writes. The connect timeout comes from the connection’s Options, while CQL requests keep the driver’s own fixed timeout, which the app’s query timeout does not change.
Keyspaces and tables
The Structure tab lists each column’s CQL type, marks partition key and clustering columns alike as primary key, and shows the table’s secondary indexes. It adds and drops columns; every other change, indexes included, is a CQL statement in the editor.
The DDL tab rebuilds CREATE TABLE from the column list, so it leaves out table options such as compaction, the clustering order and the split between partition and clustering keys. Read the full definition with DESCRIBE TABLE in cqlsh. User-defined functions and aggregates are listed under Functions.
Move data
TablePro has no import for Cassandra or ScyllaDB. Export a table or a CQL result as CSV, JSON, SQL, XLSX, Markdown, HTML and XML.
iPhone and iPad
The iPhone and iPad app has no Cassandra driver. Cassandra connections synced from a Mac appear in its list but do not open.
Limits
- Only scalar columns can be edited in the grid. Collections, tuples, user-defined types and durations need an UPDATE in the editor.
- There is no consistency-level setting. Statements run at the driver’s default, LOCAL_ONE.
- DataStax Astra DB does not connect, because its secure connect bundle cannot be loaded.
- Materialized views and user-defined types are not listed in the sidebar.
ScyllaDB
Default port 9042Downloads on first useiPhone and iPad: Does not open
ScyllaDB has its own entry in the connection type list and uses the Cassandra driver over the same CQL native protocol, so connecting, browsing, editing and the limits above apply as written. A scylladb:// or scylla:// URL creates a ScyllaDB connection.
One difference shows in the filter bar: ScyllaDB takes the LIKE that contains, starts with and ends with send on any column, where Cassandra needs a SASI or SAI index. ScyllaDB is set up as the Cassandra setup guide describes.
Questions about Cassandra
Does TablePro show node or ring status?
No. There is no Server Dashboard for Cassandra or ScyllaDB. Check nodes with nodetool status, and use TablePro for keyspaces, tables and CQL.
How do I see materialized views and user-defined types?
They are not in the sidebar, so query the system_schema keyspace in the CQL editor, for example SELECT * FROM system_schema.views or system_schema.types.
Does TablePro connect to Cassandra 2.x?
No. The driver reads the schema from system_schema, which Cassandra 2.x does not have, so the connection fails.
Get TablePro
Requires macOS 13 Ventura or later