gutsofpratik/horizon-skills/source-44b89ec1f812ca72d57b1856
- community
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-44b89ec1f812ca72d57b1856SKILL.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:
- 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."
- 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)
- 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:
- Read the allowlist. Tell the user who's in it (self-chat always works
regardless).
- Ask: "Besides yourself, who should be able to text you through this?"
- "Nobody, just me" → done. The default
allowlistwith an empty list
is correct. Self-chat bypasses the gate.
- "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.
- 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.
- 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
.envfile 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.jsonis 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
- SKILL.md in the repositoryCheckingskills/source-44b89ec1f812ca72d57b1856/SKILL.md
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
[](https://verified-skill.com/skills/gutsofpratik/horizon-skills/source-44b89ec1f812ca72d57b1856)