Community-contributed extensions for Cai, the macOS clipboard manager.
Open Settings > Community Extensions in Cai to browse and install extensions with one click.
You can also install manually: copy the YAML content of any extension.yaml (including the # cai-extension header), press Option+C — Cai detects it and offers to install.
| Type | What it does | Installs as | Needs LLM? |
|---|---|---|---|
prompt |
Sends clipboard text to the LLM with a custom instruction | Custom Action | Yes |
url |
Opens a URL with %s replaced by clipboard text |
Custom Action | No |
shell |
Runs a shell command with the text and renders result in Cai | Custom Action | No |
webhook |
Sends text to an HTTP endpoint (Slack, Discord, etc.) | Destination | No |
deeplink |
Opens a URL scheme / deep link (Bear, Things, etc.) | Destination | No |
applescript |
Runs an AppleScript with the text | Destination | No |
shell |
Runs a shell command with the text | Destination | No |
Custom Actions appear as actions in the Cai action window. Destinations are output targets that receive text after an action runs. See the docs for details.
Any action or destination can chain to other steps via the optional next: field. Each step receives the previous step's output as {{result}}. Four step types:
next:
- action: "Summarize" # run a local Cai action by name
- destination: "Send to Slack" # run a local destination (semantic alias for action)
- llm: "translate to Spanish" # inline one-off LLM transformation
- apple_shortcut: "Save to Bear" # invoke an Apple Shortcuts.app shortcutExample — summarize and post to Slack:
# cai-extension
name: Summarize & Slack
description: Summarize clipboard text and post to Slack
author: cai-layer
version: "1.0"
tags: [productivity, ai]
icon: bubble.left.and.text.bubble.right
type: prompt
prompt: |
Summarize this in 3 bullet points. Keep it under 60 words. Do not use any markdown formatting.
next:
- destination: "Send to Slack"Notes:
- Chains run sequentially in-memory (not via the system clipboard), so the user can copy other text mid-chain without breaking the flow
- Cycle detection and a max-depth-10 cap protect against runaway loops
- For
action:/destination:references, the user must have that action installed locally — the in-app browser will prompt to install missing dependencies when available
The easiest way to share an extension you've built:
- Open Settings > Custom Actions (or Output Destinations)
- Click the share icon on any custom action or destination
- Cai copies the extension YAML to your clipboard and opens this repo
- Fork, create a folder under
extensions/, paste the YAML asextension.yaml, and open a PR
Or create the YAML manually — see the extension creation guide for the full format reference.
- Webhook URLs must use HTTPS and
{{setup_field}}placeholders — never hardcode endpoints - No API keys in YAML — use
setupfields withsecret: true
