When you first open API Chat you land on the welcome screen. Two ways to get talking in under a minute:
mlx-lm via uv).Keys never leave your Mac. You choose the storage backend in Settings β Providers:
| Backend | How it works |
|---|---|
| Encrypted file (default) | AES-GCM encryption with a key derived via SHA-256 from this Mac's hardware UUID + a local random salt. The file is unreadable on any other machine. |
| macOS Keychain | Standard Keychain items under the service com.apichat.app. Syncs with your Keychain policies. |
Switching backends migrates every stored key automatically. There is no account, no cloud sync, and no telemetry β the only network calls the app makes are the API requests you trigger.
Eleven providers speak through two wire protocols (OpenAI-compatible SSE and Anthropic's native Messages API), all handled transparently:
| Provider | Flagship models | Notes |
|---|---|---|
| Anthropic | Claude Opus 4.8, Sonnet 5, Fable 5, Haiku 4.5 | Native Messages API |
| OpenAI | GPT-5.6 Sol / Terra / Luna, GPT-5.5 Pro | Responses API for the 5.6 family |
| Gemini 3.5 Flash, 3.1 Pro, 2.5 Pro | OpenAI compatibility layer | |
| xAI | Grok 4.5, 4.3, Grok Build | |
| DeepSeek | V4 Pro, V4 Flash | Reasoning shown live π§ |
| Mistral | Large 3, Medium 3.5, Codestral, Devstral | |
| Kimi (Moonshot) | K2.7 Code, K2.6, K2.5 | |
| Qwen | 3.7 Max / Plus, Qwen3 Coder Plus | DashScope intl |
| Perplexity | Sonar Pro, Sonar Reasoning Pro | Web citations β source chips |
| Cerebras / DeepInfra | GPT-OSS 120B, GLM, Kimi, Llama⦠| Open-weight hosting |
API Chat embeds a full local inference stack for Apple Silicon, built on Apple's MLX framework β no Terminal required.
mlx-lm engine with one click (bootstrapped via uv, Python pinned automatically).mlx-community builds β from Qwen3 0.6B (0.4 GB) to Llama 3.3 70B (40 GB) β with live progress and resume.Models incompatible with your RAM are flagged before you download. Reasoning models (Qwen3, DeepSeek R1) show their chain of thought live as a quote block.
~/.cache/huggingface) β they're shared with any other MLX tooling you use, including MLX Forge.While API Chat runs, the local server is a standard OpenAI endpoint:
curl http://127.0.0.1:10240/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "mlx-community/Qwen3-14B-4bit",
"stream": true,
"messages": [{"role": "user", "content": "Hello!"}]}'
Enable Settings β Tools and regular conversations gain the full tool belt: the model can search the web, read files and call MCP servers mid-answer, streaming its reasoning around the results. Each call appears as a collapsible row in the transcript.
web_search, SerpAPI (Google/News/Scholar), Exa neural search, Firecrawl scrape/crawl/map.Every tool has its own permission. Click through the modes:
βΆοΈ The tool runs silently β results stream straight into the answer. Best for read-only web search.
Click the π paperclip and attach images β PNG, JPEG, HEIC, WebP, GIF, TIFF β alongside documents. They preview as thumbnails above the composer and are sent as native multimodal blocks.
Agents run a think β tool β observe loop for multi-step work β streamed live so you watch every word and tool call as it happens. Five ready-made agents ship with the app:
| Agent | What it does |
|---|---|
| π Research Assistant | Splits your question into sub-queries, cross-checks sources, answers with citations. |
| π·οΈ Site Crawler | Maps and crawls entire websites, answers strictly from their content. |
| π· App Builder | Scaffolds complete projects: writes every file, installs deps, builds, fixes errors. |
| ποΈ File Organizer | Explores granted folders and reorganizes them (writes ask first). |
| βοΈ Mac Automator | Drives macOS apps via AppleScript & Shortcuts, each action confirmed. |
Build your own in Settings β Agents: instructions, model, max steps (1β30), a per-tool permission map, and MCP servers. Agents are exportable/importable as JSON. File tools obey the Allowed Folders you grant via the system picker.
API Chat quietly learns durable facts β with your approval. After an exchange, candidate memories appear in a banner; keep or dismiss them.
Say βremember that β¦β to store something instantly. The whole store is AES-GCM encrypted on disk, searchable, pinnable, exportable, and erasable in one click. Each conversation has an incognito toggle π§ to opt out.
When a model produces something substantial β a code file, an HTML page, a long structured document β it's promoted to the Canvas, a side panel with:
Hover any message for its action bar:
| Action | On | Effect |
|---|---|---|
| βοΈ Edit & Resend | Your messages | Rewrite the prompt β everything after is replaced by a fresh answer. |
| β Fork from here | Any message | Copies the conversation up to that point into a new one (marked β) and switches to it. Explore alternatives without losing the original. |
| π Regenerate | Any answer | Re-answers from that point β not just the last message. |
| β€οΈ / π / π / π | β | Like, speak aloud, copy, delete. |
Web-grounded answers finish with a row of source chips β Perplexity citations and the URLs surfaced by web tool calls, deduplicated and clickable straight to the page.
Press β₯Space anywhere in macOS: a floating panel appears above whatever you're doing. Ask, get a streamed answer, then Copy or Paste into app β the reply is inserted right where your cursor was.
/gpt raw prompt, /p name prompt-library template, /set opens Settings.| Shortcut | Action |
|---|---|
| βN | New chat |
| β. | Stop generating (also stops agents) |
| βR | Regenerate last answer |
| β₯Space | Quick Chat panel (configurable) |
| ββ§β« | Delete current conversation |
| β / β | Cycle your previous prompts in the empty composer |
| β or ββ | Send (configurable) |
~/Library/Application Support/APIChat β plain JSON for conversations, encrypted blobs for keys and memory.uv with a pinned Python β one click in Settings β Local MLX, zero Terminal.