# HABLAS Tools

**Yusratak — WhatsApp Username Intelligence Suite**

by [Abdulmoin Hablas](https://hablas.tech)

Fast, multi-lane CLI username checker for WhatsApp. Finds available 3-letter usernames using parallel connections with automatic reconnection and persistent state.

## Install

```bash
npm install -g hablas-tools
```

## Quick Start

```bash
ht
```

That's it. All options are shown in an interactive menu — no flags needed.

## Features

### Multi-Lane Batch Scanning
Connect multiple WhatsApp numbers simultaneously. Each lane checks a different portion of the username space, making scans **N× faster**.

- **Single Lane** — one connection, sequential scanning
- **Multi-Lane Batch** — 2–20 connections scanning in parallel

### Persistent Connections
Auto-reconnects when connection drops. Scans resume automatically without losing progress.

### Smart Defaults
- **Default mode**: Exhaustive (all 3-char combos, random order)
- **Default speed**: Fast (0.5–1.5s)
- **Default charset**: Full (a-z 0-9 . _)
- **Remembers your last run** — all settings persist automatically

### Interactive Menu
```
ht
```

```
  ╭──────────────────────────────────────╮
  │  Scan Configuration                  │
  ╰──────────────────────────────────────╯

  ── Lane Mode ──────────────────────────
  1  Single Lane         one connection
  2  Multi-Lane Batch    N connections, parallel
  ▸ Lane Mode [1]

  ── Scan Type ──────────────────────────
  1  Exhaustive    all combos, random    ●
  2  Doubled       repeated chars
  3  Random        N random names
  4  Single        one name
  5  From File     load .txt
  ▸ Scan Type [1]

  ▸ Length [3]

  ── Charset ───────────────────────────
  1  Full          a-z 0-9 . _      ●
  2  Alphanumeric  a-z 0-9
  3  Alpha         a-z only
  ▸ Charset [1]

  ── Speed ─────────────────────────────
  1  Safe     3-6s
  2  Normal   1.5-4s
  3  Fast     0.5-1.5s          ●
  4  Aggro    0.3-0.8s          ⚠
  5  Insane   0.1-0.3s          ☠
  6  Custom
  ▸ Speed [3]

  ── Filters (Enter to skip) ───────────
  ▸ Starts with
  ▸ Ends with
  ▸ Contains
  ▸ Exclude
  ▸ Proxy
```

## Multi-Lane Example

1. `ht` → Choose **Multi-Lane Batch** → Enter **5** lanes
2. Scan QR for Lane 1 → Scan QR for Lane 2 → ... → Lane 5
3. 51,022 three-letter usernames split across 5 lanes
4. All lanes scan simultaneously → **5× faster**

```
  ╭──────────────────────────────────────────────╮
  │  Yusratak — Multi-Lane Batch Scanner         │
  ╰──────────────────────────────────────────────╯

  Lanes     5
  Mode      exhaustive
  Length    3
  Charset   full
  Speed     fast (500-1500ms)
  Total     51,022 usernames
  Per lane  ~10,205 usernames

  ╭──────────────────────────────────────────────╮
  │  Connecting 5 Lanes                          │
  ╰──────────────────────────────────────────────╯

  ── Lane 1/5 ──
  📱 Scan QR: WhatsApp → Linked Devices → Link a Device
  ✓ Lane 1 connected!

  ── Lane 2/5 ──
  📱 Scan QR: WhatsApp → Linked Devices → Link a Device
  ✓ Lane 2 connected!

  ...

  ✓ All 5 lanes connected!  Stabilizing (5s)...

  Scanning with 5 lanes... Ctrl+C to stop

  █████████████████████████ 100%  51,022/51,022  5.2/s  ★8  ✗51,014  ?0  5 lanes
```

## Scan Types

| Mode | Description | Example |
|------|-------------|---------|
| Exhaustive | All combos, shuffled | 51,022 three-letter names |
| Doubled | Repeated chars (aa1, a1a) | 3,718 names |
| Random | N random names | User-specified count |
| Single | Check one name | `@joe` |
| From File | Load from .txt | One name per line |

## Speed Presets

| Preset | Delay | Risk |
|--------|-------|------|
| Safe | 3–6s | Lowest |
| Normal | 1.5–4s | Balanced |
| Fast | 0.5–1.5s | Default |
| Aggro | 0.3–0.8s | ⚠ High |
| Insane | 0.1–0.3s | ☠ Extreme |
| Custom | Any | User-defined |

## Workspace System

Each folder is an independent workspace:

```
my-folder/
├── auth_info/           # Single-lane WhatsApp auth
├── auth_lane_1/         # Multi-lane auth (Lane 1)
├── auth_lane_2/         # Multi-lane auth (Lane 2)
├── data/
│   └── wa/
│       ├── wa_checked.txt
│       ├── wa_available.txt
│       ├── wa_taken.txt
│       └── lane_1/      # Multi-lane state
└── yusratak.json        # Saved settings
```

## Telegram Notifications

Automatic notifications when available usernames are found:
- **Admin**: Full details — folder, stats, mode
- **Member**: Only `يوزر متاح @xxx`

## CLI Flags

| Flag | Description |
|------|-------------|
| `ht` | Start scanner (interactive menu) |
| `ht --reset` | Delete all auth, generate new QR |
| `ht -v` | Show version |
| `ht -h` | Show help |

## Username Validation

Automatically skips usernames that WhatsApp rejects:
- ❌ Starts with period (`.`)
- ❌ Ends with period (`.`)
- ❌ Digits only (`123`)

## Requirements

- **Node.js** ≥ 18
- **WhatsApp account** (scan QR on first run)
- **Internet connection**

## Platforms

| 🪟 Windows | 🍎 macOS | 🐧 Linux |
|:----------:|:--------:|:--------:|
|     ✅      |    ✅     |    ✅     |

## License

MIT

---

**by Abdulmoin Hablas** — [hablas.tech](https://hablas.tech)
