> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tablepro.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Settings

> All settings categories with their purpose and where to find each tab.

# Settings

Open with `Cmd+,`. Settings are grouped into tabs.

<CardGroup cols={2}>
  <Card title="General" icon="gear" href="/customization/settings#general">Language, updates, query timeout, restore session.</Card>
  <Card title="Appearance" icon="palette" href="/customization/appearance">Theme, accent colour, sidebar.</Card>
  <Card title="Editor" icon="code" href="/customization/editor-settings">Font, Vim mode, line numbers, JSON viewer.</Card>
  <Card title="Keyboard" icon="keyboard" href="/features/keyboard-shortcuts#customizing-shortcuts">Custom shortcuts.</Card>
  <Card title="AI" icon="sparkles" href="/customization/settings#ai">Providers, chat modes, custom slash commands, context, per-connection rules.</Card>
  <Card title="Terminal" icon="terminal" href="/features/terminal#settings">Font, theme, CLI paths.</Card>
  <Card title="MCP" icon="network-wired" href="/features/mcp#enabling-the-server">Server config, tokens, activity log, connected clients.</Card>
  <Card title="Plugins" icon="puzzle-piece" href="/customization/settings#plugins">Manage drivers and exporters.</Card>
  <Card title="Account" icon="user" href="/features/icloud-sync">License, iCloud sync, linked folders.</Card>
</CardGroup>

## General

### Language

System (default), English, Tiếng Việt, Türkçe, 简体中文, 繁體中文. Changing the language requires restarting TablePro.

### Startup Behavior

| Option                            | Description                                                                |
| --------------------------------- | -------------------------------------------------------------------------- |
| **Reopen Last Session** (default) | Restore the windows, tabs, and view state from your last session on launch |
| **Show Welcome Screen**           | Display the welcome screen with recent connections                         |

