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
- applescript
- claude
- claude-desktop
- javascript
- jxa
- localauthentication
- macos
- model-context-protocol
- node.js
- swift
- touch-id
- zod
Log in or sign up for Devpost to join the conversation.