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

turbifier

v0.0.5

Published

Turbify email verifier — proxy support, concurrent processing, real-time progress

Downloads

423

Readme

Turbifier

Verify Turbify email accounts in bulk. Sort results into valid, invalid, and non-Turbify — all from the command line.

Proxy Support | Concurrent Processing | Real-time Progress


What is Turbifier?

Turbifier verifies Turbify (Yahoo Small Business) email accounts at scale. Give it a list of emails and it tells you which ones are valid Turbify accounts, which don't exist, and which aren't Turbify at all.

Output

| File | Description | | ------------------- | -------------------------------------------- | | valid.txt | Verified Turbify accounts that exist | | invalid.txt | Turbify accounts that don't exist | | not-turbify.txt | Non-Turbify emails with their detected provider |


Features

  • No Captcha — Direct verification, no captcha solving
  • 3-Way Sorting — Valid, invalid, or not-turbify with provider info
  • Proxy Support — SOCKS5, SOCKS4, HTTP, HTTPS with rotation and authentication
  • Concurrent Processing — Configurable parallel verification
  • Real-time Progress — Speed, ETA, and category breakdown while running
  • Duplicate Tracking — Per-project tracking to skip already-checked emails
  • Device Management — PIN protection, security questions, multi-device support
  • Rate Limiting — Configurable request throttling
  • Graceful Shutdown — Ctrl+C flushes pending results before exiting

Installation

npm install -g turbifier

Verify the installation:

turbifier --version

Quick Start

1. Create Configuration

turbifier init

Creates config.toml in your current directory with default settings.

2. Authenticate

turbifier login <your-access-token>

First time login will prompt you to:

  • Create a 6-digit PIN
  • Set up a security question for PIN recovery

3. Prepare Email List

Create emails.txt with one email per line:

[email protected]
[email protected]
[email protected]
[email protected]

4. Start Verification

turbifier start

Results are saved to your output folder:

./turbify-results/
├── valid.txt
├── invalid.txt
└── not-turbify.txt

Verify a specific amount:

turbifier start 500

Configuration

Turbifier supports config.toml (default) and config.jsonc formats.

Basic Settings

projectName = "my-project"           # For duplicate tracking
outputFolder = "./turbify-results"   # Where results are saved
filePath = "./emails.txt"            # Email list to verify
allowDuplicate = false               # Skip already-checked emails

concurrency = 10                     # Parallel workers (5-15 recommended)
intervalCap = 1000                   # Max requests per interval
interval = 1000                      # Interval in milliseconds

maximumError = 5                     # Consecutive errors before action
stopIfMaximumErrorReached = false    # true = stop, false = continue

Proxy Settings

[proxy]
enabled = true
stopIfNone = true                    # Stop if all proxies fail
rotate = true                        # Rotate between proxies
maximumProxyError = 5                # Errors before disabling a proxy
stopIfMaximumProxyErrorReached = false

[[proxy.proxies]]
useMe = true
protocol = "socks5"                  # socks5, socks4, http, https
host = "proxy.example.com"
port = 1080
useAuth = true
username = "your-username"
password = "your-password"

# Add more proxies by duplicating the [[proxy.proxies]] block
[[proxy.proxies]]
useMe = true
protocol = "http"
host = "proxy2.example.com"
port = 8080
useAuth = false
username = ""
password = ""

JSONC Format

Use --jsonc to create a JSONC config instead:

turbifier init --jsonc

Convert between formats:

turbifier convert

Output

Results are organized into three files:

./turbify-results/
├── valid.txt          # Verified Turbify accounts
├── invalid.txt        # Non-existent Turbify accounts
└── not-turbify.txt    # Non-Turbify emails with provider

valid.txt and invalid.txt contain one email per line. not-turbify.txt includes the detected provider:

[email protected] - Gmail
[email protected] - Outlook

Commands

Core

| Command | Description | | ------------------------- | ------------------------------------------------- | | turbifier init | Create config file | | turbifier init --jsonc | Create JSONC config | | turbifier convert | Convert config between TOML and JSONC | | turbifier start [N] | Start verification (optionally limit to N emails) | | turbifier login <token> | Authenticate with access token | | turbifier logout | Log out current device |

Configuration

Update config values without editing the file:

| Command | Description | | ------------------------------------- | ----------------------------- | | turbifier set --output <path> | Set output folder | | turbifier set --emails <path> | Set email file path | | turbifier set --project <name> | Set project name | | turbifier set --concurrency <n> | Set parallel workers | | turbifier set --interval <ms> | Set rate limit interval | | turbifier set --interval-cap <n> | Set max requests per interval | | turbifier set --max-errors <n> | Set error threshold | | turbifier set --allow-duplicates | Allow duplicate emails | | turbifier set --no-allow-duplicates | Filter duplicate emails |

Multiple values can be set at once:

turbifier set --project campaign-2 --output ./results --concurrency 20

Duplicate Tracking

| Command | Description | | ---------------------------------- | ------------------------------ | | turbifier stats | View project statistics | | turbifier clear --current | Clear current project tracking | | turbifier clear --project <name> | Clear specific project | | turbifier clear --force | Skip confirmation prompt |

Combine flags:

turbifier clear -cf          # Clear current project, skip prompt
turbifier clear -p old-data  # Clear specific project

Device Management

| Command | Description | | ---------------------------------- | ----------------------------------------- | | turbifier auth list | List all registered devices | | turbifier auth device <id> | View device details (supports partial ID) | | turbifier auth pin | Change your PIN | | turbifier auth reset-pin <token> | Reset PIN via security questions |

Security Questions

