TweetDM finds matching users on X, drafts personalized opening DMs, and keeps conversations going — all within the X API's hard rate limits and your own campaign caps.
Give TweetDM a target description and your pitch. It generates search queries, scores candidates, and runs the inbox. You review and intervene whenever you want.
Write who you want to reach and what you're offering. One paragraph each — plus caps for how hard to push.
The agent drafts X search queries, pulls recent tweets, and scores each author 0–10 against your brief. Only matches ≥5 become prospects.
Opening DMs reference each prospect's actual tweet or bio. Follow-ups are drafted by the LLM and sent — or you edit them first in the inbox.
Every feature is in service of one goal: send fewer, better messages — never get your account flagged, never sound like a bot.
Plain-English target description becomes 5 X search queries, ranked against your ideal profile.
Respects X's 15/15min and 1,440/24h per-user DM limits. Bounded per-run and per-day caps too.
Familiar 3-pane DM UI: thread list, bubbles, composer. Feels like X DMs, not a mass-send tool.
Each opener references the prospect's actual tweet or bio. No templates, no "hope you're doing well."
When they reply, the LLM drafts your next message in the conversation's tone. Cap at your chosen depth.
Your X OAuth tokens. Your OpenRouter key. Default model: claude-sonnet-4.5.
X's DM API caps every authenticated user at 15 DMs per 15 min and 1,440 DMs per 24h. TweetDM enforces both ceilings across every campaign and surfaces live usage in the sidebar so you can't accidentally trip a lockout. You set tighter caps per campaign if you want.
An X developer app with Read + Write + Direct Messages permissions on the Basic tier or above ($100/mo — Free tier can't send DMs). Plus an OpenRouter API key for the LLM. You paste both into Settings after signing up.
TweetDM enforces X's official per-user DM limits (15/15min, 1,440/24h) and defaults to conservative per-campaign caps (15/run, 200/day). It also adds a configurable delay between sends. The safest posture is to also keep your message volume human-paced — don't max out the cap every day.
X lets users restrict DMs to "people they follow." When we try to send to those accounts, X returns 403. We mark them undeliverable and don't retry. Cold outreach typically sees 60–80% undeliverable — this is a platform reality, not a bug.
Default is anthropic/claude-sonnet-4.5 via OpenRouter — best balance of nuanced writing for cold outreach without Opus-level cost. You can pick a different model in Settings.
Yes. Your X credentials, OpenRouter key, campaigns, prospects, and DM history are scoped to your user account and stored in a database you control. They're never shared across users.
Always. Every composer has an "AI" button that drops a draft into the input — you can send as-is, edit it, or discard and write your own. Auto-sending (opening campaigns) is opt-in per step.
Sign up, paste your X and OpenRouter keys, describe who you want to reach. TweetDM handles the rest.