Skip to content

cai-layer/cai-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cai Extensions

Community-contributed extensions for Cai, the macOS clipboard manager.

Install an Extension

Open Settings > Community Extensions in Cai to browse and install extensions with one click.

Extension Browser

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.

Extension Types

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.

Chaining Actions

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 shortcut

Example — 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

Submit an Extension

The easiest way to share an extension you've built:

  1. Open Settings > Custom Actions (or Output Destinations)
  2. Click the share icon on any custom action or destination
  3. Cai copies the extension YAML to your clipboard and opens this repo
  4. Fork, create a folder under extensions/, paste the YAML as extension.yaml, and open a PR

Or create the YAML manually — see the extension creation guide for the full format reference.

Security

  • Webhook URLs must use HTTPS and {{setup_field}} placeholders — never hardcode endpoints
  • No API keys in YAML — use setup fields with secret: true

About

Community-contributed actions and destinations for Cai

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors