+
Fire-and-forget actions, built by your agent or by you.
Run them anywhere with ⌥C.
"You did in a very short time what Apple Intelligence failed to deliver." @nemuro87 on r/LocalLLM
Cai is a free, open-source AI action layer for macOS. Select any text or image, press ⌥C, and instantly run custom actions: AI prompts, terminal scripts, URL shortcuts, summaries, translations, OCR, GitHub issues, Linear tickets. Cai is also an MCP server: coding agents like Claude Code, Cursor, and Codex can author actions over MCP. The agent can only propose. Every action waits for your approval as a reviewable diff, then runs locally from ⌥C with no agent and no tokens involved. Save chains of actions: pipe a selection through an AI prompt, a script, and a destination (Slack, webhook, AppleScript, Apple Shortcut) with one keystroke. Named secrets stay in the macOS Keychain, never visible to the model or the agent. Unlike clipboard managers, Cai acts on your selection, not just stores it. Unlike AI chat apps, it works inline without app switching. Ships with a built-in local AI model (Ministral 3B via MLX). No API key, no account, no setup. Also supports Apple Intelligence on macOS 26+, LM Studio, Ollama, and cloud APIs. Local by default. Cloud optional. MIT licensed.
Three steps. One shortcut. Zero app switching.
Press ⌥C anywhere. Your selection is your input: an error log, a screenshot. Nothing selected? Just type.
Pick an action, done. Cai surfaces the right actions for your content. Pin favorites to ⌘1–9, type to filter.
Send results anywhere. Copied, pasted over your selection, or piped into Slack, Notes, any app.
Let your agent build your actions, from one-shot prompts to full pipelines, and route results anywhere. The agent can only propose: you approve every action as a diff before it runs.
If your agent can build it, Cai can run it.
Pipe a selection through AI, scripts, destinations, and Apple Shortcuts (in any order). Save the chain once, run it anywhere.
⌥CTranslate in place
⌥CURL to Discord TLDR
⌥CStack trace to ticket
Cai reads what you selected (meetings, addresses, code, images) and surfaces the right actions automatically.
Stay in flow. Stay private. Make it yours.
Agent proposals arrive as a diff. Capability chips show what each action can really do.
Results appear right where you are. No tabs, no copy-paste loops.
Take a screenshot or copy an image. Cai extracts the text, then runs any action on it.
All processing stays on your machine. Want a cloud provider? Your choice.
Actions reach real Mac apps: Calendar, Contacts, Reminders, anything AppleScript can script.
Search, pin, and reuse your last 100 clipboard items.
Use our built-in model, load any model from the HuggingFace MLX community, connect to a local server, or use a cloud provider like OpenRouter.
Select some text, let Cai do the rest.
Use AI without switching apps.
Yes. Cai is free and open source: no subscription, no account, no per-run tokens on the built-in local model. If you choose to use a cloud model (like OpenAI or OpenRouter), you'll need their API key, but the app itself is free.
Clipboard managers store what you copy; Cai acts on it. Chat apps make you switch windows; Cai runs directly on your selection, in any app. And it's built for your coding agent: actions proposed over MCP, approved by you as a diff, then run from ⌥C without the agent on the local model by default, so runs cost nothing.
Detailed comparisons: vs Maccy, vs ChatGPT, vs Raycast, vs Bolt AI, vs Alter.
Almost anything. GitHub and Linear are built-in connectors (paste a token, done). Anything with a CLI works through shell actions: gh, kubectl, jq, ffmpeg, whatever Homebrew installed. Destinations reach the rest: webhooks (Slack, Notion), AppleScript (Things, OmniFocus), deeplinks (Bear, Obsidian), and Apple Shortcuts.
Three ways. Build them by hand in Settings → Actions (AI prompts, URL templates, shell scripts, webhooks, and more). Let your coding agent write them: connect Claude Code, Cursor, Codex, or any MCP-capable agent from Settings → Connections → Agents, describe what you want, approve the proposed action, and it runs from ⌥C without the agent in the loop. Prompt actions default to the built-in local model, so they cost nothing. Or install one from community extensions.
Guides: custom actions · agent-authored actions.
Yes. Save a chain like "selection → fetch URL → summarize → send to Slack" and run the whole pipeline with ⌥C. Chain any combination of AI prompts, terminal scripts, custom destinations, and Apple Shortcuts in any order. One keystroke, multi-step. Full syntax and recipes in the Action Chains guide.
No. Shell actions, URL templates, webhooks, deeplinks, and Apple Shortcuts all run without any model involved. The AI actions are there when you want them, on the built-in local model by default.
Yes. The built-in models, Apple Intelligence, and local LLM providers all run on-device, so AI actions work without internet. Actions that call the network (connectors, webhooks, URL fetches) still need it, as you'd expect.
Yes. By default everything runs locally and nothing leaves your Mac; cloud models are opt-in. Agents can only propose: every action arrives as a reviewable diff with the risky parts flagged, and secrets stay in the macOS Keychain, the agent only ever sees a {{secrets.NAME}} placeholder. Details in the agent-authored actions and secrets docs.
Cai ships with Ministral 3B, Qwen 2.5 7B, Apple Intelligence on macOS 26+, local servers (LM Studio, Ollama), and cloud APIs: Anthropic, OpenRouter, or any OpenAI-compatible endpoint. You can also load any MLX model from the HuggingFace MLX community. More info in our docs.
Because your hand is already there. ⌘C to copy, ⌥C to act on it. Same finger position, new capability. One modifier key away from muscle memory you already have.
If ⌥C conflicts with something you use, you can change it in Settings → General → Hotkey.
Cai uses the system hotkey ⌥C to copy your selected text via a simulated ⌘C. macOS requires Accessibility access for apps that interact with system-level keyboard commands. This is what lets Cai work in every app, from Safari to Slack to Terminal. Everything else (Calendar, Contacts, Reminders) is only requested when an action first needs it, never up front.
To enable it, open System Settings → Privacy & Security → Accessibility and toggle Cai on.