A CLI tool for developers with common utilities like string manipulation, data format conversions, encoding, security stuff, date/time processing, and more.
The name strapd is a play on "strapped" — like having a utility belt for your development workflow.
Developer tasks are fragmented across too many tools. Need to encode base64? There's a website. UUID? Another site. String manipulation? Yet another. Every task requires hunting for the right tool or remembering yet another command syntax.
The alternatives aren't much better:
- Web tools: Scattered across the internet, require browser context switching
- CLI tools: Each has its own syntax (
jqfor JSON,base64for encoding,opensslfor hashing,sed/awkfor text manipulation) - LLMs: Overkill, slow, costly, and unnecessary for simple utilities
strapd consolidates common developer tasks into one unified tool with simple commands and intuitive aliases. It runs locally, offline, and blazingly fast.
It's primarily CLI-focused, but also includes a webapp interface for those who prefer GUIs. Both use the same core Rust library via WASM, ensuring consistent behavior everywhere.
- String Tools: case, trim, slugify, reverse, replace, analysis
- Identifiers: UUIDs (v4, v7), ULIDs
- Encoding: Base64, URL, Hex
- Data Formatting: JSON, YAML, XML, SQL (beautify, minify, sort), plus recursive seeded JSON array sampling
- Format Conversion: YAML ⇄ JSON, XML ⇄ JSON
- Security: Hash (MD5, SHA-1, SHA-256, SHA-512), HMAC (SHA-256, SHA-512), JWT, secret sanitization
- Random: numbers, strings
- Date/Time: timestamps
- Webapp Pipes: reusable, sequential workflows composed from compatible tools
- Clipboard: copy and paste (CLI only)
Head over to the webapp for an interactive experience!
# Add the tap
brew tap dhwaneetbhatt/tap
# Install strapd
brew install strapdcurl -fsSL https://raw.githubusercontent.com/dhwaneetbhatt/strapd/main/scripts/install.sh | bashInvoke-RestMethod -Uri "https://raw.githubusercontent.com/dhwaneetbhatt/strapd/main/scripts/install.ps1" | Invoke-ExpressionDownload pre-built binaries from Releases.
git clone https://github.com/dhwaneetbhatt/strapd.git
cd strapd
make cli-release
sudo ln -s $(pwd)/target/release/strapd /usr/local/bin/strapdRun strapd --help to discover commands. The usage guide covers CLI input and output patterns, examples across every command group, and WebApp Pipes.
- Fork and clone the repository
- Run
make setupto install the development toolchain and dependencies. It uses asdf for Node.js and pnpm, and rustup for Rust. - Install hooks:
make install-hooks - Make changes and commit (hooks run automatically)
- Submit a pull request
make setup # Install development tools and dependencies
make cli-build # Build CLI (debug)
make cli-release # Build CLI (release)
make wasm-build # Build WASM module
make webapp-build # Build webapp
make webapp-test # Run webapp tests
make lint # Run linters
make rust-test # Run Rust tests
make rust-fmt # Format Rust code
make install-hooks # Install git pre-commit hooks
make help # Show available commandsFor WebApp changes, run:
make webapp-test
make webapp-lint
make webapp-buildThis project is licensed under the Apache License 2.0 - see the LICENSE file for details.