API Chat Documentation v1.7.0

πŸ“¦ Installation

  1. Download APIChat.dmg (3.8 MB).
  2. Open the DMG and drag API Chat into Applications.
  3. Launch it from Applications or Spotlight.
πŸ›‘οΈ
The app is code-signed with a Developer ID and notarized by Apple β€” macOS opens it without any warning. Requires macOS 14 (Sonoma) or newer; runs on Apple Silicon and Intel.

πŸ’¬ Your first chat

When you first open API Chat you land on the welcome screen. Two ways to get talking in under a minute:

Option A β€” cloud provider

  1. Pick a provider from the toolbar menu (Anthropic is selected by default).
  2. Paste your API key in the inline field β€” a direct link to each provider's key console is provided.
  3. Type and press ⏎. Answers stream in real time with live token & cost accounting.

Option B β€” 100% local, no key at all

  1. Open Settings β†’ Local MLX (⌘,).
  2. Click Install Engine (one click β€” the app bootstraps mlx-lm via uv).
  3. Download a model from the built-in library (start with Qwen3 4B, 2.3 GB).
  4. Select the MLX Local πŸ”₯ provider and chat β€” free, offline, private.

πŸ”‘ API keys & security

Keys never leave your Mac. You choose the storage backend in Settings β†’ Providers:

BackendHow 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 KeychainStandard 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.

🌐 Providers & models

