gutsofpratik/horizon-skills/source-44b89ec1f812ca72d57b1856

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Check iMessage channel setup and review access policy. Use when the user asks to configure iMessage, asks "how do I set this up" or "who can reach me," or wants to know why texts aren't reaching the assistant.

Install

npx vskill@latest install gutsofpratik/horizon-skills/source-44b89ec1f812ca72d57b1856

SKILL.md

/imessage:configure — iMessage Channel Setup

There's no token to save — iMessage reads ~/Library/Messages/chat.db directly. This skill checks whether that works and orients the user on access policy.

Arguments passed: $ARGUMENTS (unused — this skill only shows status)


Status and guidance

Read state and give the user a complete picture:

  1. Full Disk Access — run ls ~/Library/Messages/chat.db. If it fails

with "Operation not permitted", FDA isn't granted. Say: "Grant Full Disk Access to your terminal (or IDE if that's where Claude Code runs): System Settings → Privacy & Security → Full Disk Access. The server can't read chat.db without it."

  1. Access — read ~/.claude/channels/imessage/access.json (missing file

= defaults: dmPolicy: "allowlist", empty allowlist). Show:

  • DM policy and what it means in one line
  • Allowed senders: count, and list the handles
  • Pending pairings: count, with codes if any (only if policy is pairing)
  1. What next — end with a concrete next step based on state:
  • FDA not granted → the FDA instructions above
  • FDA granted, policy is allowlist → *"Text yourself from any device

signed into your Apple ID — self-chat always bypasses the gate. To let someone else through: /imessage:access allow +15551234567."*

  • FDA granted, someone allowed → *"Ready. Self-chat works; {N} other

sender(s) allowed."*


Build the allowlist — don't pair

iMessage reads your personal chat.db. You already know the phone numbers and emails of people you'd allow — there's no ID-capture problem to solve. Pairing has no upside here and a clear downside: every contact who texts this Mac gets an unsolicited auto-reply.

Drive the conversation this way:

  1. Read the allowlist. Tell the user who's in it (self-chat always works

regardless).

  1. Ask: "Besides yourself, who should be able to text you through this?"
  2. "Nobody, just me" → done. The default allowlist with an empty list

is correct. Self-chat bypasses the gate.

  1. "My partner / a friend / a couple people" → ask for each handle

(phone like +15551234567 or email like them@icloud.com) and offer to run /imessage:access allow <handle> for each. Stay on allowlist.

  1. Current policy is `pairing` → flag it immediately: *"Your policy is

pairing, which auto-replies a code to every contact who texts this Mac. Switch back to allowlist?"* and offer /imessage:access policy allowlist. Don't wait to be asked.

  1. User asks for `pairing` → push back. Explain the auto-reply-to-

everyone consequence. If they insist and confirm a dedicated line with few contacts, fine — but treat it as a one-off, not a recommendation.

Handles are +15551234567 or someone@icloud.com. disabled drops everything except self-chat.


Implementation notes

  • No .env file for this channel. No token. The only OS-level setup is FDA

plus the one-time Automation prompt when the server first sends (which can't be checked from here).

  • access.json is re-read on every inbound message — policy changes via

/imessage:access take effect immediately, no restart.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
2
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/gutsofpratik/horizon-skills/source-44b89ec1f812ca72d57b1856/badge)](https://verified-skill.com/skills/gutsofpratik/horizon-skills/source-44b89ec1f812ca72d57b1856)

Something wrong with this skill or its page? Tell us.