| Command | Description | | ------------------------------------ | ------------------------------- | | turbifier auth security-questions | View your security questions | | turbifier auth add-security | Add a security question (max 3) | | turbifier auth update-security <n> | Update question by number (1-3) | | turbifier auth remove-security <n> | Remove question by number (1-3) |

Updates

| Command | Description | | ------------------------ | -------------------------- | | turbifier check-update | Check for new versions | | turbifier upgrade | Install the latest version |

Help

turbifier --help              # General help
turbifier --version           # Show version
turbifier start --help        # Help for a specific command
turbifier auth --help         # Help for auth subcommands

Progress Display

During verification:

Processing |████████████░░░░░░░░| 60% | 600/1000 | 12.5/s | ETA 0:32
           ✓ 312 valid | ✗ 95 invalid | ⊘ 168 not-turbify | ⚠ 2 errors | avg 245ms

After completion:

✨ Processing Complete
─────────────────────────────────────────────
  Total:       1000 emails
  Valid:       312
  Invalid:     95
  Not Turbify: 591
  Errors:      2
─────────────────────────────────────────────
  Duration:  1:20
  Speed:     12.5 emails/sec
  Avg:       245ms/email

Device Management

Limits

  • Maximum 3 active devices per account
  • Devices inactive for 30+ days are auto-removed
  • 3-day cooling period after auto-removal

Logout Wait Period

After logging out, you must wait before logging back in on the same device:

  • 30+ days of usage: 3-day wait
  • Less than 30 days: 14-day wait

PIN

  • 6-digit PIN required for authentication
  • Optional hint to help you remember
  • Can be reset using security questions

Security Questions

  • 1-3 questions for PIN recovery
  • Choose from predefined questions or write your own
  • Required to reset a forgotten PIN

Proxies

Why Use Proxies?

  • Avoid rate limiting from a single IP
  • Distribute requests across multiple IPs
  • Increase verification throughput

Setup

[proxy]
enabled = true
rotate = true

[[proxy.proxies]]
useMe = true
protocol = "socks5"
host = "proxy.example.com"
port = 1080
useAuth = true
username = "user"
password = "pass"

Turbifier automatically:

  • Rotates between available proxies
  • Disables proxies that exceed the error threshold
  • Falls back to direct connection if all proxies fail (unless stopIfNone = true)

Supported Protocols

  • socks5
  • socks4
  • http
  • https

Rate Limiting

Control request rate to stay under detection thresholds:

concurrency = 10      # 10 simultaneous checks
intervalCap = 100     # Max 100 requests...
interval = 1000       # ...per 1000ms (1 second)

Example: 10 concurrent workers, max 100 requests per second.


Duplicate Tracking

Turbifier tracks checked emails per project to avoid rechecking:

turbifier stats                    # View current project stats
turbifier clear --current          # Clear and re-check
turbifier clear --project old-run  # Clear a different project

Benefits:

  • Resume interrupted verification — already-checked emails are skipped
  • Track verification history per project
  • Switch between projects with different projectName values

Best Practices

Performance

  1. Start with concurrency of 5, increase to 10-20 if stable
  2. Use intervalCap of 50-200 per second
  3. Use 3-10 proxies for best results, or one rotating proxy
  4. Test with 100 emails first, then scale up

Reliability

  1. Enable duplicate tracking (allowDuplicate = false)
  2. Use proxies to avoid IP-based rate limits
  3. If error rate exceeds 10%, reduce concurrency and increase interval
  4. Monitor the error count in the progress display

Security

  1. Never share your access token
  2. Set up 2-3 security questions for PIN recovery
  3. Use a non-obvious PIN
  4. Log out from devices you no longer use

Troubleshooting

"Not authenticated"

turbifier login <your-token>

"Configuration file not found"

turbifier init

"Email file not found"

turbifier set --emails ./path/to/emails.txt

"Maximum consecutive errors reached"

  • Check your internet connection
  • Verify proxy settings if enabled
  • Reduce concurrency: turbifier set --concurrency 5
  • Increase interval: turbifier set --interval 2000

"Device limit reached"

turbifier auth list       # See all devices
turbifier logout          # Logout from old device

High error rate

  • Enable proxy rotation
  • Reduce concurrency to 5
  • Increase interval to 2000ms
  • Check proxy health

Slow verification

  • Increase concurrency to 15-20
  • Use multiple fast proxies
  • Reduce interval (minimum 500ms recommended)

Updating

Check for updates:

turbifier check-update

Install the latest version:

turbifier upgrade

Turbifier detects your package manager (npm, bun, pnpm, yarn) and runs the appropriate install command.


Examples

Basic

turbifier init
turbifier login ABC123TOKEN
turbifier start

Verify First 500 Emails

turbifier start 500

High-Speed with Proxies

concurrency = 20
intervalCap = 2000
interval = 1000

[proxy]
enabled = true
rotate = true

[[proxy.proxies]]
useMe = true
protocol = "socks5"
host = "fast-proxy-1.com"
port = 1080

[[proxy.proxies]]
useMe = true
protocol = "socks5"
host = "fast-proxy-2.com"
port = 1080
turbifier start

Resume After Interruption

# Just run again — already-checked emails are skipped
turbifier start

# Or clear tracking to start fresh
turbifier clear -c
turbifier start

Change Settings on the Fly

turbifier set --concurrency 20 --interval 500
turbifier set --emails new-batch.txt --project batch-2
turbifier start

License

Copyright 2024 Turbifier. All rights reserved.

This software is proprietary and confidential. Unauthorized copying, distribution, or use is strictly prohibited.