autoresponderMonitor iMessage/SMS conversations and auto-respond based on configurable rules, AI prompts, and rate-limiting conditions. Use when you need to automatically reply to specific contacts with AI-generated responses based on conversation context. Also use when the user asks to manage auto-responder settings, contacts, prompts, or view status/history.
Install via ClawdBot CLI:
clawdbot install Koba42Corp/autoresponderAutomatically respond to iMessages/SMS from specific contacts using AI-generated replies that match your voice and conversation context.
Before using this skill, ensure you have:
brew install steipete/tap/imsgcd ~/clawd/imsg-autoresponder/scripts
node manage.js add "+15551234567" "Reply with a middle finger emoji" "Best Friend"
node manage.js add "+15559876543" "You are my helpful assistant. Reply warmly and briefly, as if I'm responding myself. Keep it under 160 characters." "Mom"
node watcher.js
The watcher runs in the foreground and logs to ~/clawd/logs/imsg-autoresponder.log.
# Start in background
nohup node ~/clawd/imsg-autoresponder/scripts/watcher.js > /dev/null 2>&1 &
# Or use screen/tmux
screen -S imsg-watcher
node ~/clawd/imsg-autoresponder/scripts/watcher.js
# Ctrl+A, D to detach
Config file: ~/clawd/imsg-autoresponder.json
{
"enabled": true,
"defaultMinMinutesBetweenReplies": 15,
"watchList": [
{
"identifier": "+15551234567",
"name": "Best Friend",
"prompt": "Reply with a middle finger emoji",
"minMinutesBetweenReplies": 10,
"enabled": true
}
]
}
The auto-responder can be managed directly through Telegram using slash commands or natural language.
Both space and underscore formats are supported:
/autorespond list OR /autorespond_list
/autorespond status OR /autorespond_status
/autorespond add OR /autorespond_add <number> <name> <prompt>
/autorespond remove OR /autorespond_remove <number>
/autorespond edit OR /autorespond_edit <number> <prompt>
/autorespond delay OR /autorespond_delay <number> <minutes>
/autorespond history OR /autorespond_history <number>
/autorespond test OR /autorespond_test <number> <message>
/autorespond toggle OR /autorespond_toggle
/autorespond restart OR /autorespond_restart
Bulk Operations:
/autorespond set-all-delays OR /autorespond_set_all_delays <minutes>
/autorespond enable-all OR /autorespond_enable_all
/autorespond disable-all OR /autorespond_disable_all
Time Windows:
/autorespond set-time-window OR /autorespond_set_time_window <number> <start> <end>
/autorespond clear-time-windows OR /autorespond_clear_time_windows <number>
Keyword Triggers:
/autorespond add-keyword OR /autorespond_add_keyword <number> <keyword>
/autorespond remove-keyword OR /autorespond_remove_keyword <number> <keyword>
/autorespond clear-keywords OR /autorespond_clear_keywords <number>
Statistics & Limits:
/autorespond stats OR /autorespond_stats [<number>]
/autorespond set-daily-cap OR /autorespond_set_daily_cap <number> <max>
Examples:
/autorespond_list
/autorespond_status
/autorespond_edit +15551234567 Be more sarcastic
/autorespond_delay +15551234567 30
/autorespond_history +15551234567
/autorespond_set_time_window +15551234567 09:00 22:00
/autorespond_clear_time_windows +15551234567
/autorespond_add_keyword +15551234567 urgent
/autorespond_add_keyword +15551234567 help
/autorespond_clear_keywords +15551234567
/autorespond_stats
/autorespond_stats +15551234567
/autorespond_set_daily_cap +15551234567 10
/autorespond_set_all_delays 30
/autorespond_disable_all
/autorespond_restart
You can also just ask naturally:
The agent will understand and execute the command using the telegram-handler.js script.
cd ~/clawd/imsg-autoresponder/scripts
# List all contacts
node manage.js list
# Add contact
node manage.js add "+15551234567" "Your custom prompt here" "Optional Name"
# Remove contact
node manage.js remove "+15551234567"
# Enable/disable contact
node manage.js enable "+15551234567"
node manage.js disable "+15551234567"
# Set custom delay for contact (in minutes)
node manage.js set-delay "+15551234567" 30
# Toggle entire system on/off
node manage.js toggle
imsg watchimsg send~/clawd/logs/imsg-autoresponder.logResponse times are tracked in ~/clawd/data/imsg-autoresponder-state.json:
{
"lastResponses": {
"+15551234567": 1706453280000
}
}
This ensures rate limiting works correctly across restarts.
Prompts define how the AI should respond to each contact. Be specific!
Examples:
"Reply with a middle finger emoji"
"You are my helpful assistant. Reply warmly and briefly, as if I'm responding myself. Keep it under 160 characters."
"You are my sarcastic friend. Reply with witty, slightly snarky responses. Keep it short."
"Politely decline any requests and say I'm busy. Be brief but friendly."
The AI will see:
imsg CLI installed (brew install steipete/tap/imsg)~/.clawdbot/clawdbot.json or ANTHROPIC_API_KEY env var)curl (pre-installed on macOS)enabled: false in config or node manage.js disable node manage.js toggleWatcher not responding:
~/clawd/logs/imsg-autoresponder.log for errorsimsg watch works manually: imsg watch --jsonnode manage.js listRate limited too aggressively:
node manage.js set-delay "+15551234567" 5defaultMinMinutesBetweenReplies in configAI responses are off:
When the user uses slash commands or natural language about the auto-responder, use the telegram-handler.js script.
| User Input | Normalize To | Handler Call |
|------------|--------------|--------------|
| /autorespond list or /autorespond_list | list | node telegram-handler.js list |
| /autorespond status or /autorespond_status | status | node telegram-handler.js status |
| /autorespond add or /autorespond_add | add | node telegram-handler.js add |
| /autorespond remove or /autorespond_remove | remove | node telegram-handler.js remove |
| /autorespond edit or /autorespond_edit | edit | node telegram-handler.js edit |
| /autorespond delay or /autorespond_delay | delay | node telegram-handler.js delay |
| /autorespond history or /autorespond_history | history | node telegram-handler.js history |
| /autorespond test or /autorespond_test | test | node telegram-handler.js test |
| /autorespond toggle or /autorespond_toggle | toggle | node telegram-handler.js toggle |
| /autorespond restart or /autorespond_restart | restart | node telegram-handler.js restart |
| /autorespond set-all-delays or /autorespond_set_all_delays | set-all-delays | node telegram-handler.js set-all-delays |
| /autorespond enable-all or /autorespond_enable_all | enable-all | node telegram-handler.js enable-all |
| /autorespond disable-all or /autorespond_disable_all | disable-all | node telegram-handler.js disable-all |
| /autorespond set-time-window or /autorespond_set_time_window | set-time-window | node telegram-handler.js set-time-window |
| /autorespond clear-time-windows or /autorespond_clear_time_windows | clear-time-windows | node telegram-handler.js clear-time-windows |
| /autorespond add-keyword or /autorespond_add_keyword | add-keyword | node telegram-handler.js add-keyword |
| /autorespond remove-keyword or /autorespond_remove_keyword | remove-keyword | node telegram-handler.js remove-keyword |
| /autorespond clear-keywords or /autorespond_clear_keywords | clear-keywords | node telegram-handler.js clear-keywords |
| /autorespond stats or /autorespond_stats [ | stats | node telegram-handler.js stats [ |
| /autorespond set-daily-cap or /autorespond_set_daily_cap | set-daily-cap | node telegram-handler.js set-daily-cap |
Processing steps:
/autorespond or /autorespond_ prefixnode telegram-handler.js listnode telegram-handler.js add node telegram-handler.js edit node telegram-handler.js delay node telegram-handler.js remove node telegram-handler.js statusnode telegram-handler.js history node telegram-handler.js restartnode telegram-handler.js toggleContact resolution:
+15551234567)After config changes:
Always remind the user to restart the watcher if the command output mentions it.
Check status:
/autorespond_status
View logs:
tail -f ~/clawd/logs/imsg-autoresponder.log
Restart:
/autorespond_restart
"OPENAI_API_KEY not found"
~/.clawdbot/clawdbot.json:
{
"skills": {
"openai-whisper-api": {
"apiKey": "sk-proj-YOUR_KEY_HERE"
}
}
}
Permission errors
imsg chats --json works manuallyMessages not detected
/autorespond_list/autorespond_statusDuplicate responses
/autorespond_restartGenerate actual AI responses without sending (preview mode):
/autorespond_test +15551234567 Hey what's up?
This will:
Perfect for testing new prompts before going live!
โ ๏ธ Important: This tool sends messages on your behalf automatically.
/autorespond_history/autorespond_toggleGenerated Feb 24, 2026
Businesses can use iResponder to automatically reply to customer inquiries via SMS or iMessage, providing instant acknowledgment and basic information. It can handle common questions with AI-generated responses, freeing up human agents for complex issues. This ensures 24/7 availability and improves customer satisfaction.
Professionals can set up iResponder to auto-respond to personal contacts during work hours or meetings, maintaining communication without interruptions. It can send polite, context-aware replies to family and friends, explaining unavailability. This helps manage work-life balance and reduces stress from constant notifications.
Clinics and healthcare providers can use iResponder to send automated follow-up messages to patients, such as appointment confirmations or medication reminders. It can respond to patient queries with pre-configured AI prompts, ensuring timely communication. This enhances patient engagement and reduces no-show rates.
Event organizers can deploy iResponder to handle attendee inquiries via SMS, providing updates on schedules, locations, or FAQs. It can auto-respond with AI-generated information based on keywords like 'schedule' or 'venue', streamlining communication. This reduces manual workload and improves attendee experience.
Schools and universities can use iResponder to auto-respond to student or parent messages about deadlines, campus events, or emergency alerts. It can provide AI-driven answers to common questions, ensuring consistent information dissemination. This supports administrative efficiency and enhances community communication.
Offer iResponder as a cloud-based service with tiered subscription plans, such as basic for personal use, pro for small businesses, and enterprise for large organizations. Revenue comes from monthly or annual fees, with features like advanced AI models, higher message limits, and priority support. This model ensures recurring income and scalability.
Provide a free version of iResponder with limited contacts and basic AI responses, then upsell premium features like unlimited contacts, custom prompts, and advanced analytics. Revenue is generated from users upgrading to paid tiers for enhanced functionality. This attracts a broad user base and encourages conversions.
License iResponder technology to other companies, such as CRM providers or communication platforms, who can rebrand it as part of their own offerings. Revenue comes from one-time licensing fees or royalties based on usage. This model leverages existing distribution channels and reduces direct marketing costs.
๐ฌ Integration Tip
Ensure proper macOS permissions and OpenAI API configuration before deployment to avoid interruptions in message monitoring and response generation.
iMessage/SMS CLI for listing chats, history, watch, and sending.
Use when you need to control Discord from Clawdbot via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, fetch permissions or member/role/channel info, or handle moderation actions in Discord DMs or channels.
Use when you need to control Slack from Clawdbot via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).
Build or update the BlueBubbles external channel plugin for Clawdbot (extension package, REST send/probe, webhook inbound).
OpenClaw skill for designing Telegram Bot API workflows and command-driven conversations using direct HTTPS requests (no SDKs).