Help us improve
Share bugs, ideas, or general feedback.
From imessage
Sends iMessages for real-time user input and status notifications during Claude Code sessions. Use ask_user to wait for responses on decisions or clarifications; notify_user for non-blocking updates.
npx claudepluginhub njerschow/textme --plugin imessageHow this skill is triggered — by the user, by Claude, or both
Slash command
/imessage:imessageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Send and receive iMessages via Claude Code. Get real-time input from the user via their phone, similar to how call-me enables voice conversations.
Lets you text, voice-note, or image-prompt Claude Code from your phone via iMessages, using the njerschow/textme daemon and Sendblue bridge. Activates on requests like "text Claude" or "drive Claude from my phone."
Guides setup of messaging channels (WhatsApp, Telegram, Discord, iMessage, Slack) for external access to Claude Code agents via plugin installs. Shows exact commands, prerequisites, and relaunch steps.
Sends and receives iMessages via Linq API with replies, reactions, effects, attachments, threading, edits, and rich links. Useful for handling user requests to text, send messages, or check iMessages.
Share bugs, ideas, or general feedback.
Send and receive iMessages via Claude Code. Get real-time input from the user via their phone, similar to how call-me enables voice conversations.
Use ask_user when:
Use notify_user when:
Do NOT use for:
ask_userSend an iMessage and wait for the user to respond. This is the main tool - similar to initiate_call in call-me.
Parameters:
message (string, required): What to ask the user. Be conversational.timeout_seconds (number, optional): How long to wait (default: 300 = 5 minutes)Behavior:
check_messagesExample:
ask_user({ message: "Finished the auth module. Should I work on API endpoints or tests next?" })
→ User responds via phone: "API endpoints"
→ Returns: "User responded: API endpoints"
→ Claude continues working on API endpoints
notify_userSend an iMessage without waiting for a response. Fire-and-forget.
Parameters:
message (string, required): Message to sendExample:
notify_user({ message: "Starting the database migration. This will take about 10 minutes." })
→ Returns immediately: "Notification sent"
→ Claude continues working
check_messagesCheck for pending iMessages. Use this to pick up responses that arrived after a timeout.
send_messageSend a message to a specific number. Lower-level than notify_user.
get_conversationGet conversation history with a contact for context.
mark_readMark a message as processed without responding.
list_contactsList all contacts who have messaged.
clear_historyClear conversation history with a contact.
Simple question and continue:
Claude: [finishes auth module]
Claude: ask_user("Hey! Finished the auth module. API endpoints or tests next?")
→ sends iMessage, waits...
User: [responds on phone] "API endpoints please"
Claude: → receives response
Claude: [continues with API endpoints]
Status update (no response needed):
Claude: notify_user("Starting the build process. Will let you know when done.")
Claude: [runs build]
Claude: ask_user("Build complete! 0 errors. Ready to deploy to staging?")
User: "Yes, deploy it"
Claude: [deploys to staging]
Multi-turn conversation:
Claude: ask_user("I found 3 approaches for the caching layer. Want me to explain them?")
User: "Yes please"
Claude: ask_user("Option 1: Redis - fast, needs server. Option 2: In-memory - simple, no persistence. Option 3: SQLite - persistent, slower. Which sounds best?")
User: "Redis"
Claude: [implements Redis caching]
notify_user for updates - Don't block when you don't need inputask_user blocks up to 5 minutes waiting for response