docs/book/src/channels/social.md
Broadcast / social-feed integrations. These differ from chat channels in two ways: messages are typically public, and the agent often acts as a poster rather than a bidirectional responder.
[channels.bluesky]
enabled = true
handle = "you.bsky.social"
app_password = "xxxx-xxxx-xxxx-xxxx" # create at bsky.app/settings/app-passwords
allowed_mentions = ["@trustedfriend.bsky.social"]
allowed_mentions.atrium-api crate.[channels.nostr]
enabled = true
private_key_hex = "..." # nsec in hex
relays = [
"wss://relay.damus.io",
"wss://nos.lol",
"wss://relay.primal.net",
]
allowed_pubkeys = ["npub1..."]
[channels.twitter]
enabled = true
api_key = "..."
api_secret = "..."
access_token = "..."
access_secret = "..."
bearer_token = "..."
[channels.reddit]
enabled = true
client_id = "..."
client_secret = "..."
username = "..."
password = "..." # or use refresh_token
user_agent = "zeroclaw-agent/0.1 by your-username"
subreddits = ["rust", "commandline"]
Bots on public social networks attract adversarial input. Two precautions:
allowed_mentions / allowed_pubkeys / allowed_users to whitelist. The default empty-list behaviour varies per channel — check each.Supervised or lower. A public-facing agent in Full autonomy is effectively a public shell. If you want to run public-facing, disable shell tools for that channel:[channels.bluesky]
tools_allow = ["http", "web_search"] # whitelist — no shell, no file_write
All social channels are subject to aggressive rate limits. ZeroClaw's outbound queue uses exponential backoff on 429 responses. If you hit persistent rate-limiting, lower draft_update_interval_ms and check whether you're accidentally editing messages (Bluesky does not support edits; others have per-operation limits).