A fast, lightweight CLI utility toolkit for developers and IT professionals. ut provides a comprehensive set of commonly-used tools in a single binary, eliminating the need to install and remember multiple utilities or search for random websites to perform simple tasks.
Install on macOS or Linux via homebrew
brew install ksdme/tap/utInstall on Linux or macOS via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ksdme/ut/releases/latest/download/ut-installer.sh | shInstall prebuilt binaries on Windows via powershell
powershell -ExecutionPolicy Bypass -c "irm https://github.com/ksdme/ut/releases/latest/download/ut-installer.ps1 | iex"Install from source
cargo install --git https://github.com/ksdme/ut.gitYou can also download prebuilt binaries directly from the releases page.
ut supports shell completions for bash, zsh, fish, nushell, elvish, and PowerShell. To enable tab completion:
Zsh
# Generate and save completions to your fpath ut completions zsh > ~/.zsh/completions/_ut # Or add directly to .zshrc (requires reload for each ut update) echo 'eval "$(ut completions zsh)"' >> ~/.zshrcBash
ut completions bash > ~/.local/share/bash-completion/completions/ut # Or add to .bashrc echo 'eval "$(ut completions bash)"' >> ~/.bashrcFish
ut completions fish > ~/.config/fish/completions/ut.fishNushell
ut completions nushell > ~/.config/nushell/completions/ut.nu # Or use the short alias ut completions nu > ~/.config/nushell/completions/ut.nuPowerShell
ut completions powershell | Out-File -FilePath $PROFILE -AppendAfter setting up completions, restart your shell or source your configuration file.
├── Encoding │ ├── base64 - Base64 encode/decode │ │ ├── encode │ │ └── decode │ └── url - URL encode/decode │ ├── encode │ └── decode ├── Hashing & Security │ ├── hash - Cryptographic hash digests │ │ ├── md5 │ │ ├── sha1 │ │ ├── sha224 │ │ ├── sha256 │ │ ├── sha384 │ │ └── sha512 │ ├── bcrypt - Password hashing and verification │ │ ├── hash │ │ └── verify │ └── jwt - JWT (JSON Web Token) utilities │ ├── encode │ ├── decode │ └── verify ├── Data Generation │ ├── uuid - Generate UUIDs │ │ ├── v1 │ │ ├── v3 │ │ ├── v4 │ │ ├── v5 │ │ └── v7 │ ├── token (secret, password) - Generate secure random tokens │ ├── lorem - Generate lorem ipsum text │ └── random - Generate random numbers ├── Text Processing │ ├── case - Convert text case formats │ │ ├── lower │ │ ├── upper │ │ ├── camel │ │ ├── title │ │ ├── constant │ │ ├── header │ │ ├── sentence │ │ ├── snake │ │ └── kebab │ ├── pretty-print (pp) - Unescape newlines and tabs │ └── diff - Compare text with visual output ├── Development Tools │ ├── calc (cal) - Expression calculator │ ├── json - JSON builder and utilities │ │ └── builder │ ├── regex - Interactive regex tester │ ├── crontab - Cron utilities │ │ └── schedule │ └── datetime (dt) - Parse and convert datetimes ├── Web & Network │ ├── http - HTTP utilities │ │ └── status │ ├── serve - Local HTTP file server │ └── qr - Generate QR codes ├── Color & Design │ └── color - Color utilities │ └── convert └── Reference └── unicode - Unicode symbol reference Encode and decode data using Base64 encoding.
- Supports both standard and URL-safe character sets
- Can read from files or stdin
ut base64 encode "hello world" ut base64 decode "aGVsbG8gd29ybGQ=" ut base64 encode --urlsafe "hello world" echo -n "hello world" | ut base64 encode -URL encode and decode text.
ut url encode "hello world" ut url decode "hello%20world" printf "hello world" | ut url encode -Generate cryptographic hash digests using various algorithms.
- Supports MD5, SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512
- Can read from files or stdin
ut hash sha256 "hello world" ut hash md5 - < file.txt echo -n "password" | ut hash sha256 -Hash and verify passwords using the bcrypt algorithm.
- Secure password hashing with configurable cost factor
- Built-in salt generation for each hash
- Verification returns "valid" or "invalid"
- Cost factor range: 4-31 (default: 12, higher = more secure but slower)
# Hash a password with default cost (12) ut bcrypt hash "mypassword" echo -n "mypassword" | ut bcrypt hash - # Wrong password verification ut bcrypt verify "wrongpassword" '$2b$12$...' # Output: invalidJWT (JSON Web Token) utilities for encoding, decoding, and verifying tokens.
- Support for HMAC algorithms (HS256, HS384, HS512)
- Encode with custom claims (iss, sub, aud, exp)
- Decode without verification (inspect token)
- Verify with signature validation
# Encode a JWT with custom claims ut jwt encode --payload '{"user":"alice"}' --secret "my-secret" --issuer "my-app" --expires-in 3600 # Decode a JWT without verification ut jwt decode eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... # Verify a JWT with signature validation ut jwt verify TOKEN --secret "my-secret" --issuer "my-app"Generate UUIDs in various versions.
- v1: Timestamp-based
- v3: Namespace + MD5 hash
- v4: Random
- v5: Namespace + SHA-1 hash
- v7: Timestamp-based, sortable
ut uuid v4 ut uuid v4 --count 5 ut uuid v5 --namespace DNS --name example.com ut uuid v7 ut uuid v7 --count 5Generate cryptographically secure random tokens.
- Customizable length and character sets
- Uses OS-level secure randomness
- Can be used for passwords, API keys, session tokens, etc.
# Generate a 32-character token ut token --length 32 # Generate a password (using alias) ut password --length 16 # Generate without symbols ut secret --no-symbols --length 64 # Generate without uppercase letters ut token --no-uppercase --length 20Generate lorem ipsum placeholder text.
- Customizable paragraph count and sentence structure
ut lorem --paragraphs 5 ut lorem --min-sentences 2 --max-sentences 6Generate random numbers within a specified range.
- Supports decimal precision with step parameter
- Can generate multiple values at once
ut random --min 1 --max 100 ut random --min 0 --max 1 --step 0.01 --count 10Convert text between different case formats.
- lowercase, UPPERCASE, camelCase, snake_case, kebab-case, Title Case, CONSTANT_CASE, Header-Case, Sentence case
ut case lower "Hello World" ut case camel "hello_world" ut case snake "HelloWorld" ut case kebab "HelloWorld" echo -n "Hello :)" | ut case lower -Resolve escaped newlines and tab characters in text.
ut pretty-print "hello\nworld\ttab" ut pp "hello\nworld\ttab"Compare text contents with visual diff output.
- Supports file comparison or interactive editing
- Color-coded character-level differences
ut diff -a file1.txt -b file2.txt ut diff # Opens editor for both inputsExpression calculator with support for multiple number formats and mathematical functions.
- Supports arithmetic operations, exponentiation, functions (sin, cos, tan, log, exp, sqrt, abs, floor, ceil, round)
- Binary (0b), hexadecimal (0x), and decimal number formats
- Mathematical constants (pi, e)
- Results displayed in decimal, hex, and binary
ut calc "2 + 2 * 3" ut cal "sin(pi / 2)" ut calc "0xFF + 0b1010" ut calc "sqrt(16) ^ 2" echo -n "2 + 2" | ut calc -JSON utilities including a powerful JSON builder.
- Build complex JSON structures using dot notation
- Supports nested objects and arrays
- Array indexing and append operations
ut json builder a.b.c=hello a.b.d=world ut json builder "user.name=John" "user.age=30" "user.tags[]=dev" "user.tags[]=rust" ut json builder "items[0].id=1" "items[0].name=first" "items[1].id=2"Interactive regex tester with live highlighting.
- Real-time pattern matching visualization
- Multi-color highlighting for capture groups
- Load test strings from files
ut regex ut regex --test sample.txtParse crontab expressions and show upcoming firing times.
- Support for traditional 5-field cron expressions
- Support for extended 6-field cron expressions (with seconds)
- Configurable number of results with -n / --count
- Configurable start time with -a / --after
ut crontab schedule "0 9 * * 1-5" ut crontab schedule "0 0 * * *" --count 3 ut crontab schedule "0 9 * * 1-5" --after "2024-01-01T00:00:00Z" echo -n "0 9 * * 1-5" | ut crontab schedule -Parse and convert datetimes between timezones.
- Support for ISO 8601 and custom format strings
- Convert between timezones
- "now" keyword for current time
ut datetime now ut dt "2025-10-04T15:30:00Z" --target-timezone "Asia/Tokyo" ut datetime "October 04, 2025 03:30 PM" --source-timezone UTC --parse-format "MonthName Day2, Year4 Hour12:Minute2 AMPM" echo -n "2025-10-04T15:30:00Z" | ut datetime -HTTP utilities including status code lookup.
ut http status 404 ut http status # List all status codesStart a local HTTP file server.
- Customizable host and port
- Directory listing support
- Optional HTTP Basic authentication
ut serve --port 8080 ut serve --directory ./public --auth username:passwordGenerate QR codes.
- Terminal display or save to PNG file
ut qr "https://example.com" ut qr "Hello World" --output qrcode.png echo -n "Hello World" | ut qr -Color utilities for working with different color formats.
- Supports hex, rgb, rgba, hsl, hwb, lab, lch, oklab, oklch
- Parses any CSS-compatible color format
ut color convert "#FF5733" ut color convert "rgb(255, 87, 51)" ut color convert "hsl(9, 100%, 60%)" printf "#FF5733" | ut color convert -Display Unicode symbol reference table.
ut unicode- crontab explainer
# Run the project cargo run -- <tool> [args] # Format code cargo fmt # Run tests cargo testParts of this project were built using Claude Code, an AI-powered coding assistant, with human oversight and collaboration.
Contributions are welcome! Please feel free to submit a Pull Request.