🤝 Contribute
Help build the best free Twitter toolkit
XActions is open source (MIT license) and community-driven. Every contribution matters.
⭐ Star on GitHub🎯 Why Contribute?
Learn cutting-edge tech — browser automation, MCP protocol, AI integration, Puppeteer, Express.js, Prisma.
Get credited — every contributor is credited in the changelog and README.
Build your portfolio — contribute to a project used by thousands of people worldwide.
Shape the product — your features and ideas go directly into the next release.
🛠️ Ways to Contribute
Report Bugs
Found something broken? Open an issue.
Request Features
Have an idea? We'd love to hear it.
Submit Code
Fix bugs, add features, improve tests.
Improve Docs
Tutorials, examples, translations.
Design & UI
Enhance the dashboard and extension.
Spread the Word
Star, share, tweet, write about it.
🔧 Submit a Pull Request
Fork & Clone
Fork github.com/nirholas/XActions and clone your fork locally.
Create a Branch
git checkout -b feature/your-feature — use descriptive branch names.
Install & Develop
npm install → cp .env.example .env → npx prisma generate → npm run dev
Make Changes
Write clear code with comments. Follow existing patterns: const over let, async/await, data-testid selectors.
Submit PR
Push your branch and open a Pull Request. Link related issues. Maintainers aim to respond within 48 hours.
🏷️ Good First Issues
New to the project? Start with issues labeled "good first issue" — they're beginner-friendly tasks hand-picked by maintainers.
Browse Good First Issues →📁 Project Structure
xactions/
├── src/ → Core scripts, automation, MCP server, CLI
├── api/ → Express.js backend (routes, services, middleware)
├── dashboard/ → Static HTML frontend (dark theme, Twitter-style)
├── scripts/ → Standalone utility scripts (40+)
├── skills/ → 31 Agent Skill definitions
├── docs/ → Documentation, examples, tutorials
├── prisma/ → Database schema (PostgreSQL)
├── extension/ → Browser extension (Chrome/Edge)
├── bin/ → CLI entry point (xactions)
└── tests/ → Test suite
🎨 Code Style
constoverlet,async/awaitover callbacks- Prefer
data-testidselectors for DOM queries - Use emojis in
console.logmessages (🚀, ✅, ❌, ⏳) - Author credit:
// by nichxbt - Small, focused PRs — one feature or fix per PR
- Include 1–3 second delays in any automation scripts