+ Cai — Local AI Action Layer for macOS | Free & Open Source

Act on anything. Locally.

Fire-and-forget actions, built by your agent or by you.
Run them anywhere with ⌥C.

Free & Open Source
Local by Default
Built-in AI
No Account
"You did in a very short time what Apple Intelligence failed to deliver." @nemuro87 on r/LocalLLM
v1.6.0  | 

Install via Homebrew

To install Cai, run the following command in your terminal:

$ brew tap cai-layer/cai && brew install --cask cai

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.

How it works

Three steps. One shortcut. Zero app switching.

01

Summon

Press ⌥C anywhere. Your selection is your input: an error log, a screenshot. Nothing selected? Just type.

02

Act

Pick an action, done. Cai surfaces the right actions for your content. Pin favorites to ⌘1–9, type to filter.

03

Route

Send results anywhere. Copied, pasted over your selection, or piped into Slack, Notes, any app.

Agent-authored actions.

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.

MCP
LLM
Shell
Webhook
AppleScript
Secrets
URL
...

If your agent can build it, Cai can run it.

One keystroke, multi-step.

Pipe a selection through AI, scripts, destinations, and Apple Shortcuts (in any order). Save the chain once, run it anywhere.

⌥CTranslate in place

selection Translate to Spanish Replace Selection

⌥CURL to Discord TLDR

selection fetch article summarize Send to Discord

⌥CStack trace to ticket

selection extract error + repro Create Linear Ticket Slack ping

Built-in actions, ready to use.

Cai reads what you selected (meetings, addresses, code, images) and surfaces the right actions automatically.

Ask AI
Reply
Image to Text (OCR)
Create GitHub Issue
Create Linear Ticket
Create Calendar Event
Summarize
Fix Grammar
Translate
...

Designed to disappear

Stay in flow. Stay private. Make it yours.

Approve Before It Runs

Agent proposals arrive as a diff. Capability chips show what each action can really do.

Zero App Switching

Results appear right where you are. No tabs, no copy-paste loops.

Image to Text

Take a screenshot or copy an image. Cai extracts the text, then runs any action on it.

Local & Private by Default

All processing stays on your machine. Want a cloud provider? Your choice.

Native Hands

Actions reach real Mac apps: Calendar, Contacts, Reminders, anything AppleScript can script.

Clipboard History

Search, pin, and reuse your last 100 clipboard items.

Bring Your Own Brain

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.

LM Studio
Ollama
OpenRouter
Hugging Face
Ministral 3B (MLX)built-in Apple Intelligence built-in
Llama Mistral Qwen Gemma Phi DeepSeek LFM2 ...
Which model should I use? →

Works in any text field, any app

Select some text, let Cai do the rest.
Use AI without switching apps.

VS Code
Terminal
Browser
GitHub
Linear
Jira
Slack
Notion
Figma
Mail
Power tip: teach Cai per-app context →

Frequently Asked Questions

Is Cai really free?

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.

How is Cai different from other tools?

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.

What tools can I use Cai with?

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.

How do I create custom actions?

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.

Can Cai chain multiple actions together?

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.

Do I have to use AI to use Cai?

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.

Does Cai work offline?

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.

Is Cai secure?

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.

What models does Cai support?

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.

What are Cai's system requirements?

macOS 14 (Sonoma) or later. The built-in local model needs Apple Silicon (M1 or later) and 8 GB of RAM. On an Intel Mac, connect LM Studio, Ollama, or a cloud provider instead. Accessibility permission is required for the ⌥C hotkey.

Why ⌥C?

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.

Why does Cai need Accessibility permissions?

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.

Join the early crew

Get updates and first invite when we open a Discord.