Reopened tabs restore their SQL, cursor position, applied sort, filters, page, and column widths. Connections reconnect lazily on first interaction, so a missing or unreachable database does not block launch. See [Tab Persistence](/features/tabs#tab-persistence) for the full list of restored state.

### Query Execution Timeout

Maximum seconds a query runs before cancellation. Default 60, range 0-600 (0 means no limit).

Enforced at the database level where supported: `statement_timeout` (PostgreSQL), `max_execution_time` (MySQL, ClickHouse), `max_statement_time` (MariaDB), `sqlite3_busy_timeout` (SQLite). HTTP-based drivers (ClickHouse, BigQuery, CloudflareD1, LibSQL, Etcd, DynamoDB) also bound the HTTP request timeout to the configured value plus a 30-second grace, so the server-side error fires first. Setting "No limit" raises the HTTP transport ceiling to 1 hour. Applies on new connections; change requires reconnect.

### Software Update

| Setting                             | Default | Description               |
| ----------------------------------- | ------- | ------------------------- |
| **Automatically check for updates** | On      | Periodic background check |
| **Check for Updates...**            | -       | Check now                 |

Powered by [Sparkle](https://sparkle-project.org/). Also available from the **TablePro** menu.

### Privacy

| Setting                        | Default | Description                                                     |
| ------------------------------ | ------- | --------------------------------------------------------------- |
| **Share anonymous usage data** | On      | OS version, architecture, locale, database types every 24 hours |

No queries or database content is transmitted.

### Query History

| Setting               | Default | Description                      |
| --------------------- | ------- | -------------------------------- |
| **Max Entries**       | 10,000  | `0` = unlimited                  |
| **Max Days**          | 90      | `0` = keep forever               |
| **Auto Cleanup**      | On      | Remove old entries automatically |
| **Clear All History** | -       | One-click wipe                   |

### Tabs

| Setting                                 | Default | Description                                                                      |
| --------------------------------------- | ------- | -------------------------------------------------------------------------------- |
| **Reuse clean table tab**               | Off     | Click a new table to replace the current tab if untouched                        |
| **Enable preview tabs**                 | On      | Single-click opens a preview tab; double-click or interaction makes it permanent |
| **Group all connections in one window** | Off     | Force all tabs into one window regardless of connection                          |

A tab is "clean" when it's a table tab (not query/create), unpinned, no unsaved changes, and no interactions (sort, filter, selection).

## AI

The **AI** tab configures providers and chat behavior. See [AI Assistant](/features/ai-assistant) for usage. The tab has these sections.

### Enable AI Features

Master switch. Turning it off hides every other AI section in this tab and disables chat, inline suggestions, and editor actions.

### Active Provider

The provider used by default. Override it per turn from the model picker in the chat composer.

### Providers

List of configured providers. Click a row to open its detail sheet, or pick **Add Provider…** to add one. The choices are GitHub Copilot (OAuth device flow), ChatGPT (sign in with your subscription), Claude, OpenAI, OpenRouter, Gemini, Ollama (no auth, local), and a custom OpenAI-compatible endpoint.

API keys and ChatGPT tokens are stored in the macOS Keychain. Removing a provider deletes its key.

### Inline Suggestions

| Setting                                    | Default | Description                                                                 |
| ------------------------------------------ | ------- | --------------------------------------------------------------------------- |
| **Enable inline suggestions while typing** | Off     | Show ghost-text completions in the SQL editor. Requires an active provider. |

With Copilot active, suggestions come from Copilot's inline-completion model. With any other provider, they come from chat completions.

### Context

Controls what the AI sees automatically each turn. New installs default all three toggles to **off**, so the AI sees only what you attach with `@` mentions or what tools pull in.

| Setting                     | Default | Description                                                     |
| --------------------------- | ------- | --------------------------------------------------------------- |
| **Include database schema** | Off     | Auto-attach the active connection's schema                      |
| **Include current query**   | Off     | Auto-attach the active editor tab's text                        |
| **Include query results**   | Off     | Auto-attach the most recent query result snapshot               |
| **Max schema tables**       | 20      | Cap on tables formatted into the schema attachment, range 1-100 |

Existing installs keep their previous values.

### Custom Slash Commands

Add, edit, or delete user-defined slash commands. Each command has a name, an optional description, and a prompt template.

Templates support these placeholders, substituted at send time:

* `{{query}}`: the current editor query.
* `{{schema}}`: the formatted schema for the active connection (capped by **Max schema tables**).
* `{{database}}`: the active database name.
* `{{body}}`: text typed after the command in the composer (e.g. `/review WHERE clauses` passes `WHERE clauses`).

Save needs a name and a non-empty template.

### Privacy

| Setting               | Default       | Description                                                                                         |
| --------------------- | ------------- | --------------------------------------------------------------------------------------------------- |
| **Connection policy** | Ask Each Time | Default AI policy applied to new connections. Per-connection overrides live in the connection form. |

For per-connection AI rules (system-prompt additions tied to a specific database), see [Per-connection AI rules](/features/ai-assistant#per-connection-ai-rules). Those are configured in the connection form, not here.

## MCP

The **MCP** tab covers the [External API](/external-api/index) surface. The server lazy-starts on first use and exposes the following sections:

* **MCP Server**: enable toggle and live status. The server runs on a free port in the `51000-52000` range. See [MCP Server](/features/mcp).
* **MCP Configuration**: row limit defaults, query timeout, "log MCP queries in history".
* **Authentication**: list, create, and revoke bearer tokens. Issued by the [pairing flow](/external-api/pairing) or generated manually. See [Tokens](/external-api/tokens).
* **Activity Log**: every authentication, tool call, and resource read with token, category, action, connection, and outcome. 90-day retention. Backed by `~/Library/Application Support/TablePro/mcp-audit.db`.
* **Network**: remote access toggle, TLS certificate, fingerprint, and PEM export.
* **MCP Setup**: one-click config snippets for Claude Code, Claude Desktop, and Cursor.
* **Connected Clients**: live list of MCP clients connected to the server.

## Plugins

Manage database driver and exporter plugins from **Settings** > **Plugins**. Split-view: list on the left, details on the right.

* **Installed**: built-in (MySQL, PostgreSQL, SQLite, ClickHouse, SQL Server, Redis, CSV, JSON, SQL) plus user-installed plugins. Toggle on/off in the detail pane.
* **Browse**: install drivers from the registry (MongoDB, DuckDB, Oracle, Cassandra, Etcd, Cloudflare D1, DynamoDB, BigQuery, libSQL).
* **Sideload**: click **+** or drag a `.tableplugin` / `.zip` onto the view. TablePro verifies the code signature.

Built-in plugins can be disabled but not uninstalled.

<Warning>
  Only install plugins from sources you trust. Code-signature checks do not guarantee plugin behavior.
</Warning>

## License & Account

Activate, deactivate, or view your license under **Settings** > **Account**. Validation is local (cryptographic signature) and re-checks every 7 days. iCloud sync, linked folders, and account info live on the same tab. See [iCloud Sync](/features/icloud-sync).

## Data Grid

Data grid font, row height, date format, NULL display, page size, row count estimation, and default row sort live on the **Editor** tab. See [Data Grid](/features/data-grid) for usage and behavior.

## Settings Storage

```
~/Library/Preferences/com.TablePro.plist
```

Reset to defaults:

```bash theme={null}
rm ~/Library/Preferences/com.TablePro.plist
rm -rf ~/Library/Caches/com.TablePro
```

<Warning>
  Resetting preferences does not affect saved connections or query history.
</Warning>

## Defaults via `defaults write`

Advanced flags not exposed in the UI:

| Setting                | Command                                                            |
| ---------------------- | ------------------------------------------------------------------ |
| Custom plugin registry | `defaults write com.TablePro com.TablePro.customRegistryURL <url>` |
| Clear custom registry  | `defaults delete com.TablePro com.TablePro.customRegistryURL`      |
