direct-messages
SKILL.md
Direct Messages
Browser console scripts for sending, managing, and exporting X/Twitter DMs.
Available Scripts
| Script | File | Purpose |
|---|---|---|
| Send Direct Messages | src/sendDirectMessage.js |
Send personalized DMs to a list of users |
| DM Manager | src/dmManager.js |
Core DM management (read, filter, organize, export) |
Send Direct Messages
File: src/sendDirectMessage.js
Send personalized DMs to multiple users with message templates and rate limiting.
Configuration
const CONFIG = {
targetUsers: ['user1', 'user2'],
messageTemplate: 'Hey {username}! 👋 Just wanted to connect.',
limits: {
messagesPerSession: 10,
delayBetweenMessages: 30000,
},
skipIfAlreadyMessaged: true,
dryRun: true,
};
How to use
- Navigate to
x.com/messages - Edit CONFIG with target users and message template
- Set
dryRun: falsewhen ready - Open DevTools (F12) → Console
- Paste the script → Enter
Safety features
- Tracks sent messages in
localStorageto avoid duplicates - Configurable delay between messages (30s default)
- Session limit prevents over-messaging
- Dry-run mode previews actions without sending
Warning: Mass DMing can get your account restricted. Only message users who have open DMs or follow you.
DM Manager
File: src/dmManager.js
Core module for reading, filtering, organizing, and exporting DM conversations. Supports message requests, conversation search, and DM privacy settings.
How to use
- Navigate to
x.com/messages - Open DevTools (F12) → Console
- Paste the script → Enter
Key Selectors
| Element | Selector |
|---|---|
| New message button | [data-testid="NewDM_Button"] |
| Search people | [data-testid="searchPeople"] |
| Message input | [data-testid="dmComposerTextInput"] |
| Send button | [data-testid="dmComposerSendButton"] |
| Conversation list | [data-testid="conversation"] |
| Message bubble | [data-testid="messageEntry"] |
| Message requests | [data-testid="messageRequests"] |
| Back button | [data-testid="app-bar-back"] |
Notes
- DM scripts require being on the Messages page (
x.com/messages) - Group chats support up to 50 participants
- Message requests from non-followers must be approved before replying
- Add delays (30s+) between bulk DMs to avoid rate limits
{username}placeholder in templates is replaced with the recipient's handle- Sent history is persisted in
localStorageacross sessions
Weekly Installs
5
Repository
nirholas/xactionsGitHub Stars
108
First Seen
14 days ago
Security Audits
Installed on
openclaw5
gemini-cli5
github-copilot5
codex5
kimi-cli5
cursor5