macos-tools
macOS native integrations: screen capture, calendar, reminders, contacts, email (Mail.app), Spotlight search.
Skill by sonichi
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sonichi-macos-tools
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/macos-tools
What's inside
- Skill name
macos-tools- Description
- macOS native integrations: screen capture, calendar, reminders, contacts, email (Mail.app), Spotlight search. Use when the user asks about their screen, schedule, to-do list, contacts, or wants to send email on macOS.
- License
- MIT
- Instructions
- 89 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (9)
- README.md
- SKILL.md
- manifest.json
- calendar-reader.py · scripts/
- contacts.py · scripts/
- email-sender.py · scripts/
- native_pim_consent.py · scripts/
- reminders.py · scripts/
- screen-capture.sh · scripts/
SKILL.md (first lines)
# macOS Tools Native macOS integrations via AppleScript. No API keys needed — works on any Mac. **Calendar, Reminders and Contacts need the owner's consent.** Driving those apps raises a macOS permission prompt on the owner's screen. The order: (1) the Superpower Station connector (`composio_find` → `composio_exec`); (2) if it is not connected, the owner's own tools when they are in the tool list (`mcp__claude_ai_Google_Calendar__*`); (3) otherwise ask the owner. Run the scripts below with `--owner-asked` only when the owner asked for the local app in this conversation — without it they refuse (exit 2). A macOS denial (exit 3) is final and stored in `<workspace>/state/<app>-automation-denied`: say so, never retry or re-prompt. The `native-pim-guard` hook denies raw `osascript`/`open -a` commands against these apps for the same reason. The owner can allow the local apps for this host once, in their own terminal (never run it yourself — the hook denies it to you): ```bash python3 "$SKILL_DIR/scripts/native_pim_consent.py" grant # writes state/native-pim-consent, clears stored denials python3 "$SKILL_DIR/scripts/native_pim_consent.py" status # marker, env var, per-app denial python3 "$SKILL_DIR/scripts/native_pim_consent.py" revoke ``` `--owner-asked` and `SUTANDO_ALLOW_NATIVE_PIM=1` are strings you write: they stop you acting on your own initiative, they do not prove who asked (see `hooks/README.md`, native-pim-guard). Where the session says whose task is running (`state/bindings/active-execution.json`), the scripts refuse every form of consent on a non-owner task (exit 2, "not the owner's"). The consent record itself — `state/native-pim-consent` and the `*-automation-denied` markers — is the owner's: never write, copy, delete or `touch` it, and never import `native_pim_consent` to call `grant()`; the hook denies all of those, and `status` is how you read the state. ## When to Use - **Screen**: "What's on my screen?", "help me with this", "describe what I'm looking at" - **Calendar**: "What's on my schedule?", "do I have meetings today?" - **Reminders**: "Add a reminder", "what's on my todo list?", "mark X as done" - **Contacts**: "What's Bob's email?", "find contact for..." - **Email**: "Send an email to...", "draft a message to..." - **File search**: "Find my resume", "where's that PDF?" ## Tools ### Screen Capture ```bash bash "$SKILL_DIR/scripts/screen-capture.sh" ``` Returns path to PNG screenshot. Use the Read tool on the path to view it. ### Calendar Prefer the Superpower Station connector (`composio_find` / `composio_exec`); when the owner's calendar app isn't connected, follow the `connect-apps` skill instead of falling back here. macOS Calendar is only for an owner who asked for the local app, and an empty result from it is not an answer (the owner's real calendar may live in Google): say you couldn't read their calendar. ```bash python3 "$SKILL_DIR/scripts/calendar-reader.py" 7 --owner-asked # next 7 days, JSON python3 "$SKILL_DIR/scripts/calendar-reader.py" 1 text --owner-asked # today, plain text ``` ### Reminders ```bash python3 "$SKILL_DIR/scripts/reminders.py" list --owner-asked # all incomplete python3 "$SKILL_DIR/scripts/reminders.py" add "Call Bob" --owner-asked # add reminder python3 "$SKILL_DIR/scripts/reminders.py" add "Fix bug" "2026-03-17" --owner-asked # with due date python3 "$SKILL_DIR/scripts/reminders.py" complete "Call Bob" --owner-asked # mark done ``` ### Contacts ```bash python3 "$SKILL_DIR/scripts/contacts.py" search "Bob" --owner-asked # find by name ``` Returns name, emails, phones. Use before sending email to resolve names to addresses. ### Email (Apple Mail) ```bash python3 "$SKILL_DIR/scripts/email-sender.py" "to@example.com" "Subject" "Body" python3 "$SKILL_DIR/scripts/email-sender.py" "to@example.com" "Subject" "Body" --draft ``` Sends via Mail.app. Use `--draft` to create without sending. **Always confirm with user before sending.** ### Spotlight File Search ```bash mdfind "quarterly report" # search by content or filename mdfind -name "resume.pdf" # search by filename only ``` ## Requirements - macOS (uses AppleScript) - Calendar, Reminders, Contacts, Mail apps (built into macOS) - The owner grants the Automation permission when macOS asks them; once denied, do not ask again
From sonichi/sutando, MIT.
More from sonichi/sutando
- 0.757score
import-claude-context
sonichi
Bring the owner's Claude Code history into Sutando: index, extract and haiku-summarise the stock ~/.claude/projects transcripts, stage the result, show the…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
connect-apps
sonichi
Use when the owner asks about their calendar, email, meetings, Linear, Notion, Slack, Google Drive, GitHub or any other third-party app or the data in it…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
marketplace
sonichi
Install marketplace skills, activate cloud tools, check whether installed skills are up to date, or remove them — without the owner opening the Marketplace.
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
owner-agent-consult
sonichi
Before answering your OWNER, when the answer genuinely depends on something another agent of the same owner holds and you do not, ask that one agent once…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
tutorial
sonichi
Show a new owner what to try first.
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
image-generation
sonichi
Generate an image from a prompt or edit an existing one (Gemini image model, standard library only, any Gemini key the resolver finds) and attach the file to…
SkillAFreshness: A★ 400Claude Code +9 - 0.754score
deal-finder
sonichi
Scan configured sources (Craigslist now; eBay + Facebook Marketplace planned) for used-item listings matching the owner's criteria.
SkillAFreshness: A★ 400Claude Code +9 - 0.754score
phone-conversation
sonichi
Make conversational phone calls and join Zoom meetings via Twilio + Gemini.
SkillAFreshness: A★ 400Claude Code +9 - 0.754score
quota-tracker
sonichi
Track Claude Code quota usage via Anthropic API rate limit headers.
SkillAFreshness: A★ 400Claude Code +9 - 0.754score
claude-gemini
sonichi
Use the local Antigravity CLI (agy, Gemini-backed) from Claude Code with the user's existing Gemini authentication or API configuration.
SkillAFreshness: A★ 400Claude Code +9 - 0.754score
model-switch
sonichi
Change the core's model without the CLI: send /model to the live core's pane through the shared sender, wait for the CLI to accept it (answering its confirm…
SkillAFreshness: A★ 400Claude Code +9 - 0.754score
review-preflight
sonichi
Review tooling for a PR: review-preflight prints REVIEW.md's criteria and the PR's live gate state before a review; ci-triage maps a PR's failing checks to…
SkillAFreshness: A★ 400Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 400
- Forks
- 98
- Open issues
- 1,202
- Last commit (this folder)
- Sep 26, 2026 (1 month ago)
- Last release
- Aug 20, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/sonichi/sutando
- Website
- sutando.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.338score
macos-tools
rudyalways
macOS native integrations: screen capture, calendar, reminders, contacts, email (Mail.app), Spotlight search.
SkillBFreshness: B★ 2Claude Code +9 - 0.249score
macos-tools
AReid987
macOS native integrations: screen capture, calendar, reminders, contacts, email (Mail.app), Spotlight search.
SkillDFreshness: DClaude Code +9
More from sonichi
- 0.757score
import-claude-context
sonichi
Bring the owner's Claude Code history into Sutando: index, extract and haiku-summarise the stock ~/.claude/projects transcripts, stage the result, show the…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
owner-agent-consult
sonichi
Before answering your OWNER, when the answer genuinely depends on something another agent of the same owner holds and you do not, ask that one agent once…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
connect-apps
sonichi
Use when the owner asks about their calendar, email, meetings, Linear, Notion, Slack, Google Drive, GitHub or any other third-party app or the data in it…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
image-generation
sonichi
Generate an image from a prompt or edit an existing one (Gemini image model, standard library only, any Gemini key the resolver finds) and attach the file to…
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
marketplace
sonichi
Install marketplace skills, activate cloud tools, check whether installed skills are up to date, or remove them — without the owner opening the Marketplace.
SkillAFreshness: A★ 400Claude Code +9 - 0.757score
tutorial
sonichi
Show a new owner what to try first.
SkillAFreshness: A★ 400Claude Code +9
Cite this page
macos-tools skill. Agent Mart. https://agentmart.dev/skills/sonichi-macos-tools (last updated 2026-10-24)