> ## Documentation Index
> Fetch the complete documentation index at: https://ngquct-feat-sql-code-folding.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Plugins & Themes

> Install database drivers, import and export formats, and themes from the plugin registry, and keep them updated.

TablePro loads database drivers, import/export formats, and themes as `.tableplugin` bundles. Five driver plugins ship inside the app and cover 9 databases; 17 more download on demand from the plugin registry.

## Bundled plugins

These ship with the app, update with app releases, and cannot be uninstalled:

| Plugin         | Provides                                         |
| -------------- | ------------------------------------------------ |
| MySQL          | MySQL, MariaDB                                   |
| PostgreSQL     | PostgreSQL, Amazon Redshift, CockroachDB, PGlite |
| SQLite         | SQLite                                           |
| ClickHouse     | ClickHouse                                       |
| Redis          | Redis                                            |
| Export formats | CSV, JSON, SQL, XLSX, MQL                        |
| Import formats | SQL, JSON, CSV                                   |
| CSV Inspector  | [CSV/TSV file editing](/features/csv-inspector)  |

## Registry plugins

These install from the registry when you need them:

| Plugin               | Provides               |
| -------------------- | ---------------------- |
| MongoDB              | MongoDB                |
| Oracle               | Oracle Database        |
| Dameng               | Dameng DM8             |
| Microsoft SQL Server | SQL Server             |
| DuckDB               | DuckDB                 |
| Cassandra            | Cassandra, ScyllaDB    |
| Etcd                 | etcd                   |
| Cloudflare D1        | Cloudflare D1          |
| DynamoDB             | DynamoDB               |
| BigQuery             | BigQuery               |
| Snowflake            | Snowflake              |
| libSQL               | libSQL, Turso          |
| Elasticsearch        | Elasticsearch          |
| SurrealDB            | SurrealDB              |
| Teradata             | Teradata Vantage       |
| Trino                | Trino                  |
| Beancount            | Beancount ledger files |

## Installing plugins

You usually don't install drivers by hand. The database type chooser marks registry drivers you don't have with a **Not Installed** badge; pick one anyway and TablePro downloads the plugin before connecting. No restart needed.

To browse the full catalog, open **Settings > Plugins > Browse**. Search, filter by category (Database Drivers, Export Formats, Import Formats, Themes, Other), and click **Install**.

<Frame caption="Browse and install plugins from the registry">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-feat-sql-code-folding/VLUDsoMaXL0TA-5F/images/settings-plugins-browse.png?fit=max&auto=format&n=VLUDsoMaXL0TA-5F&q=85&s=5c53cc31874ee71b807d64b6891db00e" alt="Plugin registry browser in Settings" width="1560" height="960" data-path="images/settings-plugins-browse.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-feat-sql-code-folding/VLUDsoMaXL0TA-5F/images/settings-plugins-browse-dark.png?fit=max&auto=format&n=VLUDsoMaXL0TA-5F&q=85&s=fb02fe78b9a6f16e731ecf3d45169cfc" alt="Plugin registry browser in Settings" width="1560" height="960" data-path="images/settings-plugins-browse-dark.png" />
</Frame>

To install from a file, drag a `.tableplugin` or `.zip` onto **Settings > Plugins > Installed**, or click the **+** button there. User-installed plugins live in `~/Library/Application Support/TablePro/Plugins`.

Every plugin is verified before it loads. Registry downloads must match the SHA-256 checksum in the registry manifest, and the bundle must carry a valid code signature.

### Plugins from other developers

A plugin TablePro signed itself installs with no extra step.

A plugin signed by someone else installs only after you agree to trust that developer. TablePro asks once, naming the developer and their Apple Team ID, and the plugin is discarded if you decline. The bundle must be signed with an Apple Developer ID to get that far; unsigned and ad-hoc signed bundles are refused outright and there is no way to override that. A Developer ID signature says Apple issued that certificate to a named developer and that nobody has altered the bundle since. It is not a review of what the plugin does, which is why the decision to trust the developer is yours and not something TablePro makes for you.

Say yes only if you would give that developer your database credentials, because that is what you are granting. A driver plugin runs as part of TablePro and can read the credentials of every connection you open.

Trust is recorded per developer rather than per plugin, so later plugins and updates from the same developer install without asking again. Withdraw it in **Settings > Plugins**, which stops every plugin signed by that developer from loading.

Themes are different: they are JSON with no executable code, so they need no signature and never ask. They are still checked against their SHA-256 checksum.

## Updates

TablePro compares installed plugin versions against the registry and shows a badge on the Plugins settings tab counting pending updates and plugins that failed to load. Select the plugin under **Installed** and click **Update**.

If a driver has open connections, the update is staged instead of applied. The staged version activates when the last connection using the driver closes, or click **Activate Now** after closing them. Quit before it activates and the update is offered again on next launch.

## After an app update

An app update can raise the plugin interface version. Plugins built against the old version are rejected at load instead of crashing, and TablePro repairs them on its own: at launch it fetches the registry and reinstalls a compatible build of each outdated plugin, retrying after 30 seconds, then 5 and 10 minutes (up to five attempts), when the registry is unreachable or a download fails. It tries again when the network comes back, and connecting to a database whose plugin is outdated updates that plugin first.

Until a plugin is repaired, it appears in a banner in **Settings > Plugins > Installed** with the reason and an action:

| Action              | Meaning                                                               |
| ------------------- | --------------------------------------------------------------------- |
| **Update Now**      | A compatible build is in the registry. One click installs it.         |
| **Update TablePro** | The plugin requires a newer app version.                              |
| No button           | No compatible build is published yet. TablePro retries automatically. |
| **Remove**          | Deletes the rejected plugin from disk.                                |

## Managing plugins

In **Settings > Plugins > Installed**:

* Toggle a plugin off to unload its drivers and formats without deleting it; toggle it back on to reload.
* Click **Uninstall** to remove a user-installed plugin from disk. Bundled plugins can't be uninstalled.
* The detail pane shows version, bundle ID, capabilities, database type, and default port. Plugins with their own settings show them here.

macOS can't fully unload a plugin's code until relaunch, so after removing one a banner offers **Quit & Reopen**.

## Themes

Themes are plugins too: install registry themes from **Settings > Plugins > Browse** under the Themes category. Choose, create, duplicate, import, and export themes in **Settings > Appearance**. See [Appearance](/customization/appearance).

## Writing plugins

Want to build your own driver, format, or theme? See [Plugin Development](/development/plugin-development).
