#clawdbot spamming iMessage replies without me asking
1 messages Β· Page 1 of 1 (latest)
That looks like an announcement/intro message that the iMessage skill is sending to every conversation! π¬ This is a configuration issue where something's triggering auto-replies to all incoming messages.
Here's what likely happened and how to fix it:
Common Causes
1. Check for iMessage skill "announce" settings:
The iMessage skill has an optional feature to announce its presence. Look in your config for settings like:
imessage.autoIntroor similarimessage.announceimessage.greeting
2. Check active hooks:
Run clawdbot hooks list to see if there's a hook responding to all iMessage events.
3. Check agent configuration:
If you have an agent handling iMessage, verify it doesn't have triggerOnAll: true or similar settings.
Quick Fixes
To stop the spam immediately:
# Disable the iMessage provider temporarily
clawdbot provider disable imessage
Check your config:
clawdbot config get | grep -A5 -B5 imessage
Look for hooks:
clawdbot hooks list
The most likely culprit is either the skill's intro announcement getting triggered on every message, or a hook that's too broad. Can you share your iMessage-related config? That'll help pinpoint the exact issue! π¦
And yeah...sorry about spamming your wife and board. That's rough! π
I had same issue, you can use your personal number to talk to clawdbot. I changed to using a telegram provider. iMessage is only good if you have a dedicated mac that isnβt on your personal Apple ID
Based on the iMessage docs, the issue is your dmPolicy and/or groupPolicy settings.
The fix:
{
channels: {
imessage: {
dmPolicy: "pairing", // Only respond to approved contacts
groupPolicy: "allowlist" // Or "disabled" to ignore groups entirely
}
}
}
What happened:
dmPolicy: "open"makes the bot reply to every DM it receives
groupPolicy: "open"makes it reply to every group message
The default should be pairing for DMs (requires manual approval via clawdbot pairing approve) and allowlist for groups. If you accidentally set either to open, you get exactly the spam behavior you saw.
To fix it:
- Set
dmPolicy: "pairing"- unknown senders get a pairing code, messages are ignored until you approve them - Set
groupPolicy: "disabled"if you only want DMs, orallowlistwithgroupAllowFromfor specific contacts
This is why the other user said iMessage works best with a dedicated Mac/user - keeps your personal Messages separate from the bot's behavior. π¦
@loud moon thanks for the reply. I had connected it to be able to read text messages on my behalf (not send them).
So I don't even want to DM it.
I am using Telegram.
Ah, that's a different problem! You want iMessage for reading/monitoring only, not for the bot to chat.
The fix:
{
channels: {
imessage: {
dmPolicy: "disabled", // Don't reply to DMs
groupPolicy: "disabled" // Don't reply to groups
}
}
}
This tells Clawdbot to ignore (not reply to) any iMessages while still being able to receive them.
Why this happened: When iMessage is enabled, any incoming message gets routed to an agent by default, and agents are designed to reply. The dmPolicy and groupPolicy controls whether those replies happen.
Your setup sounds like:
- Telegram = your chat interface with the bot
- iMessage = you want the bot to "watch" messages (maybe for notifications, context, or some other automation)
If you need the bot to do something when it sees iMessages (not just read them), you'd need:
- A dedicated agent for iMessage with a system prompt like "When you receive iMessages, don't reply but extract X info"
- Custom bindings to route iMessage to that agent
Does that match what you're trying to accomplish? π¦
You donβt even need to connect it I donβt think, it already has the skill to read the chat db and send messages. Mine is off right now and as long as you have system permission to view files and stuff it should be able to do it (at least in my case)
Tyler is 100% correct! π―
You don't need the iMessage channel enabled at all.
Just disable the channel and use the imsg skill directly when you need to read messages:
{
channels: {
imessage: {
enabled: false // Disable the provider entirely
}
}
}
Then use the imsg skill in your agent when you want to read messages:
imsg chats --limit 20 --json
imsg history --chat-id <id> --limit 50 --json
Why this works:
- The
imsgskill reads directly from the Messages DB (requires Full Disk Access) - No channel provider = no automatic reply loop
- Your Telegram setup stays as-is for chatting
This is exactly the pattern Tyler discovered. The channel provider is only needed if you want the bot to send/reply via iMessage. For pure read access, the skill alone does the job! π¦
Clawdbot is spamming me with every haerdbeat and give full overview. I told clawd to not do, but he ignore it.
This looks like a heartbeat configuration issue. The spamming is likely due to the heartbeat ackMaxChars setting being too high (default is 300), which causes full overviews to be sent instead of brief acknowledgments.
To fix this, the user should add to their ~/.clawdbot/clawdbot.json:
{
"agents.defaults.heartbeat": {
"every": "10m",
"target": "last",
"ackMaxChars": 100
}
}
Or they can disable heartbeat overviews entirely by setting a very low ackMaxChars like 50 or even 0.
The key settings:
every: Increase interval (5m β 10m or more)ackMaxChars: Lower this to get brief acks instead of full overviews (try 100, or 0 to suppress)target:"last"sends to their current session - this seems correct
They can apply this with hot reload (no restart needed) using the gateway's config.apply command if hot-reload is enabled, or restart the gateway after editing the config file.
Is it possible to supress heartbeat message in a timerange (night)?
Based on what I know from the config docs, there's no built-in time-range suppression for heartbeat messages currently. The heartbeat settings support frequency and targeting, but not quiet hours.
What's configurable:
{
"agents.defaults.heartbeat": {
"every": "5m",
"target": "last",
"ackMaxChars": 300
}
}
Options to reduce nighttime noise:
- Longer interval β Set
everyto"30m"or"1h"instead of"5m" - Disable during sleep β Use cron to update the config at night (reload with
agents.defaults.heartbeat.every: "30m") and restore in morning - Reduce max chars β Lower
ackMaxCharsso heartbeat responses are shorter