Help · Where the network goes, and your AI key
Where the network goes, and your AI key
Written for TableDI 2.0.0 on macOS · updated 2026-09-11
TableDI 2 does its work on your Mac. Reading files, applying rules, matching and writing the delivery all happen locally, and the engine inside the app only accepts connections from the app itself. Over the internet it makes four kinds of request, and nothing else:
- License — a check at
tabledi.comwhen you activate or move a license and about once a month after that, plus a small daily check-in that the free version sends too. - Updates — reading a version file from GitHub, 30 seconds after start and then once a day.
- Anonymous usage events — to
tabledi.com: which steps people reach, with no file names and no data. You can switch these off, and the daily check-in goes off with them. - Your AI provider — only if you save an API key, sent straight from your Mac with your key.
The first three never carry your files, file names or table contents. AI requests carry what the feature needs: column names, file names and a few rows — never more than the first 50 of a file — with long values cut short. We never see your key or what you send. There's no crash reporter.
The full list
| Where | What for | When | What's sent | Can you switch it off? |
|---|---|---|---|---|
tabledi.com/api/license |
Activating and checking your license | When you click Activate or Move to another machine; a check about 20 seconds after start when one is due — every 30 days while active, every few hours while checks are failing | Your license key, a hashed machine ID, the app version | No; nothing is sent before you activate |
tabledi.com/api/license/heartbeat |
A daily check-in, to count installs | About once a day, starting about 20 seconds after launch, free version included | The hashed machine ID, app version, platform (such as darwin-arm64), and whether it's free or paid |
Yes, together with anonymous usage events |
github.com/cooldk/tabledi2-releases |
Checking for a new version | 30 seconds after start, then once a day | An ordinary request for the version file; nothing of yours | Yes |
tabledi.com/_event |
Anonymous usage events | Collected on your Mac and sent in groups: every 5 minutes if any are waiting, and when you quit | Event names such as first_run, job_saved and first_delivery; a random install ID; app version, platform and language; a few coarse details such as the delivery format |
Yes |
| The Address in Settings → AI | AI | Only with a key saved, when an AI feature runs (below) | What that feature needs (below) | Remove the key |
- The hashed machine ID is a SHA-256 hash of your Mac's hardware ID, worked out once and stored. The hardware ID itself isn't sent. It's what ties a license to one computer.
- The install ID is a random number made when TableDI 2 first runs. It isn't derived from your hardware, isn't linked to your license, and isn't included in backups.
- Updates: TableDI 2 never downloads or installs anything on its own. New versions are on the download page.
Seeing it in the app
Settings → Where this app connects lists every destination, what it's for and the last time it was used — This is the whole list. Nothing else leaves your machine. The rows for GitHub and for the anonymous usage events have a switch, and the daily check-in follows the anonymous-events switch. The license row can't be switched off, and the AI row is on only while a key is saved.
Switching anonymous usage events off stops the events and the daily check-in. Events already waiting on your Mac are kept, and are only sent if you switch it back on.
Open the record of what was sent opens the log folder. The network-<date>.log files list each request: when, which host, what for, how many bytes, and the result — never the content. For AI requests, the entry also says what was sent, as file names with their counts of columns and rows. Logs are kept for 7 days.
AI: bring your own key
AI is optional, and every part of TableDI 2 works without it. Without a key you build jobs with the five-step form, and periods never use AI either way.
In Settings → AI:
- Address — your provider's base address. It starts as
https://api.openai.com/v1; for another provider, or a model running on your own computer, put its address here. It has to offer the OpenAI-style chat completions API. - Model — starts as
gpt-4o-mini. - Key — Kept in the system keychain, never in a file. It's encrypted with your Mac's keychain, and it isn't in the settings file, in backups or in the diagnostics bundle.
- Test it — sends a made-up example, not your data, to check the settings.
What you pay is between you and your provider; TableDI 2 adds nothing to it.
When AI requests are sent, and what's in them
| Where | When it's sent | What's in it |
|---|---|---|
| New job, second step | Once you've written what you need and added files, and again if you change them | Your sentence (up to 300 characters), each file's name, its column names and its first few rows — never more than 50 — with every value cut to 40 characters |
| Preflight, In one sentence | When the preflight is ready, if One-sentence summary on the preflight is on | The preflight's counts, file names and column names; no rows |
| Exceptions, Why this one didn't match | When you open an exception, if Explanation cards on exceptions is on | That row's values on both sides, cut to 40 characters, the column names, and how many rows share the cause |
| Rules, after Add a rule and preview | When you arrive from a group of exceptions | Up to five example rows from the group, cut to 40 characters, their column names, the job's steps and the group's size |
| Settings, Test it | When you click it | A made-up example row |
The two switches stop the automatic summary and explanation requests. Removing the key stops all of them.
What the model sends back is checked before it's used, and the numbers on AI cards are worked out by TableDI 2 on your data, not taken from the model. AI never runs a period, and never changes anything until you click Apply.
What your provider does with a request is governed by your agreement with them. If a job's data can't go to a third party, leave the key empty.
Diagnostics bundle
Export a diagnostics bundle, at the bottom of Settings, writes a zip to your Desktop: the logs from the last 7 days, your settings without the key, and machine details such as the version, platform and memory. Nothing is sent; you decide whether to email it to support.
Checking for yourself
If you use a firewall or network monitor that shows connections per app, TableDI 2 should reach only tabledi.com, github.com and the GitHub download host it redirects to, and your AI address if you've saved a key.
Still stuck? Email us — one inbox, read by the people who build TableDI.