open-index/open-npm huggingface dataset:
npm package: @kszongic/median-cli
Description: Compute the median of numbers from arguments or stdin
Author: kszongic
Latest version: 1.0.0

# @kszongic/median-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/median-cli)](https://www.npmjs.com/package/@kszongic/median-cli)
[![license](https://img.shields.io/npm/l/@kszongic/median-cli)](./LICENSE)

Compute the **median** of a list of numbers from arguments or stdin. Zero dependencies.

## Install

```bash
npm install -g @kszongic/median-cli
```

## Usage

```bash
# From arguments
median-cli 3 1 4 1 5
# => 3

# Even count (returns average of two middle values)
median-cli 1 2 3 4
# => 2.5

# From stdin
echo "10 20 30 40 50" | median-cli
# => 30

# One number per line
seq 1 100 | median-cli
# => 50.5
```

## Options

| Flag | Description |
|------|-------------|
| `-h, --help` | Show usage help |
| `-v, --version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/mime-type-cli
Description: Look up MIME types by file extension and extensions by MIME type — zero dependencies
Author: kszongic
Latest version: 1.0.0

# @kszongic/mime-type-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/mime-type-cli)](https://www.npmjs.com/package/@kszongic/mime-type-cli)
[![license](https://img.shields.io/npm/l/@kszongic/mime-type-cli)](./LICENSE)

Look up MIME types by file extension and extensions by MIME type. Zero dependencies.

## Install

```bash
npm install -g @kszongic/mime-type-cli
```

## Usage

```bash
# Extension → MIME type
mime-type png          # image/png
mime-type .json        # application/json
mime-type mp4          # video/mp4

# MIME type → extensions
mime-type image/jpeg   # jpg, jpeg
mime-type text/html    # html, htm

# List all mappings
mime-type --list
```

## Supports

80+ common file types including documents, images, audio, video, fonts, archives, and programming languages.

## License

MIT © 2026 kszongic
npm package: @kszongic/morse-cli
Description: Convert text to Morse code and back from the command line
Author: kszongic
Latest version: 1.0.0

# @kszongic/morse-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/morse-cli)](https://www.npmjs.com/package/@kszongic/morse-cli)
[![license](https://img.shields.io/npm/l/@kszongic/morse-cli)](./LICENSE)

Convert text to Morse code and back from the command line. Zero dependencies.

## Install

```bash
npm i -g @kszongic/morse-cli
```

## Usage

```bash
# Encode text to Morse (auto-detected)
morse-cli "Hello World"
# .... . .-.. .-.. --- / .-- --- .-. .-.. -..

# Decode Morse to text (auto-detected)
morse-cli ".... . .-.. .-.. ---"
# HELLO

# Force encode/decode
morse-cli -e "SOS"
morse-cli -d "... --- ..."

# Pipe support
echo "Hello" | morse-cli
```

## Options

| Flag | Description |
|------|-------------|
| `-e, --encode` | Force encode (text → Morse) |
| `-d, --decode` | Force decode (Morse → text) |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/multibase-cli
Description: Convert numbers between bases (bin, oct, dec, hex, base36, custom). Zero dependencies.
Author: kszongic
Latest version: 1.0.0

# @kszongic/multibase-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/multibase-cli)](https://www.npmjs.com/package/@kszongic/multibase-cli)
[![license](https://img.shields.io/npm/l/@kszongic/multibase-cli)](./LICENSE)

Convert numbers between bases (bin, oct, dec, hex, base36, custom 2-36). Zero dependencies.

## Install

```bash
npm i -g @kszongic/multibase-cli
```

## Usage

```bash
# Decimal to hex
multibase 255 --to hex
# ff

# Hex to binary (auto-detects 0x prefix)
multibase 0xff --to bin
# 11111111

# Show all common bases
multibase 0b11111111 --all
# bin  11111111
# oct  377
# dec  255
# hex  ff
# b36  73

# Custom base
multibase 42 --to 2
# 101010

# Explicit input base
multibase ff --from hex --to bin
# 11111111

# Uppercase output
multibase 255 --to hex -u
# FF
```

## Options

| Flag | Description |
|------|-------------|
| `--from, -f <base>` | Input base (2-36, or bin/oct/dec/hex) |
| `--to, -t <base>` | Output base (2-36, or bin/oct/dec/hex). Default: 10 |
| `--all, -a` | Show all common bases |
| `--upper, -u` | Uppercase output |
| `--help, -h` | Show help |

Auto-detects `0b` (binary), `0o` (octal), `0x` (hex) prefixes.

## License

MIT © 2026 kszongic
npm package: @kszongic/nid-gen-cli
Description: Generate compact, URL-friendly unique IDs from the command line. Zero dependencies.
Author: kszongic
Latest version: 1.0.0

# @kszongic/nid-gen-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/nid-gen-cli)](https://www.npmjs.com/package/@kszongic/nid-gen-cli)
[![license](https://img.shields.io/npm/l/@kszongic/nid-gen-cli)](./LICENSE)

Generate compact, URL-friendly unique IDs from the command line. Zero dependencies — uses Node.js built-in `crypto.randomBytes` for secure randomness.

## Install

```bash
npm i -g @kszongic/nid-gen-cli
```

## Usage

```bash
# Generate one 21-character ID (default)
nid-gen
# V1StGXR8_Z5jdHi6B-myT

# Generate 5 IDs
nid-gen -n 5

# Shorter 12-character IDs
nid-gen -s 12

# Custom alphabet (numeric only)
nid-gen -a 0123456789 -s 8

# Combine options
nid-gen -n 10 -s 16
```

## Options

| Flag | Description | Default |
|------|-------------|---------|
| `-n, --count <num>` | Number of IDs | 1 |
| `-s, --size <num>` | Length of each ID | 21 |
| `-a, --alphabet <str>` | Custom alphabet | `A-Za-z0-9-_` |
| `-h, --help` | Show help | |
| `-v, --version` | Show version | |

## Why?

Sometimes you just need a quick unique ID — for filenames, test data, tokens, database seeds. This is faster than opening a REPL.

## License

MIT © 2026 kszongic
npm package: @kszongic/port-finder
Description: Find available ports on your machine. Zero dependencies.
Author: kszongic
Latest version: 1.0.0

# @kszongic/port-finder

[![npm version](https://img.shields.io/npm/v/@kszongic/port-finder)](https://www.npmjs.com/package/@kszongic/port-finder)
[![license](https://img.shields.io/npm/l/@kszongic/port-finder)](./LICENSE)

Find available ports on your machine. Zero dependencies. Fast.

## Install

```bash
npm i -g @kszongic/port-finder
```

## Usage

```bash
# Find one free port starting at 3000
port-finder

# Start from port 8000
port-finder -p 8000

# Find 5 free ports
port-finder -c 5

# Check a range
port-finder --range 4000-5000 -c 3

# Bind to specific host
port-finder -h 127.0.0.1 -p 5000
```

## Programmatic

```js
// It's a CLI tool, but you can also use the logic:
const { execSync } = require('child_process');
const port = execSync('npx @kszongic/port-finder').toString().trim();
```

## Options

| Flag | Description | Default |
|------|-------------|---------|
| `-p, --port` | Starting port | 3000 |
| `-c, --count` | Number of ports to find | 1 |
| `-h, --host` | Host to bind | 0.0.0.0 |
| `--range` | Port range (e.g. 8000-9000) | — |

## License

MIT © 2026 kszongic
npm package: @kszongic/port-scan
Description: Fast concurrent port scanner CLI — scan local ports, see what's listening with process info
Author: kszongic
Latest version: 1.0.1

# @kszongic/port-scan

[![npm version](https://img.shields.io/npm/v/@kszongic/port-scan)](https://www.npmjs.com/package/@kszongic/port-scan)
[![license](https://img.shields.io/npm/l/@kszongic/port-scan)](LICENSE)

⚡ Fast concurrent port scanner for your local machine. Zero dependencies. Shows open ports, services, and process info.

## Install

```bash
npm i -g @kszongic/port-scan
```

Or run directly:

```bash
npx @kszongic/port-scan
```

## Usage

```bash
# Scan default ports (1-1024)
port-scan

# Scan a specific range
port-scan 3000-9000

# Scan common well-known ports only
port-scan --common

# Scan ALL ports
port-scan --range 1-65535

# JSON output (great for piping)
port-scan --json

# Custom timeout and concurrency
port-scan --timeout 2000 --concurrency 1000
```

## Example Output

```
⚡ Scanning 1024 ports...

  PORT     STATUS    SERVICE          PID      PROCESS
  ────────────────────────────────────────────────────────────
  22       ●  open   SSH              1234     sshd
  80       ●  open   HTTP             5678     nginx
  443      ●  open   HTTPS            5678     nginx
  3000     ●  open   Dev Server       9012     node
  5432     ●  open   PostgreSQL       3456     postgres

  Found 5 open port(s) out of 1024 scanned
```

## Options

| Option | Alias | Description | Default |
|---|---|---|---|
| `--range <start-end>` | `-r` | Port range to scan | `1-1024` |
| `--common` | `-c` | Scan well-known ports only | off |
| `--json` | `-j` | Output as JSON | off |
| `--timeout <ms>` | `-t` | Connection timeout per port | `1000` |
| `--concurrency <n>` | | Max concurrent connections | `500` |
| `--help` | `-h` | Show help | |

## Features

- 🚀 **Fast** — concurrent scanning (500 ports at a time by default)
- 🔍 **Process info** — shows PID and process name (Windows, Linux, macOS)
- 🏷️ **Service names** — identifies common services (HTTP, SSH, MySQL, etc.)
- 🎨 **Colorful output** — easy to read terminal display
- 📦 **Zero dependencies** — just Node.js built-ins
- 💻 **Cross-platform** — Windows, Linux, macOS

## License

MIT
npm package: @kszongic/pwd-gen-cli
Description: Generate secure random passwords from the command line — customizable length, charsets, and batch generation
Author: kszongic
Latest version: 1.0.0

# @kszongic/pwd-gen-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/pwd-gen-cli)](https://www.npmjs.com/package/@kszongic/pwd-gen-cli)
[![license](https://img.shields.io/npm/l/@kszongic/pwd-gen-cli)](./LICENSE)

Generate secure random passwords from the command line. Zero dependencies, uses Node.js `crypto.randomBytes`.

## Install

```bash
npm i -g @kszongic/pwd-gen-cli
```

## Usage

```bash
# Default: 16-char password with letters, digits, symbols
pwd-gen

# Custom length
pwd-gen -l 32

# Multiple passwords
pwd-gen -c 5

# Alphanumeric only
pwd-gen --alphanumeric

# Numeric PIN
pwd-gen --pin 6

# Combine options
pwd-gen -l 24 -c 10 --no-symbols
```

## Options

| Flag | Description | Default |
|------|-------------|---------|
| `-l, --length <n>` | Password length | 16 |
| `-c, --count <n>` | Number of passwords | 1 |
| `--no-symbols` | Exclude symbols | — |
| `--no-upper` | Exclude uppercase | — |
| `--no-lower` | Exclude lowercase | — |
| `--no-digits` | Exclude digits | — |
| `--alphanumeric` | Letters + digits only | — |
| `--pin <n>` | Generate numeric PIN | — |

## License

MIT © 2026 kszongic
npm package: @kszongic/rand-hex-cli
Description: Generate random hex strings from the command line — perfect for tokens, keys, and colors
Author: kszongic
Latest version: 1.0.0

# @kszongic/rand-hex-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/rand-hex-cli)](https://www.npmjs.com/package/@kszongic/rand-hex-cli)
[![license](https://img.shields.io/npm/l/@kszongic/rand-hex-cli)](./LICENSE)

> Generate random hex strings from the command line — perfect for tokens, keys, and colors.

Zero dependencies. Uses Node.js built-in `crypto.randomBytes` for cryptographically secure output.

## Install

```bash
npm i -g @kszongic/rand-hex-cli
```

## Usage

```bash
# Default: 32-char hex string
rand-hex
# a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

# Custom length
rand-hex 8
# f3a1b2c4

# Multiple strings
rand-hex 16 -n 5

# Uppercase with 0x prefix
rand-hex 6 --upper --prefix
# 0xF3A1B2
```

## Options

| Flag | Description |
|------|-------------|
| `[length]` | Number of hex characters (default: 32) |
| `-n, --count` | Number of strings to generate |
| `-u, --upper` | Uppercase output |
| `-p, --prefix` | Add `0x` prefix |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## Use Cases

- Generate API tokens and secrets
- Create random color codes (`rand-hex 6 -p`)
- Seed test data
- Quick nonce/salt generation

## License

MIT © 2026 kszongic
npm package: @kszongic/randfloat-cli
Description: Generate random floating-point numbers from the command line
Author: kszongic
Latest version: 1.0.0

# @kszongic/randfloat-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/randfloat-cli)](https://www.npmjs.com/package/@kszongic/randfloat-cli)
[![license](https://img.shields.io/npm/l/@kszongic/randfloat-cli)](./LICENSE)

> Generate random floating-point numbers from the command line.

## Install

```bash
npm install -g @kszongic/randfloat-cli
```

## Usage

```bash
# One random float between 0 and 1
randfloat

# Five random floats
randfloat -n 5

# Float between 10 and 20
randfloat --min 10 --max 20

# Three floats with 2 decimal places
randfloat -n 3 -p 2

# Comma-separated output
randfloat -n 4 -s ,
```

## Options

| Option | Description | Default |
|---|---|---|
| `-n, --count <N>` | Number of values | `1` |
| `--min <N>` | Minimum value | `0` |
| `--max <N>` | Maximum value | `1` |
| `-p, --precision <N>` | Decimal places | `6` |
| `-s, --separator <S>` | Output separator | newline |
| `-h, --help` | Show help | |
| `-v, --version` | Show version | |

## License

MIT © 2026 kszongic
npm package: @kszongic/randip-cli
Description: Generate random IP addresses (IPv4 & IPv6) for testing and development
Author: kszongic
Latest version: 1.0.0

# @kszongic/randip-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/randip-cli)](https://www.npmjs.com/package/@kszongic/randip-cli)
[![license](https://img.shields.io/npm/l/@kszongic/randip-cli)](./LICENSE)

Generate random IP addresses (IPv4 & IPv6) from the command line. Zero dependencies. Useful for testing, mocking, seeding databases, and network tooling.

## Install

```bash
npm install -g @kszongic/randip-cli
```

## Usage

```bash
# One random IPv4
randip
# → 142.87.203.11

# One random IPv6
randip -6
# → a3f1:28c0:9e7b:44d2:1fc8:bb03:7e91:d540

# Ten random IPv4 addresses
randip -n 10

# Private addresses only (RFC 1918)
randip --private -n 5
# → 10.44.201.3
# → 192.168.12.99
# → ...

# Public (non-reserved) addresses only
randip --public -n 5

# Random IP within a CIDR range
randip -c 10.0.0.0/24
# → 10.0.0.173
```

## Options

| Flag | Description |
|------|-------------|
| `-4, --ipv4` | Generate IPv4 address (default) |
| `-6, --ipv6` | Generate IPv6 address |
| `-n, --count <n>` | Number of addresses (default: 1) |
| `-c, --cidr <cidr>` | Generate within CIDR range (IPv4) |
| `--private` | Private/RFC1918 addresses only |
| `--public` | Public (non-reserved) addresses only |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/readme-forge
Description: Generate professional README.md files from your package.json. Zero config, instant results.
Author: kszongic
Latest version: 1.0.0

# readme-forge 📝

> Generate professional README.md files from your package.json. Zero config, instant results.

[![npm version](https://img.shields.io/npm/v/readme-forge.svg)](https://www.npmjs.com/package/readme-forge)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Why?

Starting a new project? Don't write your README from scratch. `readme-forge` reads your `package.json` and generates a clean, professional README instantly.

## Install

```bash
npm install -g readme-forge
```

## Usage

```bash
# Generate README from current directory's package.json
readme-forge

# Include badges and table of contents
readme-forge --badges --toc

# Generate from specific directory
readme-forge --dir ./packages/my-lib

# Preview without writing
readme-forge --stdout

# Overwrite existing README
readme-forge --force
```

## What it generates

- **Title** from package name
- **Description** from package.json
- **Badges** (npm version, license, GitHub stars) with `--badges`
- **Table of contents** with `--toc`
- **Install instructions** (detects CLI vs library)
- **Usage examples** (npx for CLIs, require for libraries)
- **npm scripts** table
- **Dependencies** list
- **Keywords** from package.json
- **License** with author link

## Options

```
--dir, -d       Source directory (default: .)
--output, -o    Output file (default: README.md)
--stdout        Print to stdout instead of file
--force, -f     Overwrite existing README.md
--badges        Include badges
--toc           Include table of contents
--help, -h      Show this help
```

## Features

- 🚀 Zero dependencies, zero config
- 📦 Reads everything from package.json
- 🔍 Auto-detects CLI vs library packages
- 🏷️ Generates npm + GitHub badges
- 📋 Table of contents support

## License

MIT © [kszongic](https://github.com/kszongic)
npm package: @kszongic/readme-score
Description: Score any README file 0-100 based on quality criteria. Zero dependencies.
Author: kszongic
Latest version: 1.0.1

# readme-score

[![npm version](https://img.shields.io/npm/v/readme-score)](https://www.npmjs.com/package/readme-score)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

> Score any README file 0-100 based on documentation quality criteria. Zero dependencies.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Scoring Criteria](#scoring-criteria)
- [API](#api)
- [Contributing](#contributing)
- [Changelog](#changelog)
- [License](#license)

## Installation

```bash
npm install -g readme-score
```

Or use directly with npx:

```bash
npx readme-score
```

## Usage

```bash
# Score README in current directory
readme-score

# Score a specific file
readme-score ./README.md

# Score a GitHub repository
readme-score https://github.com/facebook/react
```

The tool produces color-coded terminal output with a visual progress bar, checkmarks for passing criteria, and marks for missing sections.

## Scoring Criteria

| Criteria | Points |
|---|---|
| Has title/heading | 5 |
| Has description | 10 |
| Has installation instructions | 10 |
| Has usage examples | 15 |
| Has code blocks | 10 |
| Has badges | 5 |
| Has license section | 5 |
| Has contributing section | 5 |
| Has table of contents | 5 |
| Length > 500 chars | 5 |
| Length > 1000 chars | 5 |
| Length > 2000 chars | 5 |
| Has screenshots/images | 5 |
| Has API/reference docs | 5 |
| Has changelog/version info | 5 |
| **Total** | **100** |

## API

Use readme-score programmatically:

```js
const { score } = require('readme-score/lib/scorer');
const result = score('# My Project');
console.log(result.total);
```

### score(content)

Returns an object with total, max, and results array.

## Contributing

Contributions welcome! Fork, branch, commit, PR.

## Changelog

### 1.0.0

- Initial release with 15 scoring criteria
- CLI supporting local files, URLs, and GitHub repos
- Zero dependencies

## License

[MIT](LICENSE)
npm package: @kszongic/redact-cli
Description: Redact sensitive data (emails, IPs, phone numbers, credit cards, SSNs) from stdin
Author: kszongic
Latest version: 1.0.0

# @kszongic/redact-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/redact-cli)](https://www.npmjs.com/package/@kszongic/redact-cli)
[![license](https://img.shields.io/npm/l/@kszongic/redact-cli)](./LICENSE)

Zero-dependency CLI to redact sensitive data (emails, IPs, phone numbers, credit cards, SSNs) from text streams.

## Install

```bash
npm i -g @kszongic/redact-cli
```

## Usage

```bash
# Redact all sensitive patterns
echo "Email me at john@example.com or call 555-123-4567" | redact
# => Email me at **************** or call ************

# Only redact emails
cat access.log | redact --only email

# Custom replacement character
echo "SSN: 123-45-6789" | redact --char X

# Show last 4 characters
echo "Card: 4111-1111-1111-1111" | redact --only creditcard --show 4
```

## Supported Patterns

| Type         | Example                |
|-------------|------------------------|
| `email`     | `user@example.com`     |
| `creditcard`| `4111-1111-1111-1111`  |
| `ssn`       | `123-45-6789`          |
| `phone`     | `(555) 123-4567`       |
| `ipv4`      | `192.168.1.1`          |

## Options

| Flag           | Description                          |
|----------------|--------------------------------------|
| `--only <t>`   | Comma-separated types to redact      |
| `--char <c>`   | Replacement character (default: `*`) |
| `--show <n>`   | Show last N chars unmasked           |
| `-h, --help`   | Show help                            |

## License

MIT © 2026 kszongic
npm package: @kszongic/regex-test-cli
Description: Test regex patterns from the command line — match, extract groups, replace. Zero dependencies.
Author: kszongic
Latest version: 1.0.0

# @kszongic/regex-test-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/regex-test-cli)](https://www.npmjs.com/package/@kszongic/regex-test-cli)
[![license](https://img.shields.io/npm/l/@kszongic/regex-test-cli)](./LICENSE)

Test regex patterns from the command line — match, extract groups, replace. Zero dependencies.

## Install

```bash
npm i -g @kszongic/regex-test-cli
```

## Usage

```bash
# Simple match
regex-test "\d+" "abc 123 def"
# {"match":"123","index":4}

# All matches
regex-test "\d+" -a "abc 123 def 456"
# [{"match":"123","index":4},{"match":"456","index":12}]

# Capture groups
regex-test "(\w+)@(\w+)" "user@host"
# {"match":"user@host","index":0,"groups":["user","host"]}

# Case-insensitive
regex-test "hello" -f i "Hello World"

# Replace
regex-test "\d+" --replace X "abc 123 def 456"
# abc X def 456

# Stdin
echo "hello world" | regex-test "\w+" -a --stdin
```

## Options

| Flag | Description |
|------|-------------|
| `-f, --flags <flags>` | Regex flags (g, i, m, s, u) |
| `-a, --all` | Show all matches (implies g) |
| `-r, --replace <str>` | Replace matches |
| `--stdin` | Read from stdin |
| `-h, --help` | Show help |

## License

MIT © 2026 kszongic
npm package: @kszongic/ruler-cli
Description: Print a terminal column ruler for aligning text
Author: kszongic
Latest version: 1.0.0

# @kszongic/ruler-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/ruler-cli)](https://www.npmjs.com/package/@kszongic/ruler-cli)
[![license](https://img.shields.io/npm/l/@kszongic/ruler-cli)](./LICENSE)

Print a terminal column ruler for aligning text. Zero dependencies.

## Install

```bash
npm i -g @kszongic/ruler-cli
```

## Usage

```bash
# Ruler matching terminal width
ruler

# Fixed 40-column ruler
ruler 40

# Label every 5 columns
ruler -s 5

# Custom tick character
ruler -c +
```

### Output

```
        10        20        30        40
....:....|....:....|....:....|....:....|
```

## Options

| Flag | Description | Default |
|------|-------------|---------|
| `[width]` | Ruler width | terminal width |
| `-s, --step <n>` | Label interval | 10 |
| `-c, --char <ch>` | Tick character | `\|` |
| `-h, --help` | Show help | |
| `-v, --version` | Show version | |

## License

MIT © 2026 kszongic
npm package: @kszongic/sort-lines-cli
Description: Sort lines from stdin or files — alphabetically, numerically, reverse, unique, case-insensitive
Author: kszongic
Latest version: 1.0.0

# @kszongic/sort-lines-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/sort-lines-cli)](https://www.npmjs.com/package/@kszongic/sort-lines-cli)
[![license](https://img.shields.io/npm/l/@kszongic/sort-lines-cli)](./LICENSE)

Sort lines from stdin or files — alphabetically, numerically, reverse, unique, case-insensitive.

Zero dependencies. Works everywhere Node.js runs.

## Install

```bash
npm i -g @kszongic/sort-lines-cli
```

## Usage

```bash
# Sort a file alphabetically
sort-lines names.txt

# Pipe from stdin
cat data.txt | sort-lines

# Reverse numeric sort
sort-lines -rn numbers.txt

# Unique lines, case-insensitive
sort-lines -ui mixed.txt

# Combine flags
echo -e "Banana\napple\nbanana\nApple" | sort-lines -iu
```

## Options

| Flag | Description |
|------|-------------|
| `-r, --reverse` | Reverse sort order |
| `-n, --numeric` | Sort numerically |
| `-u, --unique` | Remove duplicate lines |
| `-i, --ignore-case` | Case-insensitive sort |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/split-file-cli
Description: Split files into chunks by line count or number of parts
Author: kszongic
Latest version: 1.0.0

# @kszongic/split-file-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/split-file-cli)](https://www.npmjs.com/package/@kszongic/split-file-cli)
[![license](https://img.shields.io/npm/l/@kszongic/split-file-cli)](./LICENSE)

Split files into chunks by line count, number of parts, or byte size. Zero dependencies.

## Install

```bash
npm install -g @kszongic/split-file-cli
```

## Usage

```bash
# Split into chunks of 1000 lines each
split-file data.csv -l 1000

# Split into exactly 5 parts
split-file biglog.txt -n 5

# Split into 10MB chunks
split-file dump.sql -b 10M

# Output to a specific directory with custom prefix
split-file data.csv -l 500 -o chunks/ -p output

# Read from stdin
cat data.txt | split-file - -l 500
```

## Options

| Option | Description |
|---|---|
| `-l, --lines <n>` | Lines per chunk |
| `-n, --parts <n>` | Number of output parts |
| `-b, --bytes <n>` | Bytes per chunk (supports K, M, G suffixes) |
| `-o, --output <dir>` | Output directory (default: `.`) |
| `-p, --prefix <str>` | Output filename prefix |
| `--ext <ext>` | Output file extension |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## Output

Files are named `{prefix}_{NNN}{ext}`:

```
data_001.csv
data_002.csv
data_003.csv
```

## License

MIT
npm package: @kszongic/standup-git
Description: See what you worked on yesterday — a CLI tool that shows git log summaries for standups
Author: kszongic
Latest version: 1.0.0

# @kszongic/git-standup

[![npm version](https://img.shields.io/npm/v/@kszongic/git-standup.svg)](https://www.npmjs.com/package/@kszongic/git-standup)
[![license](https://img.shields.io/npm/l/@kszongic/git-standup.svg)](https://github.com/kszongic/git-standup/blob/main/LICENSE)

> 🧑‍💻 See what you worked on yesterday — a CLI tool for daily standups

**Zero dependencies.** Just runs `git log` under the hood.

## Install

```bash
npm i -g @kszongic/git-standup
```

Or run directly:

```bash
npx @kszongic/git-standup
```

## Usage

```bash
# In any git repo — shows your commits since last working day
git-standup

# Look back 7 days
git-standup --days 7

# Show all authors
git-standup --all

# Filter by author
git-standup --author "John"

# Custom date range
git-standup --since 2025-01-01 --until 2025-01-31

# Scan multiple repos in a directory
git-standup ~/projects
```

## Output

```
  Wednesday, 2025-03-05
    ● 14:23 a1b2c3d fix: resolve edge case in parser — John
    ● 10:05 e4f5a6b feat: add dark mode support — John

  Tuesday, 2025-03-04
    ● 16:30 b7c8d9e docs: update README — John
```

## Options

| Option | Description |
|---|---|
| `--days <N>` | Look back N days (default: last working day, skips weekends) |
| `--since <date>` | Start date (YYYY-MM-DD) |
| `--until <date>` | End date (YYYY-MM-DD) |
| `--author <name>` | Filter by author name |
| `--all` | Show commits from all authors |
| `-h, --help` | Show help |

## How It Works

- By default, shows commits since the **last working day** (skips weekends)
- On Monday, it shows Friday's commits
- Pass a directory containing multiple git repos to scan them all
- Uses your `git config user.name` as the default author filter
- Colorful terminal output grouped by date

## License

MIT
npm package: @kszongic/stats-cli
Description: Pipe numbers in, get statistics out — min, max, mean, median, sum, count, stdev. Zero dependencies.
Author: kszongic
Latest version: 1.0.0

# @kszongic/stats-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/stats-cli)](https://www.npmjs.com/package/@kszongic/stats-cli)
[![license](https://img.shields.io/npm/l/@kszongic/stats-cli)](./LICENSE)

> Pipe numbers in, get statistics out. Zero dependencies.

Computes **count, min, max, sum, mean, median, and standard deviation** from any stream of numbers.

## Install

```bash
npm i -g @kszongic/stats-cli
```

## Usage

```bash
# Basic usage
echo -e "1\n2\n3\n4\n5" | stats-cli

# Output:
# count:  5
# min:    1
# max:    5
# sum:    15
# mean:   3
# median: 3
# stdev:  1.414214

# JSON output
seq 1 100 | stats-cli --json

# From a file
cat measurements.txt | stats-cli

# Combine with other tools
git log --format=%s | grep -o '[0-9]*' | stats-cli
```

## Options

| Flag | Description |
|------|-------------|
| `-j`, `--json` | Output as JSON |
| `-h`, `--help` | Show help |
| `-v`, `--version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/tally-cli
Description: Count occurrences of each line from stdin — like sort | uniq -c but cross-platform and sorted by frequency
Author: kszongic
Latest version: 1.0.0

# @kszongic/tally-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/tally-cli)](https://www.npmjs.com/package/@kszongic/tally-cli)
[![license](https://img.shields.io/npm/l/@kszongic/tally-cli)](./LICENSE)

Count occurrences of each line from stdin — like `sort | uniq -c` but cross-platform, zero dependencies, and sorted by frequency.

## Install

```bash
npm i -g @kszongic/tally-cli
```

## Usage

```bash
# Count word frequency
echo -e "apple\nbanana\napple\napple\nbanana\ncherry" | tally
# 3  apple
# 2  banana
# 1  cherry

# Top 2 most frequent
cat access.log | tally --top 2

# Sort alphabetically
cat words.txt | tally --name

# Ascending order
cat data.txt | tally --asc

# Custom delimiter
cat items.txt | tally -d ","
```

## Options

| Flag | Description |
|------|-------------|
| `-a, --asc` | Sort ascending instead of descending |
| `-n, --name` | Sort alphabetically by line text |
| `-t, --top N` | Show only the top N entries |
| `-d, --delimiter` | Delimiter between count and text (default: tab) |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## Real-world examples

```bash
# Most common HTTP status codes
awk '{print $9}' access.log | tally --top 5

# Most used shell commands
history | awk '{print $2}' | tally --top 10

# Count file extensions in a directory
find . -type f | sed 's/.*\.//' | tally
```

## License

MIT © 2026 kszongic
npm package: @kszongic/text-case-cli
Description: Convert text between camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE, and more
Author: kszongic
Latest version: 1.0.0

# @kszongic/text-case-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/text-case-cli)](https://www.npmjs.com/package/@kszongic/text-case-cli)
[![license](https://img.shields.io/npm/l/@kszongic/text-case-cli)](./LICENSE)

Convert text between camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE, and more. Zero dependencies.

## Install

```bash
npm i -g @kszongic/text-case-cli
```

## Usage

```bash
text-case <case> <text...>
echo "some text" | text-case <case>
```

### Supported Cases

| Case       | Example Output       |
|------------|---------------------|
| `camel`    | `myVariableName`    |
| `snake`    | `my_variable_name`  |
| `kebab`    | `my-variable-name`  |
| `pascal`   | `MyVariableName`    |
| `constant` | `MY_VARIABLE_NAME`  |
| `dot`      | `my.variable.name`  |
| `title`    | `My Variable Name`  |
| `sentence` | `My variable name`  |

### Examples

```bash
$ text-case camel "hello world"
helloWorld

$ text-case snake myVariableName
my_variable_name

$ echo "hello-world" | text-case pascal
HelloWorld

$ text-case constant "some api key"
SOME_API_KEY
```

## License

MIT © 2026 kszongic
npm package: @kszongic/timestamp-cli
Description: Convert between unix timestamps and human-readable dates from the command line
Author: kszongic
Latest version: 1.0.0

# @kszongic/timestamp-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/timestamp-cli)](https://www.npmjs.com/package/@kszongic/timestamp-cli)
[![license](https://img.shields.io/npm/l/@kszongic/timestamp-cli)](./LICENSE)

Convert between unix timestamps and human-readable dates from the command line. Zero dependencies.

## Install

```bash
npm i -g @kszongic/timestamp-cli
```

## Usage

```bash
# Current unix timestamp
timestamp
# → 1709600000

# Current time in all formats
timestamp now
#   ISO:   2024-03-05T03:33:20.000Z
#   UTC:   Tue, 05 Mar 2024 03:33:20 GMT
#   Local: Tue Mar 05 2024 03:33:20 GMT+0000
#   Unix:  1709600000
#   Ms:    1709600000000

# Unix → date
timestamp 1709600000

# Date string → unix
timestamp "2024-03-05"

# Milliseconds mode
timestamp -ms
timestamp 1709600000000 -ms
```

## License

MIT © 2026 kszongic
npm package: @kszongic/tmpfile-cli
Description: Create temporary files and directories from the command line
Author: kszongic
Latest version: 1.0.0

# @kszongic/tmpfile-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/tmpfile-cli)](https://www.npmjs.com/package/@kszongic/tmpfile-cli)
[![license](https://img.shields.io/npm/l/@kszongic/tmpfile-cli)](./LICENSE)

Create temporary files and directories from the command line. Zero dependencies. Works on macOS, Linux, and Windows.

## Install

```bash
npm i -g @kszongic/tmpfile-cli
```

## Usage

```bash
# Create an empty temp file
tmpfile
# /tmp/tmp-a1b2c3d4e5f6

# Create a temp directory
tmpfile -d

# With extension
tmpfile -s .json

# With prefix and suffix
tmpfile -p log- -s .txt

# Write content directly
tmpfile -c "hello world"

# Pipe stdin
echo "some data" | tmpfile

# Custom base directory
tmpfile -t ./my-tmp

# Dry run (just print the path)
tmpfile --dry-run -s .log
```

## Options

| Flag | Description |
|------|-------------|
| `-d, --dir` | Create a directory instead of a file |
| `-p, --prefix STR` | Name prefix (default: `tmp-`) |
| `-s, --suffix STR` | Name suffix / extension |
| `-t, --tmpdir DIR` | Base directory (default: `os.tmpdir()`) |
| `-c, --content STR` | Write content to the file |
| `--dry-run` | Print path without creating anything |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/todo-cli
Description: A simple file-based todo list manager for the command line — zero dependencies
Author: kszongic
Latest version: 1.0.0

# @kszongic/todo-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/todo-cli)](https://www.npmjs.com/package/@kszongic/todo-cli)
[![license](https://img.shields.io/npm/l/@kszongic/todo-cli)](./LICENSE)

A simple file-based todo list manager for the command line. Zero dependencies.

Todos are stored in `.todos.json` in the current directory — perfect for per-project task tracking.

## Install

```bash
npm install -g @kszongic/todo-cli
```

## Usage

```bash
todo add "Fix the login bug"
todo add "Write tests"
todo list
#   ○ 1. Fix the login bug
#   ○ 2. Write tests
#   0/2 done

todo done 1
# ✓ Done: Fix the login bug

todo rm 2
# 🗑  Removed: Write tests

todo clear
# 🧹 All todos cleared
```

## Commands

| Command | Description |
|---|---|
| `todo add <text>` | Add a new todo |
| `todo list` | List all todos (default) |
| `todo done <n>` | Mark todo #n as done |
| `todo undone <n>` | Reopen todo #n |
| `todo rm <n>` | Remove todo #n |
| `todo clear` | Remove all todos |
| `todo help` | Show help |

## Why?

Sometimes you just need a quick checklist without leaving the terminal. No accounts, no sync, no config — just a JSON file in your project.

## License

MIT © 2026 kszongic
npm package: @kszongic/transpose-cli
Description: Transpose rows and columns of delimited text (CSV, TSV, whitespace)
Author: kszongic
Latest version: 1.0.1

# @kszongic/transpose-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/transpose-cli)](https://www.npmjs.com/package/@kszongic/transpose-cli)
[![license](https://img.shields.io/npm/l/@kszongic/transpose-cli)](./LICENSE)

Transpose rows and columns of delimited text. Zero dependencies.

## Install

```bash
npm install -g @kszongic/transpose-cli
```

## Usage

```bash
# Transpose CSV
echo -e "name,age,city\nalice,30,nyc\nbob,25,sf" | transpose
# Output:
# name,alice,bob
# age,30,25
# city,nyc,sf

# Transpose TSV
cat data.tsv | transpose

# Custom delimiters
cat data.csv | transpose -d , -o $'\t'

# Pipe-delimited
echo -e "a|b|c\n1|2|3" | transpose -d '|'
```

## Options

| Flag | Description |
|------|-------------|
| `-d, --delimiter <char>` | Input delimiter (auto-detected by default) |
| `-o, --output-delimiter <char>` | Output delimiter (defaults to input delimiter) |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## Auto-detection

If no delimiter is specified, transpose auto-detects from: `\t` `,` `|` `;` or whitespace.

## License

MIT © 2026 kszongic
npm package: @kszongic/tsv2csv-cli
Description: Convert TSV (tab-separated values) to CSV from the command line
Author: kszongic
Latest version: 1.0.0

# @kszongic/tsv2csv-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/tsv2csv-cli)](https://www.npmjs.com/package/@kszongic/tsv2csv-cli)
[![license](https://img.shields.io/npm/l/@kszongic/tsv2csv-cli)](./LICENSE)

> Convert TSV (tab-separated values) to CSV from the command line. Zero dependencies.

## Install

```bash
npm install -g @kszongic/tsv2csv-cli
```

## Usage

```bash
# Pipe from stdin
cat data.tsv | tsv2csv

# Read from file
tsv2csv data.tsv

# Custom input delimiter
tsv2csv -d "|" data.txt
```

## Options

| Flag | Description | Default |
|------|-------------|---------|
| `-d, --delimiter <char>` | Input field delimiter | `\t` (tab) |
| `-q, --quote <char>` | CSV quote character | `"` |
| `-h, --help` | Show help | |
| `-v, --version` | Show version | |

## How It Works

- Splits each line by the input delimiter (tab by default)
- Wraps fields in quotes when they contain commas, quotes, or newlines
- Escapes quote characters by doubling them (RFC 4180 compliant)

## Examples

**Input (TSV):**
```
name	city	note
Alice	New York	loves "coffee"
Bob	San Francisco	enjoys, hiking
```

**Output (CSV):**
```
name,city,note
Alice,New York,"loves ""coffee"""
Bob,San Francisco,"enjoys, hiking"
```

## License

MIT © 2026 kszongic
npm package: @kszongic/url-encode-cli
Description: URL encode and decode strings from the command line — zero dependencies
Author: kszongic
Latest version: 1.0.0

# @kszongic/url-encode-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/url-encode-cli)](https://www.npmjs.com/package/@kszongic/url-encode-cli)
[![license](https://img.shields.io/npm/l/@kszongic/url-encode-cli)](./LICENSE)

> URL encode and decode strings from the command line — zero dependencies.

## Install

```bash
npm i -g @kszongic/url-encode-cli
```

## Usage

```bash
# Encode (default: encodeURIComponent)
url-encode "hello world"
# → hello%20world

# Decode
url-encode -d "hello%20world"
# → hello world

# URI mode (preserves :// and other structural chars)
url-encode -u "https://example.com/path with spaces"
# → https://example.com/path%20with%20spaces

# Pipe from stdin
echo "foo=bar baz" | url-encode
# → foo%3Dbar%20baz
```

## Options

| Flag | Description |
|------|-------------|
| `-d, --decode` | Decode instead of encode |
| `-c, --component` | Use `encodeURIComponent` / `decodeURIComponent` (default) |
| `-u, --uri` | Use `encodeURI` / `decodeURI` |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## License

MIT © [kszongic](https://github.com/kszongic)
npm package: @kszongic/url-parse-cli
Description: Parse and inspect URLs from the command line — extract protocol, host, path, query params, and more
Author: kszongic
Latest version: 1.0.0

# @kszongic/url-parse-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/url-parse-cli)](https://www.npmjs.com/package/@kszongic/url-parse-cli)
[![license](https://img.shields.io/npm/l/@kszongic/url-parse-cli)](./LICENSE)

Parse and inspect URLs from the command line. Zero dependencies.

## Install

```bash
npm install -g @kszongic/url-parse-cli
```

## Usage

```bash
# Full breakdown
url-parse "https://example.com:8080/path?foo=bar&baz=1#section"
# protocol: https:
# host: example.com:8080
# hostname: example.com
# port: 8080
# pathname: /path
# search: ?foo=bar&baz=1
# hash: #section
# origin: https://example.com:8080
# params:
#   foo = bar
#   baz = 1

# JSON output
url-parse "https://example.com/search?q=hello" --json

# Extract a single field
url-parse "https://example.com/search?q=hello" --field hostname
# example.com

# Get query params
url-parse "https://example.com?a=1&b=2" -f params
```

## Options

| Flag | Description |
|------|-------------|
| `-j, --json` | Output as JSON |
| `-f, --field <name>` | Print only one field |
| `-h, --help` | Show help |

## License

MIT © 2026 kszongic
npm package: @kszongic/uuid-gen-cli
Description: Generate UUIDs (v4) from the command line. Zero dependencies.
Author: kszongic
Latest version: 1.0.1

# uuid-gen-cli

[![npm version](https://img.shields.io/npm/v/uuid-gen-cli.svg)](https://www.npmjs.com/package/uuid-gen-cli)
[![license](https://img.shields.io/npm/l/uuid-gen-cli.svg)](./LICENSE)

Generate random v4 UUIDs from the command line. Zero dependencies — uses Node.js built-in `crypto.randomUUID()`.

## Install

```bash
npm install -g uuid-gen-cli
```

## Usage

```bash
# Generate one UUID
uuid-gen
# e.g. 3b12f1a4-7c89-4d2e-a5f6-1234abcd5678

# Generate multiple
uuid-gen 5

# Uppercase
uuid-gen --upper

# Compact (no dashes)
uuid-gen --bare

# Combine options
uuid-gen -n 10 --upper --bare
```

## Options

| Flag | Description |
|------|-------------|
| `-n, --count <n>` | Number of UUIDs (default: 1) |
| `-u, --upper` | Uppercase output |
| `-b, --bare` | Remove dashes |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## License

MIT © 2026 kszongic
npm package: @kszongic/wait-port-cli
Description: Wait for a TCP port to become available — useful for CI/CD, Docker, and startup scripts
Author: kszongic
Latest version: 1.0.0

# @kszongic/wait-port-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/wait-port-cli)](https://www.npmjs.com/package/@kszongic/wait-port-cli)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

Wait for a TCP port to become available. Zero dependencies. Perfect for CI/CD pipelines, Docker compose scripts, and startup orchestration.

## Install

```bash
npm install -g @kszongic/wait-port-cli
```

## Usage

```bash
# Wait for port 3000 on localhost
wait-port 3000

# Wait for a remote host
wait-port localhost:5432

# Custom timeout (60 seconds)
wait-port 127.0.0.1:6379 -t 60000

# Custom retry interval and quiet mode
wait-port db:3306 -i 1000 -q
```

## Options

| Option | Description | Default |
|---|---|---|
| `-t, --timeout <ms>` | Timeout in milliseconds | `30000` |
| `-i, --interval <ms>` | Retry interval in milliseconds | `500` |
| `-q, --quiet` | Suppress output | `false` |
| `-h, --help` | Show help | |

## Exit Codes

- `0` — Port is available
- `1` — Timeout or error

## Use Cases

**Docker Compose** — wait for database before starting app:
```bash
wait-port db:5432 && npm start
```

**CI/CD** — wait for dev server:
```bash
npm run dev &
wait-port 3000 -t 15000 && npm test
```

## License

MIT © 2026 kszongic
npm package: @kszongic/watchfile-cli
Description: Zero-dependency CLI to watch files/directories and run a command on changes
Author: kszongic
Latest version: 1.0.0

# watchfile-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/watchfile-cli)](https://www.npmjs.com/package/@kszongic/watchfile-cli)
[![license](https://img.shields.io/npm/l/@kszongic/watchfile-cli)](./LICENSE)

Zero-dependency CLI to watch files or directories and run a command on changes.

## Install

```bash
npm i -g @kszongic/watchfile-cli
```

## Usage

```bash
# Watch a directory and run tests
watchfile src/ -- npm test

# Watch multiple paths
watchfile src/ test/ -- node build.js

# Watch a single file
watchfile config.json -- echo "config changed"

# Custom debounce (ms)
watchfile -d 500 src/ -- npm run build
```

## Options

| Flag | Description |
|------|-------------|
| `-d, --debounce <ms>` | Debounce interval (default: 300ms) |
| `-h, --help` | Show help |
| `-v, --version` | Show version |

## How it works

Uses Node.js built-in `fs.watch` with recursive watching for directories. Changes are debounced to avoid running the command multiple times for rapid saves.

## License

MIT © 2026 kszongic
npm package: @kszongic/weekday-cli
Description: Find what day of the week any date falls on — zero dependencies
Author: kszongic
Latest version: 1.0.0

# @kszongic/weekday-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/weekday-cli)](https://www.npmjs.com/package/@kszongic/weekday-cli)
[![license](https://img.shields.io/npm/l/@kszongic/weekday-cli)](./LICENSE)

Find what day of the week any date falls on. Zero dependencies.

## Install

```bash
npm i -g @kszongic/weekday-cli
```

## Usage

```bash
weekday 2000-01-01
# 2000-01-01 → Saturday

weekday "Dec 25, 2025"
# 2025-12-25 → Thursday

weekday today
# (today's date) → (today's day)
```

## License

MIT © 2026 kszongic
npm package: @kszongic/xor-cli
Description: XOR encrypt/decrypt strings and files from the command line
Author: kszongic
Latest version: 1.0.0

# @kszongic/xor-cli

[![npm version](https://img.shields.io/npm/v/@kszongic/xor-cli)](https://www.npmjs.com/package/@kszongic/xor-cli)
[![license](https://img.shields.io/npm/l/@kszongic/xor-cli)](./LICENSE)

XOR encrypt/decrypt strings and files from the command line. Zero dependencies.

## Install

```bash
npm install -g @kszongic/xor-cli
```

## Usage

```bash
# XOR a string
xor-cli mykey "hello world"

# XOR a file
xor-cli mykey -f secret.txt -o secret.enc

# Decrypt (XOR is symmetric)
xor-cli mykey -f secret.enc -o secret.txt

# Hex mode
xor-cli --hex 4a6f "hello"

# Pipe from stdin
echo "hello" | xor-cli mykey

# Show help
xor-cli --help
```

## How It Works

XOR cipher applies each byte of the key cyclically against the input. It's symmetric — encrypt and decrypt use the same operation. Useful for quick obfuscation, CTF challenges, and binary manipulation.

## License

MIT © 2026 kszongic