iMessage를 Claude Code 도우미에 연결하세요
hackernews
|
|
📦 오픈소스
#claude
#기타 ai
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
이 플러그인은 macOS 사용자가 Claude Code 도우미를 iMessage와 연동하여 채팅 기록을 검색하고 메시지를 주고받을 수 있게 해줍니다. 외부 서버 없이 로컬 `chat.db`를 직접 읽어 작동하며, 최초 실행 시 시스템 설정에서 완전 디스크 접근 권한을 허용해야 합니다. 기본적으로 본인의 메시지에만 반응하며, 접근을 허용할 특정 연락처를 별도 지정하여 보안을 유지할 수 있습니다.
본문
Connect iMessage to your Claude Code assistant. Reads ~/Library/Messages/chat.db directly for history, search, and new-message detection; sends via AppleScript to Messages.app. No external server, no background process to keep alive. macOS only. Default: text yourself. Other senders are dropped silently (no auto-reply) until you allowlist them. See ACCESS.md for groups and multi-user setups. 1. Grant Full Disk Access. chat.db is protected by macOS TCC. The first time the server reads it, macOS pops a prompt asking if your terminal can access Messages — click Allow. The prompt names whatever app launched bun (Terminal.app, iTerm, Ghostty, your IDE). If you click Don't Allow, or the prompt never appears, grant it manually: System Settings → Privacy & Security → Full Disk Access → add your terminal. Without this the server exits immediately with authorization denied . 2. Install the plugin. These are Claude Code commands — run claude to start a session first. Install the plugin. No env vars required. /plugin install imessage@claude-plugins-official 3. Relaunch with the channel flag. The server won't connect without this — exit your session and start a new one: claude --channels plugin:imessage@claude-plugins-official Check that /imessage:configure tab-completes. 4. Text yourself. iMessage yourself from any device. It reaches the assistant immediately — self-chat bypasses access control. The first outbound reply triggers an Automation permission prompt ("Terminal wants to control Messages"). Click OK. 5. Decide who else gets in. Nobody else's texts reach the assistant until you add their handle: /imessage:access allow +15551234567 Handles are phone numbers (+15551234567 ) or Apple ID emails ([email protected] ). If you're not sure what you want, ask Claude to review your setup. | Inbound | Polls chat.db once a second for ROWID > watermark . Watermark initializes to MAX(ROWID) at boot — old messages aren't replayed on restart. | | Outbound | osascript with tell application "Messages" to send … . Text and chat GUID pass through argv so there's no escaping footgun. | | History & search | Direct SQLite queries against chat.db . Full history — not just messages since the server started. | | Attachments | chat.db stores absolute filesystem paths. The first inbound image per message is surfaced to the assistant as a local path it can Read . Outbound attachments send as separate messages after the text. | | Variable | Default | Effect | |---|---|---| IMESSAGE_APPEND_SIGNATURE | true | Appends \nSent by Claude to outbound messages. Set to false to disable. | IMESSAGE_ALLOW_SMS | false | Accept inbound SMS/RCS in addition to iMessage. Off by default because SMS sender IDs are spoofable — a forged SMS from your own number would otherwise bypass access control. Only enable if you understand the risk. | IMESSAGE_ACCESS_MODE | — | Set to static to disable runtime pairing and read access.json only. | IMESSAGE_STATE_DIR | ~/.claude/channels/imessage | Override where access.json and pairing state live. | See ACCESS.md for DM policies, groups, self-chat, delivery config, skill commands, and the access.json schema. Quick reference: IDs are handle addresses (+15551234567 or [email protected] ). Default policy is allowlist — this reads your personal chat.db . Self-chat always bypasses the gate. | Tool | Purpose | |---|---| reply | Send to a chat. chat_id + text , optional files (absolute paths). Auto-chunks text; files send as separate messages. | chat_messages | Fetch recent history as conversation threads. Each thread is labelled DM or Group with its participant list, then timestamped messages (oldest-first). Omit chat_guid to see every allowlisted chat at once, or pass one to drill in. Default 100 messages per chat. Reads chat.db directly — full native history. | AppleScript can send messages but not tapback, edit, or thread — those require Apple's private API. If you need them, look at BlueBubbles (requires disabling SIP).
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유