Configure a provider
Open Settings > AI (Cmd+,). Enable AI Features at the top gates the whole tab; turning it off also hides the per-connection AI policy in the connection form.

AI settings
1
Add the provider
Click Add Provider… and pick a type. Add Custom Provider… at the bottom takes any OpenAI-compatible endpoint.
2
Authenticate
Paste an API key, or sign in for GitHub Copilot, ChatGPT, Cursor, and xAI.
3
Pick a model and test
Type a model name or pick one from the fetched list, then click Test Connection.
Claude Agent
Install Claude Code, runclaude /login in Terminal, then pick Opus, Sonnet, or Haiku. Replies bill against your Claude subscription instead of an API key. The provider answers from your schema when the MCP server is on in Settings > Integrations, and falls back to plain chat when it is off.
The claude tool runs headless here. Claude Code is built for you to use directly rather than as a backend for other apps, so this path can break with any Claude Code release. Your subscription is governed by Anthropic’s Consumer Terms and Usage Policy, which TablePro cannot grant rights under. Replies also count against the limits you share with claude.ai and your own Claude Code sessions, so running out here stops your work there. For a metered path on commercial terms, add the Claude provider with an API key.
Chat
Open the inspector (Cmd+Option+I) and switch the segmented control at its top from Details to AI Chat. There is no dedicated chat shortcut or menu item.

AI chat panel
Chat modes
The mode picker in the composer footer controls which tools the AI can call. It is an app-level setting that survives restarts, and a fresh install starts in Ask.
Mode and Safe Mode are independent gates. Agent mode does not bypass Safe Mode.
Tool calling
In Edit and Agent modes each tool call appears as a card in the reply. Read-only tools run immediately. Write tools wait for Run, for Always for this connection (which whitelists that one tool on that one connection and syncs with it over iCloud), or for Cancel, which hands the model an error result and lets it carry on.
Per-card tool approval
confirm_destructive_operation always needs a click, Silent does not auto-approve it, Always for this connection is refused for it, and the model must pass the verbatim phrase I understand this is irreversible.
Every provider except Cursor can call tools. Claude Agent reaches them through the MCP server, so that has to be on, and local models depend on the model.
A reply pauses after 25 tool calls, keeps everything it has done, and offers Continue for a fresh budget or Adjust Limit to change the number, 5 to 200, under Agent in Settings > AI. Every call is another request with the schema attached, so a higher limit costs tokens.
Attach context with @
Type @ in the composer to open a picker at the caret: Schema, a specific Table, Current Query, Query Results, or a Saved Query (favorites). Return or Tab inserts, Escape dismisses. The @ button in the footer offers the same list minus saved queries. A saved query chip resolves at send time, so the AI sees its current SQL.
Slash commands
Type/ for /explain, /optimize, and /fix, which act on the active query, or /help for the list. Add your own under Settings > AI > Custom Slash Commands: a template substitutes {{query}}, {{schema}}, {{database}}, and {{body}}, the text typed after the command, at send time.
Model picker
The cpu icon beside the mode picker lists every configured provider and its models. A pick there overrides the active provider for this chat panel until you change it, across turns.Explain, optimize, and fix
Query > Explain with AI (Cmd+L) and Query > Optimize with AI (Cmd+Option+L) act on the whole query tab; the editor’s right-click menu has both and acts on the selection instead, appearing only when text is selected. When a query fails, Fix with AI on the inline error banner sends the query and the error. All three open a new conversation and send at once.
The reply comes back as a walkthrough. Optimize and Fix diff your query against the rewritten one, switchable between Unified and Split; Explain anchors its steps to the query as it stands. Each numbered step carries a one-line reason and a tag (Critical, Change, or Context), expands to the lines it refers to, and offers Jump to lines and Ask about this change, which keeps a follow-up anchored to that step. Apply to Editor replaces the editor content after you confirm; nothing is applied on its own. A model that answers in prose instead renders as a normal message.
Per-connection AI rules
Pin plain-text context to a connection so the AI sees it every turn: open the connection’s edit form and pick AI Rules in the sidebar. Use it for what the schema cannot show, likeAlways filter orders by deleted_at IS NULL or Never select users.ssn. The text joins the system prompt and syncs with the connection over iCloud.
Inline suggestions
Turn on Enable inline suggestions while typing in the AI tab; it is off by default. Pause typing and the active provider suggests a completion as ghost text at the cursor.Tab accepts, Escape dismisses, and typing anything else dismisses it too.
The pause is the Debounce setting beside the toggle: 500 ms by default, adjustable from 100 to 3,000 ms in 50 ms steps. With Copilot active the suggestions come from Copilot’s inline-completion model; every other provider serves them through chat completions.
What leaves your Mac
Every message carries a system prompt built from Settings > AI > Context, so these settings decide what the provider sees on every turn, not only the first.
Ollama, llama.cpp, and MLX run on your own machine, so nothing reaches a third party. Every other provider is a network call to that vendor under the terms of your account with them.
Per connection, the Advanced pane of the connection form sets an AI policy: Use Default, Always Allow, Ask Each Time, or Never. The app-wide default is Ask Each Time, and Never also blocks external AI tool calls against that connection. External clients such as Raycast and Claude Desktop reach the same tools through the External API, bounded by the connection’s External Clients level and the token’s scope.