Eleven providers speak through two wire protocols (OpenAI-compatible SSE and Anthropic's native Messages API), all handled transparently:

ProviderFlagship modelsNotes
AnthropicClaude Opus 4.8, Sonnet 5, Fable 5, Haiku 4.5Native Messages API
OpenAIGPT-5.6 Sol / Terra / Luna, GPT-5.5 ProResponses API for the 5.6 family
GoogleGemini 3.5 Flash, 3.1 Pro, 2.5 ProOpenAI compatibility layer
xAIGrok 4.5, 4.3, Grok Build
DeepSeekV4 Pro, V4 FlashReasoning shown live 🧠
MistralLarge 3, Medium 3.5, Codestral, Devstral
Kimi (Moonshot)K2.7 Code, K2.6, K2.5
Qwen3.7 Max / Plus, Qwen3 Coder PlusDashScope intl
PerplexitySonar Pro, Sonar Reasoning ProWeb citations β†’ source chips
Cerebras / DeepInfraGPT-OSS 120B, GLM, Kimi, Llama…Open-weight hosting

Per-conversation controls

  • Style: Precise / Balanced / Creative (mapped to temperature where the model accepts it).
  • Custom temperature slider (0–2) with automatic detection of models that reject sampling params.
  • Occupations: reusable AI personas injected as system prompts.
  • Context mode: full history, last-N messages, or single-turn.
  • Per-message token counts and cost, plus per-conversation and global totals.

πŸ”₯ Local MLX models

API Chat embeds a full local inference stack for Apple Silicon, built on Apple's MLX framework β€” no Terminal required.

How it works

  1. The app installs the mlx-lm engine with one click (bootstrapped via uv, Python pinned automatically).
  2. You download models from a curated library of 20 mlx-community builds β€” from Qwen3 0.6B (0.4 GB) to Llama 3.3 70B (40 GB) β€” with live progress and resume.
  3. A local OpenAI-compatible server starts on demand the moment you send a message, and models load lazily.

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.

πŸ’‘
Models land in the standard Hugging Face cache (~/.cache/huggingface) β€” they're shared with any other MLX tooling you use, including MLX Forge.

Use the local server from your own code

While API Chat runs, the local server is a standard OpenAI endpoint:

bash
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!"}]}'

πŸ› οΈ Tools in chat

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.

The tool belt

  • Web β€” web_search, SerpAPI (Google/News/Scholar), Exa neural search, Firecrawl scrape/crawl/map.
  • Files β€” read, list, search, write, edit β€” scoped to folders you explicitly grant.
  • System β€” shell, AppleScript, Apple Shortcuts.
  • MCP β€” every tool from your connected Model Context Protocol servers.

Try the permission model

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.

πŸ”’
Safe defaults on first enable: web reading is Auto, local file reads Ask, anything that writes or executes stays Off until you opt in. Providers without function calling (Perplexity, local MLX) simply chat normally.

πŸ–ΌοΈ Vision input

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.

  • Images are auto-resized to 1568 px (the sweet spot for vision models) and re-encoded as JPEG to keep requests light; small PNGs (screenshots) pass through untouched for crisp text.
  • Works with Claude, GPT (incl. the Responses API), Gemini, Grok and every vision-capable provider.
  • Images persist in the conversation and are re-sent on follow-up turns, so you can keep asking about them.

πŸ€– Autonomous agents

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:

AgentWhat it does
πŸ”Ž Research AssistantSplits your question into sub-queries, cross-checks sources, answers with citations.
πŸ•·οΈ Site CrawlerMaps and crawls entire websites, answers strictly from their content.
πŸ‘· App BuilderScaffolds complete projects: writes every file, installs deps, builds, fixes errors.
πŸ—‚οΈ File OrganizerExplores granted folders and reorganizes them (writes ask first).
βš™οΈ Mac AutomatorDrives 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.

🧠 Memory

API Chat quietly learns durable facts β€” with your approval. After an exchange, candidate memories appear in a banner; keep or dismiss them.

  • Profile memories are always injected (who you are, how you like answers).
  • General memories are retrieved semantically (on-device Apple NLEmbedding β€” nothing leaves the Mac) when relevant.
  • Project memories are scoped to a conversation folder.

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.

🎨 Canvas artifacts

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:

  • Full version history with notes, revert and branch-on-edit.
  • Manual editing (a real text editor with undo) and AI editing β€” select a range, describe the change in plain language.
  • Live preview for HTML and Markdown, one-click copy or export to file.

β‘‚ Branching & sources

Hover any message for its action bar:

ActionOnEffect
✏️ Edit & ResendYour messagesRewrite the prompt β€” everything after is replaced by a fresh answer.
β‘‚ Fork from hereAny messageCopies the conversation up to that point into a new one (marked β‘‚) and switches to it. Explore alternatives without losing the original.
πŸ”„ RegenerateAny answerRe-answers from that point β€” not just the last message.
❀️ / πŸ”Š / πŸ“‹ / πŸ—‘β€”Like, speak aloud, copy, delete.

Clickable sources

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.

βŒ₯␣ Quick Chat panel

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.

  • Trigger words: /gpt raw prompt, /p name prompt-library template, /set opens Settings.
  • Hotkey, modifier and excluded apps are configurable in Settings β†’ Inline.

⌨️ Keyboard shortcuts

ShortcutAction
⌘NNew chat
⌘.Stop generating (also stops agents)
⌘RRegenerate last answer
βŒ₯SpaceQuick Chat panel (configurable)
βŒ˜β‡§βŒ«Delete current conversation
↑ / ↓Cycle your previous prompts in the empty composer
⏎ or ⌘⏎Send (configurable)

πŸ“€ Export & privacy

  • Export any conversation as Markdown, PDF, or ShareGPT JSON.
  • All data lives in ~/Library/Application Support/APIChat β€” plain JSON for conversations, encrypted blobs for keys and memory.
  • No account. No analytics. No crash reporting. The app's only network traffic is the API calls you make.

❓ FAQ

Is it free?
The app is a free download. Cloud providers bill your own API keys at their rates (live cost tracking built in) β€” or use local MLX models for $0.
Which Macs can run local MLX models?
Any Apple Silicon Mac. 8 GB runs 3–4B models; 16 GB handles 8–14B; 32 GB+ unlocks the 30B MoE class; 64 GB+ runs Llama 70B. The library shows RAM requirements before you download, and blocks the ones that don't fit.
Do I need Python for the MLX engine?
No. The app bootstraps everything through uv with a pinned Python β€” one click in Settings β†’ Local MLX, zero Terminal.
Can the model access my files?
Only if you enable file tools and grant folders explicitly through the macOS folder picker. Every access outside granted folders is refused, and you can require confirmation per call.
What's an MCP server?
Model Context Protocol β€” a standard for exposing tools to AI models. Add any stdio MCP server (GitHub, databases, custom ones) in Settings β†’ Agents; its tools become available to both agents and regular chat.
GPT-5.6 shows no temperature slider β€” bug?
No β€” reasoning-first models (GPT-5.x, Claude 4.7+) reject sampling parameters. API Chat detects this per model and omits the control instead of letting the request fail.