#clawdbot spamming iMessage replies without me asking

1 messages Β· Page 1 of 1 (latest)

indigo vapor
#

I connected Clawdbot to iMessage to be able to send messages and it started replying to all text messages with this.
Thankfully, it only spammed my wife and my board. 😬

On a Macbook, using the iMessage skill.

midnight shadowBOT
# indigo vapor I connected Clawdbot to iMessage to be able to send messages and it started repl...

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.autoIntro or similar
  • imessage.announce
  • imessage.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! πŸ˜…

loud moon
midnight shadowBOT
#
  • 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:

  1. Set dmPolicy: "pairing" - unknown senders get a pairing code, messages are ignored until you approve them
  2. Set groupPolicy: "disabled" if you only want DMs, or allowlist with groupAllowFrom for 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. 🦐

indigo vapor
#

@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.

midnight shadowBOT
#

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:

  1. A dedicated agent for iMessage with a system prompt like "When you receive iMessages, don't reply but extract X info"
  2. Custom bindings to route iMessage to that agent

Does that match what you're trying to accomplish? 🦐

loud moon
midnight shadowBOT
#
imsg chats --limit 20 --json
imsg history --chat-id <id> --limit 50 --json

Why this works:

  • The imsg skill 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! 🦐

tame estuary
#

Clawdbot is spamming me with every haerdbeat and give full overview. I told clawd to not do, but he ignore it.

midnight shadowBOT
# tame estuary Clawdbot is spamming me with every haerdbeat and give full overview. I told claw...

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.

tame estuary
#

Is it possible to supress heartbeat message in a timerange (night)?

midnight shadowBOT
# tame estuary 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:

  1. Longer interval β€” Set every to "30m" or "1h" instead of "5m"
  2. Disable during sleep β€” Use cron to update the config at night (reload with agents.defaults.heartbeat.every: "30m") and restore in morning
  3. Reduce max chars β€” Lower ackMaxChars so heartbeat responses are shorter