> ## Documentation Index
> Fetch the complete documentation index at: https://ngquct-fix-license-sync-presentation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Licensing

> Activate and deactivate a license key, what each tier includes, and how offline validation works

You never have to buy TablePro to keep using it, and nothing counts down. A license adds the features in the table, and purchase, renewal, and billing all happen on [tablepro.app](https://tablepro.app/#pricing) rather than in the app.

## Tiers

There are two tiers, Starter and Team. Team includes everything in Starter.

| Feature                                                                    | Required tier | Without a license                  |
| -------------------------------------------------------------------------- | ------------- | ---------------------------------- |
| [iCloud Sync](/features/icloud-sync)                                       | Starter       | Dimmed, with a **PRO** badge       |
| [Encrypted connection export](/features/connection-sharing)                | Starter       | Dimmed, with a **PRO** badge       |
| [Environment variables in connection fields](/features/connection-sharing) | Starter       | References stay unresolved         |
| [Linked Folders](/features/connection-sharing)                             | Starter       | Dimmed, with a **PRO** badge       |
| [Query Insights](/features/query-insights)                                 | Starter       | Overlay with **Activate License…** |
| [Result charts](/features/data-grid#chart-mode)                            | Starter       | Overlay with **Activate License…** |
| [Compare & Sync](/features/compare-sync)                                   | Starter       | Dialog naming the requirement      |
| [Team Catalog](/features/connection-sharing)                               | Team          | Menu item hidden                   |
| [Team Library](/features/team)                                             | Team          | Menu item hidden                   |

On a Starter license, the two Team features offer **Upgrade Plan** instead. Everything else in the app works.

Click a **PRO** badge for the pricing page, or hover it for one line on what the feature does.

## Buy a license

Choose **Help > Support TablePro**. The screen states how the project is funded and carries two actions: **Buy a License** opens the pricing page, **Sponsor on GitHub** opens [the sponsorship page](https://github.com/sponsors/datlechin). Both open in your default browser.

<Frame caption="Help > Support TablePro, with no license active">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-fix-license-sync-presentation/IRZmQdZ7Cs6fa93N/images/support-window.png?fit=max&auto=format&n=IRZmQdZ7Cs6fa93N&q=85&s=d2ce44181a915225ff83d0c2a1f430f7" alt="A window stating the funding model above a Buy a License button and a Sponsor on GitHub button" width="920" height="592" data-path="images/support-window.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-fix-license-sync-presentation/IRZmQdZ7Cs6fa93N/images/support-window-dark.png?fit=max&auto=format&n=IRZmQdZ7Cs6fa93N&q=85&s=7afb45d24ec71047003a916a77cfe6de" alt="A window stating the funding model above a Buy a License button and a Sponsor on GitHub button" width="920" height="592" data-path="images/support-window-dark.png" />
</Frame>

Prices, renewals, and invoices live on tablepro.app. With a license already active, the screen drops the purchase action and keeps the sponsorship one.

Until then, **Support TablePro** also sits at the bottom of the welcome window and in the sidebar footer of every connection window. Both open the same screen, and both disappear once a license is active. Nothing else in the app raises the subject: no prompt at launch, no countdown, no banner.

## Activate

Open **Settings > Account** (`Cmd+,`), paste your license key (`XXXXX-XXXXX-XXXXX-XXXXX-XXXXX`), and click **Activate**.

The welcome window has an **Activate License** link to the same dialog, and shows a green **Pro** badge once a license is active. The badge turns orange when the license has not been checked in 30 days; the link does not come back, because activating again cannot help a Mac that is offline. The field also takes a team invite code, which TablePro tells apart from a key on its own. See [Team Plan](/features/team).

<Frame caption="License section in Settings > Account">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-fix-license-sync-presentation/vkDAkDCWeEkNG-pZ/images/license-settings.png?fit=max&auto=format&n=vkDAkDCWeEkNG-pZ&q=85&s=efbc9bd864ff10c7b659289c30fae2e1" alt="License settings showing email, masked key, status, tier, and activations" width="1560" height="960" data-path="images/license-settings.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-fix-license-sync-presentation/vkDAkDCWeEkNG-pZ/images/license-settings-dark.png?fit=max&auto=format&n=vkDAkDCWeEkNG-pZ&q=85&s=b371acc9825e6d1de1b26b2cfe087d65" alt="License settings showing email, masked key, status, tier, and activations" width="1560" height="960" data-path="images/license-settings-dark.png" />
</Frame>

Once active, the Account tab shows your email, a masked license key, status, expiry date or Lifetime, tier, and billing cycle.

## Activations

A license binds to each Mac it is activated on through a hashed hardware ID. The **Activations** section lists every activated Mac with its app and macOS version, marks this one, and counts them against the limit your plan sets on tablepro.app.

Activating one Mac too many fails with "This license has reached its activation limit. Deactivate another Mac first." Freeing a slot means clicking **Deactivate…** in **Settings > Account** on the Mac you are giving up, before you wipe or sell it: the list in the app is read-only, so no Mac can release another. If the machine is already gone, ask for the slot back through [GitHub issues](https://github.com/TableProApp/TablePro/issues).

Deactivating with the license server unreachable still removes the license from that Mac, but the slot may stay occupied until it expires on the server.

## Validation and offline use

Activation stores a signed license on your Mac, and the license key goes to the macOS Keychain.

* Every launch re-verifies the signature offline, with no network. Tier, status, and expiry all come from the signed license, so editing the copy on disk changes nothing.
* Every 7 days the app re-validates with the license server in the background.
* If the server is unreachable, the license keeps working for 30 days after the last successful validation. After that the status becomes Validation Failed, shown in orange rather than red, and Pro features pause until a validation succeeds. Nothing in that state asks for a license key: the way out is a working connection.
* If the server answers that the license is suspended, expired, or no longer activated on this Mac, Pro features pause at that check. The 30-day grace period only covers a server TablePro could not reach.

**Check Status** in **Settings > Account** re-validates on demand, and a gated screen offers **Retry Validation**. When a license expires within 7 days, the Account tab shows a renewal warning linking to tablepro.app.

## What syncs

Activations never sync. Each Mac takes its own slot, and a license restored from another Mac's backup is cleared on launch. Team seats, invites, and member roles are managed on tablepro.app; see [Team Plan](/features/team).
