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

@karthithehacker/ipchanger

v1.0.0

Published

Tor-based IP changer CLI tool that rotates your public IP address automatically using the Tor network and displays it in a clean terminal table.

Readme

IP CHANGER 🌐🔄

A powerful Tor-based IP rotation CLI tool that automatically changes your public IP address at a specified interval and displays it in a clean terminal table.

Built with ❤️ by @CappricioSec

Main Menu

⚠️ For educational and privacy testing purposes only. Do not misuse this tool for illegal activities.


📌 Features

  • 🔄 Automatic IP Rotation – Change your public IP using the Tor network
  • 🧅 Tor Integration – Uses Tor SOCKS proxy for anonymous routing
  • 📊 Clean Table Output – Displays IP and timestamp in a formatted CLI table
  • 🖥 ASCII Banner – Stylish banner powered by figlet
  • Live Interval Update – Change refresh interval without restarting the tool
  • 🛑 Graceful Exit – Stop the tool anytime using keyboard input

💻 Tech Stack

Language

  • Node.js (JavaScript)

Libraries Used

  • axios
  • commander
  • cli-table3
  • figlet
  • chalk

🗂️ Project Structure

ipchanger/
├── includes/
│   ├── banner.js      # banner, UI and help menu
│   ├── ip.js          # Tor connection and public IP fetching
│   ├── utils.js       # Tor checks and CLI argument handling
│
├── ipchanger.js       # main CLI entry point
├── package.json
└── README.md

🚀 Usage

🔧 Installation

First ensure Tor is installed on your system.

Download Tor:

  • Linux → sudo apt install tor
  • Mac → brew install tor
  • Windows → Install from Tor Project website

Then install the CLI globally:

npm install -g @karthithehacker/ipchanger

▶ Running the Tool

ipchanger -s 5

Available Options

| Command | Description | | -------------- | --------------------------------- | | -s <seconds> | Rotate IP every specified seconds | | -h | Show help menu |


🖥 Example Output

┌──(karthithehacker㉿BOOK-UVR5FJ22CV)-[~]
└─$ ipchanger -s 10

██╗██████╗      ██████╗██╗  ██╗ █████╗ ███╗   ██╗ ██████╗ ███████╗██████╗
██║██╔══██╗    ██╔════╝██║  ██║██╔══██╗████╗  ██║██╔════╝ ██╔════╝██╔══██╗
██║██████╔╝    ██║     ███████║███████║██╔██╗ ██║██║  ███╗█████╗  ██████╔╝
██║██╔═══╝     ██║     ██╔══██║██╔══██║██║╚██╗██║██║   ██║██╔══╝  ██╔══██╗
██║██║         ╚██████╗██║  ██║██║  ██║██║ ╚████║╚██████╔╝███████╗██║  ██║
╚═╝╚═╝          ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝

                                                 Website: cappriciosec.com

┌─────────────────────────┬────────────────────────────────────────┐
│ Service                 │ Information                            │
├─────────────────────────┼────────────────────────────────────────┤
│ Tor Status              │ Tor service started                    │
├─────────────────────────┼────────────────────────────────────────┤
│ IP Rotation             │ IP change every 10 sec                 │
├─────────────────────────┼────────────────────────────────────────┤
│ Terminate               │ Press X to terminate                   │
└─────────────────────────┴────────────────────────────────────────┘
[3:23:32 AM] Current IP → 107.189.3.148
[3:23:56 AM] Current IP → 192.42.116.144
[3:24:00 AM] Current IP → 109.70.100.9
[3:24:16 AM] Current IP → 109.70.100.3
[3:24:20 AM] Current IP → 107.189.10.175
[3:24:36 AM] Current IP → 45.134.225.36
[3:24:39 AM] Current IP → 109.70.100.7
[3:24:56 AM] Current IP → 192.159.99.168

🖥 Help Output

┌──(karthithehacker㉿BOOK-UVR5FJ22CV)-[~]
└─$ ipchanger -h

██╗██████╗      ██████╗██╗  ██╗ █████╗ ███╗   ██╗ ██████╗ ███████╗██████╗
██║██╔══██╗    ██╔════╝██║  ██║██╔══██╗████╗  ██║██╔════╝ ██╔════╝██╔══██╗
██║██████╔╝    ██║     ███████║███████║██╔██╗ ██║██║  ███╗█████╗  ██████╔╝
██║██╔═══╝     ██║     ██╔══██║██╔══██║██║╚██╗██║██║   ██║██╔══╝  ██╔══██╗
██║██║         ╚██████╗██║  ██║██║  ██║██║ ╚████║╚██████╔╝███████╗██║  ██║
╚═╝╚═╝          ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝

                                                 Website: cappriciosec.com



