> ## Documentation Index
> Fetch the complete documentation index at: https://ngquct-feat-table-properties-tab.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

Pick a database type badged **Not Installed** in the chooser and the download runs before the connection opens, with no restart.

Five drivers ship inside the app and cover nine databases. Eighteen registry plugins cover the
other twenty and install on the first connection that needs one. See
[Plugins & Themes](/features/plugins).

## 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

To browse the catalog instead of waiting for a connection to need something, open **Settings > Plugins > Browse** and filter by category: Database Drivers, Export Formats, Import Formats, Themes, Other.

<Frame caption="Browse and install plugins from the registry">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-feat-table-properties-tab/_2_qUMjhJjodseBd/images/settings-plugins-browse.png?fit=max&auto=format&n=_2_qUMjhJjodseBd&q=85&s=4a46d7a72d71d40a7bda9be742936e65" alt="Plugin registry browser in Settings" width="1442" height="1178" data-path="images/settings-plugins-browse.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-feat-table-properties-tab/_2_qUMjhJjodseBd/images/settings-plugins-browse-dark.png?fit=max&auto=format&n=_2_qUMjhJjodseBd&q=85&s=0c9f418279eea0007b2830d59d46f2d1" alt="Plugin registry browser in Settings" width="1444" height="1180" data-path="images/settings-plugins-browse-dark.png" />
</Frame>

On a Mac with no network, install from a file: drag a `.tableplugin` or `.zip` onto **Installed**, or click the **+** button there. User-installed plugins live in `~/Library/Application Support/TablePro/Plugins`.

Every plugin is verified before it loads. A registry download 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 discards the plugin if you decline. Unsigned and ad-hoc signed bundles are refused outright, with no override.

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 per developer, not per plugin, so later plugins and updates from the same developer install without asking again. Withdraw it in **Settings > Plugins** to stop 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

The Plugins settings tab carries a badge counting pending updates and plugins that failed to load. Select a plugin under **Installed** to see its installed version, then 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 itself: at launch it reinstalls a compatible build of each outdated plugin, retrying in the background if the registry is unreachable. 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**:

* The switch beside a plugin's name unloads its drivers and formats without deleting it. Switch it back on to reload.
* **Uninstall** removes a user-installed plugin from disk. Bundled plugins cannot be uninstalled.
* The detail pane shows version, bundle ID, capabilities, database type, and default port. Plugins with their own settings show them here.

macOS cannot fully unload a plugin's code until relaunch, so a banner offers **Quit & Reopen** after you remove one.

Saved connections survive either way. A connection whose driver is switched off or uninstalled stays in the list, and opening it lands on "Could not connect", with **Install Plugin…** as the button.

## 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

To build your own driver, format, or theme, see [Plugin Development](/development/plugin-development).
