npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

emoo

v1.0.0

Published

CLI tool for IMAP email migration and cPanel bulk operations

Readme

emoo 🐄

CLI tool for IMAP email migration and cPanel email bulk operations

Installation

# Clone repository
git clone <repository-url>
cd emoo

# Install dependencies
pnpm install

# Install globally for easier access
pnpm install -g emoo

Usage

General Help

# View all available commands
emoo --help

# or using pnpm
pnpm start --help

cPanel Bulk Email Operations

This feature allows bulk email operations in cPanel including password reset and email creation.

Password Reset - Interactive Mode

# Interactive mode - will ask for server, username, and API key
emoo cpanel reset

Bulk Email Password Reset by Domain

# With all parameters
emoo cpanel reset \
  --server "server.example.com:2083" \
  --username "cpanel_user" \
  --api-key "your_api_key" \
  --password "new_password_for_all" \
  --output "./results/custom_output.csv"

# Or with random passwords
emoo cpanel reset \
  --server "server.example.com" \
  --username "cpanel_user" \
  --api-key "your_api_key" \
  --output "./results/passwords.csv"

Bulk Email Creation

# Create emails from CSV file
emoo cpanel create \
  --server "server.example.com" \
  --username "cpanel_user" \
  --api-key "your_api_key" \
  --csv "./input/new-emails.csv"

# Or create manually with interactive prompts
emoo cpanel create \
  --server "server.example.com" \
  --username "cpanel_user" \
  --api-key "your_api_key"

Options

  • -s, --server <server>: cPanel server domain/IP (with optional port)
  • -u, --username <username>: cPanel username
  • -k, --api-key <key>: cPanel API key
  • -p, --password <password>: New password for all accounts (empty = random)
  • -o, --output <file>: CSV output file path
  • --regex <pattern>: Filter emails using regex pattern
  • --debug: Enable debug mode

IMAP Email Synchronization

This feature is for email synchronization between IMAP servers using imapsync.

Basic Usage

# Sync using default CSV (input/example.csv)
emoo sync

# Sync with custom CSV file
emoo sync --csv input/my-migration.csv

# Dry run - see what would be synced without execution
emoo sync --dry-run --csv input/example.csv

# Use Docker for imapsync
emoo sync --docker --csv input/example.csv

# Parallel processing with 4 jobs
emoo sync --jobs 4 --csv input/example.csv

Options

  • -c, --csv <file>: CSV file containing sync configuration (default: "input/example.csv")
  • -j, --jobs <number>: Number of parallel jobs (default: "1")
  • --docker: Use Docker for imapsync
  • --log-dir <dir>: Directory for log files (default: "./results")
  • --dry-run: Preview commands without execution

CSV Format for Sync

The CSV file must contain the following columns:

src_host,src_user,src_pass,dst_host,dst_user,dst_pass,src_port,dst_port,src_ssl,dst_ssl,src_auth,dst_auth
mail.old.com,[email protected],pass1,mail.new.com,[email protected],pass1,993,993,1,1,,
mail.old.com,[email protected],pass2,mail.new.com,[email protected],pass2,143,143,0,0,PLAIN,PLAIN

Required columns:

  • src_host: Source IMAP server
  • src_user: Source username
  • src_pass: Source password
  • dst_host: Destination IMAP server
  • dst_user: Destination username
  • dst_pass: Destination password

Optional columns:

  • src_port, dst_port: Port numbers
  • src_ssl, dst_ssl: SSL enabled (1/true = enabled, 0/false = disabled)
  • src_auth, dst_auth: Authentication mechanisms

Features

cPanel Tools Features

  • Auto-detect authentication method (cpanel/basic/uapi-token)
  • Bulk email accounts password reset (including random password generation)
  • Bulk email creation
  • All result in CSV format

IMAP Sync Features

  • CSV-based configuration
  • Docker support for imapsync

Dependencies

  • Node.js: >= 18.0.0
  • imapsync: Optional (if not using Docker)
  • Docker: Optional (for imapsync Docker mode)

Examples

Example 1: cPanel Password Reset

# Reset passwords for all emails in selected domain
emoo cpanel reset \
  --server "cpanel.example.com" \
  --username "admin" \
  --api-key "your-api-key"

Example 2: cPanel Bulk Email Creation

# Create emails from CSV file
emoo cpanel create \
  --server "cpanel.example.com" \
  --username "admin" \
  --api-key "your-api-key" \
  --csv input/new-emails.csv

Example 3: IMAP Migration with Parallel Jobs

# Migrate 10 accounts in parallel using Docker
emoo sync \
  --csv input/migration-batch1.csv \
  --jobs 10 \
  --docker \
  --log-dir ./logs/batch1

Example 3: Dry Run Testing

# Test configuration without execution
emoo sync --dry-run --csv input/test-config.csv

Troubleshooting

imapsync not found

# Install imapsync locally or use Docker mode
emoo sync --docker

cPanel API Authentication Issues

The tool will automatically try 3 authentication methods:

  1. cPanel auth (Authorization: cpanel username:apikey)
  2. Basic auth (Authorization: Basic)
  3. UAPI token (Authorization: uapi-token username:token)

CSV Format Issues

Make sure the CSV file:

  • Uses comma (,) as separator
  • Has header row
  • Required columns are available
  • No empty rows in the middle of data

Disclaimer

⚠️ Use at your own risk! Always backup your data before using emoo, test in development environment first, and make sure you have permission to access the email accounts. Authors are not responsible for any data loss or issues.

License

This project is licensed under the ISC License - see the LICENSE file for details.