nirholas/xactions/direct-messages

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Sends, manages, and automates direct messages on X/Twitter. Supports personalized bulk DMs with templates, conversation management, message request filtering, and DM export. The agent uses this skill when a user needs to send DMs, manage conversations, or automate direct messaging workflows.

Install

npx vskill@latest install nirholas/xactions/direct-messages

SKILL.md

Direct Messages

Browser console scripts for sending, managing, and exporting X/Twitter DMs.

Available Scripts

ScriptFilePurpose
Send Direct Messagessrc/sendDirectMessage.jsSend personalized DMs to a list of users
DM Managersrc/dmManager.jsCore 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
javascript
const CONFIG = {
targetUsers: ['user1', 'user2'],
messageTemplate: 'Hey {username}! 👋 Just wanted to connect.',
limits: {
messagesPerSession: 10,
delayBetweenMessages: 30000,
},
skipIfAlreadyMessaged: true,
dryRun: true,
};
How to use
  1. Navigate to x.com/messages
  2. Edit CONFIG with target users and message template
  3. Set dryRun: false when ready
  4. Open DevTools (F12) → Console
  5. Paste the script → Enter
Safety features
  • Tracks sent messages in localStorage to 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
  1. Navigate to x.com/messages
  2. Open DevTools (F12) → Console
  3. Paste the script → Enter

Key Selectors

ElementSelector
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 localStorage across sessions

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
608
Repository forks
113
Repository npm downloads, 7 days
101
7-day trend score
37

Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 25 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nirholas/xactions/direct-messages/badge)](https://verified-skill.com/skills/nirholas/xactions/direct-messages)

Something wrong with this skill or its page? Tell us.