Usage:
  ipchanger -s <seconds>   Restart Tor every X seconds
  ipchanger -h             Show help

┌────────────────────┬───────────────────────────────────────────────────────┬─────────────────────────────────────────────┐
│ Application        │ Command / Steps                                       │ Description                                 │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Chromium           │ chromium --proxy-server="socks5://127.0.0.1:9050"     │ Launch Chromium with SOCKS5 proxy enabled   │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Chrome             │ chrome --proxy-server="socks5://127.0.0.1:9050"       │ Launch Google Chrome with SOCKS5 proxy      │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Firefox            │ Settings → Preferences → Network Settings → Manual    │ Configure Firefox via UI to use SOCKS5      │
│                    │ Proxy → SOCKS Host: 127.0.0.1 Port: 9050 SOCKS v5 →   │ proxy                                       │
│                    │ Enable Proxy DNS                                      │                                             │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Linux (system)     │ export ALL_PROXY="socks5h://127.0.0.1:9050"           │ Set proxy for terminal apps (session only)  │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Linux              │ Add socks5 127.0.0.1 9050 to /etc/proxychains.conf →  │ Force any application to use SOCKS5 proxy   │
│ (proxychains)      │ proxychains4 <command>                                │                                             │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ macOS              │ sudo networksetup -setsocksfirewallproxy "Wi-Fi"      │ Apply SOCKS5 proxy to Wi-Fi network         │
│                    │ 127.0.0.1 9050                                        │                                             │
├────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────┤
│ Windows            │ Use Proxifier / ProxyCap → Add Proxy: 127.0.0.1:9050  │ Windows requires helper tool for global     │
│                    │ (SOCKS5)                                              │ SOCKS proxy                                 │
└────────────────────┴───────────────────────────────────────────────────────┴─────────────────────────────────────────────┘

Setup

| Connect to | Command / Steps | Description | | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | Chromium | chromium --proxy-server="socks5://127.0.0.1:9050" | Launch Chromium with SOCKS5 proxy enabled. | | Chrome | chrome --proxy-server="socks5://127.0.0.1:9050" | Launch Google Chrome with SOCKS5 proxy. | | Firefox | Settings → Preferences → Network Settings → Manual Proxy → SOCKS Host: 127.0.0.1, Port: 9050, SOCKS v5 → Enable Proxy DNS | Configure Firefox via UI to use SOCKS5 proxy. | | Linux (system-wide) | export ALL_PROXY="socks5h://127.0.0.1:9050" | Set proxy for terminal apps (per session). | | Linux (proxychains) | Add socks5 127.0.0.1 9050 to /etc/proxychains.conf → Run: proxychains4 <command> | Force any app to use SOCKS5 proxy. | | macOS (system-wide) | sudo networksetup -setsocksfirewallproxy "Wi-Fi" 127.0.0.1 9050 | Apply SOCKS5 proxy to Wi-Fi network. | | Windows (system-wide) | Use Proxifier / ProxyCap → Add Proxy: 127.0.0.1:9050 (SOCKS5) → Apply Rules | Windows GUI doesn’t support SOCKS globally, requires helper tool. |

⚙️ Runtime Controls

While the program is running you can:

| Action | Result | | ----------------------- | ----------------------------- | | x + Enter | Exit the program | | Enter number (ex: 10) | Change interval to 10 seconds |


🧅 Tor Requirements

The tool uses the Tor SOCKS proxy.

Default Tor port:

127.0.0.1:9050

If Tor is not running, the tool will attempt to start it automatically.


🔄 Tor Circuit Rotation

The CLI requests a new Tor circuit every refresh using:

SIGNAL NEWNYM

This requires the Tor Control Port (9051).

Add this to your torrc file:

ControlPort 9051
CookieAuthentication 1

Restart Tor after updating.


⚠️ Notes

  • IP rotation depends on Tor's internal routing behavior.
  • Sometimes the IP may not change instantly.

Example warning:

warning: could not rotate Tor circuit: connect ECONNREFUSED 127.0.0.1:9051

👨‍💻 Authors

KarthiTheHacker


⚠️ Disclaimer

This tool is intended strictly for educational and privacy testing purposes.

Do NOT use this tool for:

  • illegal activities
  • bypassing services
  • attacking systems without permission

The developer assumes no responsibility for misuse.