48 commands for everyday dev tasks. JSON, encoding, hashing, time, HTTP, UUIDs — all offline, all fast.
CLI and TUI modes. No telemetry. No runtime dependencies.
$ echo '{"name":"zuxi","version":"0.2.1"}' | zuxi jsonfmt
{
"name": "zuxi",
"version": "0.2.1"
}
$ zuxi hash sha256 "hello world"
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
$ zuxi uuid generate
550e8400-e29b-41d4-a716-446655440000
$ zuxi base64 encode "hello world"
aGVsbG8gd29ybGQ=
Replace dozens of fragmented tools with one binary that works everywhere.
One static binary, no runtime dependencies. Download and run — on macOS or Linux, arm64 or amd64.
Pipe-friendly CLI for scripts and automation. Interactive TUI with live preview for exploration.
No telemetry, no phone-home, no accounts. Your data never leaves your machine.
Sub-millisecond startup time. No interpreters, no JIT warmup. Written in Zig for maximum performance.
Syntax-highlighted JSON, JWT, HTTP responses. Respects --no-color and pipe detection.
Homebrew, deb, rpm packages, or direct binary download. Build from source with just Zig.
Choose your preferred method.
brew install nxrvl/tap/zuxi
curl -LO https://github.com/nxrvl/zuxi/releases/latest/download/zuxi_0.2.1_amd64.deb
sudo dpkg -i zuxi_0.2.1_amd64.deb
curl -LO https://github.com/nxrvl/zuxi/releases/latest/download/zuxi-0.2.1-1.x86_64.rpm
sudo rpm -i zuxi-0.2.1-1.x86_64.rpm
git clone https://github.com/nxrvl/zuxi.git
cd zuxi
zig build -Doptimize=ReleaseSafe
48 commands organized into 6 categories. Every command works in both CLI and TUI modes.
jsonfmt
Format, minify, or validate JSON
jsonrepair
Fix broken JSON (LLM output, trailing commas)
jsonpath
Query JSON with dot-notation paths
jsonstruct
Generate Go struct from JSON
yamlfmt
Format YAML with consistent indentation
yamlstruct
Generate Go struct from YAML
tomlfmt
Format TOML with consistent style
xmlfmt
Format XML with consistent indentation
json2yaml
Convert JSON to YAML
yaml2json
Convert YAML to JSON
json2toml
Convert JSON to TOML
toml2json
Convert TOML to JSON
json2xml
Convert JSON to XML
xml2json
Convert XML to JSON
yaml2toml
Convert YAML to TOML
toml2yaml
Convert TOML to YAML
# Pretty-print JSON with syntax highlighting
$ echo '{"a":1,"b":[2,3]}' | zuxi jsonfmt
{
"a": 1,
"b": [
2,
3
]
}
# Fix broken JSON from LLM output
$ echo '{name: "test", }' | zuxi jsonrepair
{"name": "test"}
# Query nested data
$ echo '{"users":[{"name":"Alice"}]}' | zuxi jsonpath '.users[0].name'
Alice
# Convert between formats
$ echo '{"key":"value"}' | zuxi json2yaml
key: value
base64
Encode or decode base64 data
strcase
Convert between snake, camel, pascal, kebab, upper case
urlencode
URL percent-encoding and decoding (RFC 3986)
count
Count characters, words, and lines in text
slug
Convert text to a URL-friendly slug
# Base64 encode/decode
$ zuxi base64 encode "hello world"
aGVsbG8gd29ybGQ=
$ zuxi base64 decode "aGVsbG8gd29ybGQ="
hello world
# String case conversion
$ zuxi strcase snake "helloWorld"
hello_world
$ zuxi strcase pascal "hello_world"
HelloWorld
# Generate URL slug
$ zuxi slug "My New Blog Post"
my-new-blog-post
# Count text
$ echo "hello world" | zuxi count
Characters: 11
Words: 2
Lines: 1
hash
Compute SHA-256, SHA-512, MD5 digests
hmac
Compute HMAC signatures (SHA-256, SHA-512)
jwt
Decode JWT tokens, generate secret keys
# Hash a string
$ zuxi hash sha256 "test"
9f86d081884c7d659a2feaa0c55ad015...
# Hash from stdin
$ cat file.txt | zuxi hash sha512
ee26b0dd4af7e749aa1a8ee3c10ae992...
# HMAC signature
$ zuxi hmac sha256 "message" "secret-key"
4a7d1ed414474e4033ac29ccb8653d9b...
# Decode JWT with colored output
$ zuxi jwt decode "eyJhbGciOi..."
Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"user","iat":1700000}
# Generate JWT secret key
$ zuxi jwt generate
kX9m2pQ7...
time
Convert between Unix timestamps and RFC3339
cron
Parse and explain cron expressions
# Current time in multiple formats
$ zuxi time now
Unix: 1700000000
RFC3339: 2023-11-14T22:13:20Z
# Convert Unix timestamp
$ zuxi time unix 1700000000
2023-11-14T22:13:20Z
# Convert RFC3339 to Unix
$ zuxi time rfc3339 "2023-11-14T22:13:20Z"
1700000000
# Parse cron expression
$ zuxi cron "*/5 * * * *"
Every 5 minutes
Next: 2023-11-14T22:15:00Z
uuid
Generate and decode UUIDs
numbers
Convert between bin, oct, dec, hex
http
HTTP client (GET, POST, PUT, DELETE)
serve
Simple static HTTP file server
urls
Extract URLs from text
ports
List listening network ports
envfile
Validate and convert .env files
scaffold
Generate project file templates
gitignore
Generate .gitignore from templates
license
Generate license text (MIT, Apache, GPL...)
iban
IBAN validation and generation
# Generate UUID v4
$ zuxi uuid generate
550e8400-e29b-41d4-a716-446655440000
# Number conversion
$ zuxi numbers hex 255
ff
$ zuxi numbers bin 42
101010
# HTTP requests with colored output
$ zuxi http GET https://httpbin.org/get
# Serve static files
$ zuxi serve . --port 3000
Serving . on :3000
# Generate .gitignore
$ zuxi gitignore go,macos,vscode
# Generate license
$ zuxi license mit
csv2json
Convert CSV to JSON array of objects
csv2md
Convert CSV to Markdown table
tsv2md
Convert TSV to Markdown table
cssfmt
Format CSS with consistent indentation
cssmin
Minify CSS
htmlfmt
Format HTML with consistent indentation
gqlquery
Format GraphQL queries
# CSV to JSON
$ echo 'name,age\nAlice,30' | zuxi csv2json
[{"name":"Alice","age":"30"}]
# CSV to Markdown table
$ echo 'name,age\nAlice,30' | zuxi csv2md
| name | age |
|-------|-----|
| Alice | 30 |
# Format CSS
$ echo 'body{color:red;margin:0}' | zuxi cssfmt
body {
color: red;
margin: 0;
}
# Format GraphQL
$ echo 'query{user(id:1){name}}' | zuxi gqlquery
query {
user(id: 1) {
name
}
}
Supported by every command.
| Flag | Description |
|---|---|
--help, -h | Show help for any command |
--version, -v | Show version |
--output <file> | Write output to a file instead of stdout |
--format json|text | Control output format |
--no-color | Disable ANSI colored output |
--quiet | Suppress non-essential output |
Run zuxi without arguments to launch the interactive terminal UI.
See results as you type. Input and output side-by-side with real-time processing.
Arrow keys to browse commands, Tab to switch panels, F2 to copy output.
Toggle themes with F3. Both optimized for readability and long sessions.
{"name":"zuxi","ver":"0.2.1","active":true}{
"name": "zuxi",
"ver": "0.2.1",
"active": true
}