Inspiration

Connect an AI agent to your Mac and macOS asks one question: may "node" control Calendar? One Allow, and every Node program can read your calendar, mail and messages. We wanted consent shaped like the task: this calendar, these fields, for one hour.

What it does

Leash sits between the agent and Calendar, Reminders, Mail and Messages.

  • Grants scoped to named calendars, mailboxes and lists, specific fields, and an expiry. Create them from your real accounts in the viewer.
  • Filtering: the model only sees what a grant covers. Private notes and personal calendars never reach it.
  • The agent must say why. Anything outside a grant raises a dialog showing its reason. Deny is the default.
  • Touch ID for every send, even inside a grant.
  • A hash-chained ledger of every call, with a live viewer, countdowns and Revoke.

In the demo, a prompt-injected email tells the agent to text everyone a link. Leash stops it, shows the agent's reason, and logs the denial.

How we built it

Node.js MCP server, fixed JXA scripts (no agent-written code runs), a Swift Touch ID helper, and a local web viewer.

What's next

The agent in its own macOS VM with its own Apple Account (the VM already boots), approvals on your iPhone, and a signed Leash app.

Built With

Share this project:

Updates

Submission history