iMessage plugin: per-project channel routing
Feature Request
Problem:
When working on multiple projects (e.g., two separate iOS apps), there's no way to route different phone numbers to different Claude Code sessions via the iMessage channel. The access.json config at ~/.claude/channels/imessage/ is global — all allowlisted numbers reach whichever session is active.
Use case:
A developer building two apps (JobWerks + Homeowner's Blueprint) with dual SIM iPhone wants:
- Phone number A → only reaches Claude Code session for Project A
- Phone number B → only reaches Claude Code session for Project B
This enables context-separated communication without cross-talk between projects.
Proposed solution:
Support per-project iMessage channel configs, e.g.:
~/.claude/channels/imessage/projects/<project-dir-hash>/access.json- Or a
projectfield inaccess.jsonthat maps sender IDs to project directories - Claude Code session only surfaces messages from numbers mapped to its current working directory
Alternatives considered:
- Manually swapping
access.jsonbetween sessions — error-prone - Running two sessions and keeping both numbers in one allowlist — no isolation, messages land in wrong context
Impact:
Any developer using Claude Code across multiple projects with iMessage would benefit from this. It's especially relevant for teams/individuals building complementary apps (e.g., two-sided marketplaces with separate codebases).
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