Setting up AI
Connect your own LLM provider — OpenAI, Anthropic, Gemini, OpenRouter, DeepSeek, Copilot or local Ollama — with keys stored in your OS keychain.
Tablyne’s AI features are bring-your-own-key: you connect your own LLM provider, and Tablyne never proxies your traffic through a server of ours.
How it works
Tablyne talks to your provider’s HTTP API directly from the desktop app. Nothing routes through Tablyne’s infrastructure — the request goes from your machine to the endpoint you configure. You bring your own account and your own key, so usage is billed by your provider, not by us.
You configure one or more providers in Settings → AI (the gear icon, AI tab). Each provider is an independent card with its own host, subpath, model and API key, and you pick one as the default.
Provider presets
Click Add provider and choose a preset to scaffold a card with sensible defaults. Tablyne ships eight presets spanning three API kinds:
| Preset | API kind | Default host | Subpath |
|---|---|---|---|
| OpenAI | openai | https://api.openai.com | /v1/chat/completions |
| Anthropic | anthropic | https://api.anthropic.com | /v1/messages |
| Google AI | gemini | https://generativelanguage.googleapis.com | /v1beta/models |
| OpenRouter | openai | https://openrouter.ai | /api/v1/chat/completions |
| DeepSeek | openai | https://api.deepseek.com | /v1/chat/completions |
| GitHub Copilot | openai | https://api.githubcopilot.com | /chat/completions |
| Ollama (local) | openai | http://localhost:11434 | /v1/chat/completions |
| Custom | openai | (empty) | (empty) |
The three API kinds describe the wire format Tablyne uses:
openai— Chat Completions format. Used by OpenAI, OpenRouter, DeepSeek, Copilot, Ollama and most OpenAI-compatible gateways.anthropic— the Messages API (x-api-key+anthropic-versionheaders).gemini— Google’sgenerateContentendpoint, with the key passed as a query parameter.
Because so many gateways speak the OpenAI format, the Custom preset (kind openai) is the catch-all: point its host and subpath at any compatible endpoint.
Custom host, subpath and model
Every field on a provider card is editable, even on presets:
- Host — the base URL (e.g.
https://api.openai.com). A trailing slash is trimmed automatically. - Subpath — the path appended to the host (e.g.
/v1/chat/completions). - Model — pick from the preset’s known model ids, or choose custom… to type any model string (e.g. a self-hosted model name).
This makes it easy to target a proxy, an enterprise gateway, or a model that isn’t in the preset list. The full request URL is simply host + subpath (Gemini additionally appends /{model}:generateContent).
Default provider
One provider is always the default, marked with a star. The default is used by:
- the AI query panel in the search bar (you can still switch provider per query), and
- the AI bulk transform panel.
Select the Default radio on a card to change it. Remove the default and Tablyne promotes the next card automatically.
Keychain storage
API keys are never written to disk in plaintext and are not stored in the Tablyne config file. When you type a key into a provider card, Tablyne saves it to your operating system’s secure credential store via the OS keychain:
- macOS — Keychain
- Windows — Credential Manager
- Linux — the Secret Service (e.g. GNOME Keyring / KWallet)
Each key is stored under the service ai.tablyne with an account derived from the provider’s id. Clearing the field or removing the provider deletes the entry. Only provider metadata (name, host, subpath, model) lives in the app’s local settings — the secret stays in the keychain.
Keyless local Ollama
Local providers don’t need a key. Tablyne only requires an API key when the host uses HTTPS; an Ollama provider pointed at http://localhost:11434 is considered ready as soon as it exists. Run a model locally and the AI panel works with zero key configuration:
ollama pull qwen2.5-coder
ollama serve
Then add the Ollama (local) preset and pick a model such as llama3.2, qwen2.5-coder, deepseek-r1 or mistral.
Privacy: only schema is sent
Tablyne is deliberately conservative about what leaves your machine. When you ask the AI to generate a query or a transform, the request includes:
- the table name,
- the partition key and sort key names,
- the list of known attribute names, and
- your natural-language prompt.
No item data — no row values — is ever sent to the model. The AI sees the shape of your table, not its contents. The generated output is returned to the app, where it runs entirely locally (see AI query generation and AI bulk transforms).