Skip to content

A tool to promote your npm packages and boost their download counts through automated strategies.

License

Notifications You must be signed in to change notification settings

MinhOmega/npm-increaser-downloads

Repository files navigation

📊 npm-increaser-downloads

A tool designed to simulate package downloads and increase the popularity score of npm packages, inspired by npm-downloads-increaser. This enhanced version allows developers to test and analyze the impact of download counts on package visibility and ranking within the npm ecosystem, with added support for packages not found in npms.io and several new features.

✨ Features

  • Simulates package downloads from the npm registry
  • Supports packages not listed on npms.io
  • Configurable download count, concurrency, and timeout settings
  • Supports both CLI and programmatic usage
  • Real-time progress tracking and statistics
  • Handles scoped packages and various network conditions

⚠️ Disclaimer

This tool is intended for educational and testing purposes only. Artificially inflating download counts may violate npm's terms of service. Use responsibly and at your own risk.

🖥️ Running from the command line

📥 Installing

Install npm-increaser-downloads globally using npm:

npm install -g npm-increaser-downloads

or

npx npm-increaser-downloads

🚀 Running

You can run npm-increaser-downloads in two ways:

  1. Interactive mode:
nid

This will prompt you for the necessary configuration options.

  1. Command-line arguments:
nid [options]

Available options:

  • -p, --package-name <name>: NPM package to increase the downloads of
  • -n, --num-downloads <number>: Number of times to download the package
  • -m, --max-concurrent-downloads <number>: Amount of downloads to run in parallel at once
  • -t, --download-timeout <number>: Max time (in ms) to wait for a download to complete
  • help: Display help information

Examples:

nid -p my-package -n 1000 -m 300 -t 3000
nid --package-name my-package --num-downloads 1000 --max-concurrent-downloads 300 --download-timeout 3000

For more information and all available options, run:

nid help

Once you specify your configuration, this will start spamming downloads for the provided package in the npmjs registry. This will increase the popularity score of the npm package.

NOTE: The npmJS Weekly Downloads are updated once every 24 hours, so results will not be instantly visible.

🎥 Demo

Demo

⚙️ Configuration options

Property Description Example
packageName NPM package to increase the downloads of "npm-increaser-downloads"
numDownloads Number of times to download the package 1000
maxConcurrentDownloads Amount of downloads to run in parallel at once 300
downloadTimeout Max time (in ms) to wait for for a download to complete 3000

NOTE: slower networks may perform better with a lower maxConcurrentDownloads and a higher downloadTimeout

🛠️ Running in TypeScript

📥 Installing

Install the project using:

git clone https://github.com/MinhOmega/npm-increaser-downloads

🔧 Setting up your configuration

Open npm-increaser-downloads.config.ts from the root directory, and populate the configuration options as shown in the table above.

💻 Running locally

Installing dependencies:

npm install

Running in development mode:

npm run dev

Running the CLI in development mode:

npm run dev:cli

Compiling to JavaScript:

npm run build

Running with Node:

npm start

Running tests:

npm test

Formatting code:

npm run format

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.