Skip to content

Cai v1.6.0

Latest

Choose a tag to compare

@soyasis soyasis released this 22 Aug 16:25
· 1 commit to master since this release

✨ Highlights

Your coding agent can now build your Cai actions. Connect Claude Code, Cursor, or Codex once (one command, from Settings → Connections → Agents), describe the action you want in the agent you already use, and it writes it for you. The agent can only propose: every action waits for your approval in Cai, shown as a full diff with the risky parts flagged. Once approved, it runs from ⌥C on its own: locally, offline, no agent and no tokens involved.

Cai now shows its work. Chips on every action tell you what it can do before you run it, a Running pill shows progress, and results always land somewhere: in Cai by default, never lost.

Actions can use your Calendar and Contacts. Cai asks for access the first time an action needs it, and Connections → System Access shows all your macOS grants in one place.


🚀 New

  • Agent-authored actions over MCP. Cai is now an MCP server. Connect Claude Code, Cursor, or Codex from Settings → Connections → Agents; the same screen holds your tool connectors (GitHub, Linear) and System Access.
  • Approval sheet. Every proposal arrives as a reviewable diff. Actions that can run code, send your selection to a URL, or replace it without showing you first are flagged and need an explicit acknowledgment before Approve unlocks.
  • Proposal inbox. A dot on the menu bar icon, a toast on arrival, and a row at the top of the ⌥C list. Step through the queue when several are waiting.
  • Named secrets. Store an API token once in Settings → Secrets and use it in any shell command as {{secrets.NAME}}. The value lives in the Keychain and is resolved only when the action runs: never in the action text, never visible to the model or your agent. One-click import from your shell.
  • Capability chips. Every action shows what it can do (run shell commands, open URLs, replace your selection, use Calendar or Contacts), computed from the action itself so they always match what would actually happen.
  • In-progress indicator. A Running pill while an action works, and a result view you can page through with ←/→ when it finishes.
  • Results are never lost. An action that doesn't send its output anywhere now shows it in Cai instead of dropping it.
  • Calendar, Contacts, and System Access. Actions can use Calendar and Contacts; Cai asks the first time one needs access. Connections → System Access gathers every grant (plus Reminders, Accessibility, and Automation status) with a fix-it path when something is denied.
  • Extension tags. Filter chips in the extensions browser narrow the catalog to the category you're after.

💎 Improved

  • Sturdier action names. Emoji stay intact, and look-alike or invisible Unicode is normalized so two actions can't carry confusingly similar names.
  • Clearer permission screen. Onboarding now says plainly that Cai only reads your selection when you press ⌥C.

🐛 Fixed

  • Mail, Notes, and Reminders destinations work again in the official build. Release DMGs were shipped without the Apple Events entitlement, so Cai never appeared under System Settings → Automation and those destinations couldn't be enabled. The packaged app now carries all its entitlements. (#53, thanks @rafjaf for the sharp investigation)
  • A failed action no longer looks like it worked. Failures and refusals now show a warning glyph instead of a success checkmark, and stay on screen long enough to read. Agent proposals keep the Cai mark so an unprompted message is recognisably from Cai.
  • Shell actions could hang under load. Every shell command now runs through a runner that always returns.
  • Custom OpenAI-compatible models. No more rejected temperature parameter, and mid-stream API errors now surface instead of an empty result.

🙏 Thanks

  • @rafjaf for the investigation that pinned down the missing Automation entitlement (#53)

Want to contribute? Check out the open issues or start a discussion.