{"id":31733704,"url":"https://github.com/dhwaneetbhatt/strapd","last_synced_at":"2026-01-21T13:04:08.804Z","repository":{"id":315093913,"uuid":"1057905432","full_name":"dhwaneetbhatt/strapd","owner":"dhwaneetbhatt","description":"strapd is a collection of utilities that alleviate developer productivity","archived":false,"fork":false,"pushed_at":"2026-01-16T15:18:51.000Z","size":373,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-16T23:54:42.125Z","etag":null,"topics":["cli","developer-tools","rust"],"latest_commit_sha":null,"homepage":"https://dhwaneetbhatt.com/strapd/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhwaneetbhatt.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-09-16T11:11:33.000Z","updated_at":"2026-01-08T09:00:27.000Z","dependencies_parsed_at":"2025-10-07T20:28:23.793Z","dependency_job_id":"9cb1fb4c-1404-4a75-96b8-549247e1b113","html_url":"https://github.com/dhwaneetbhatt/strapd","commit_stats":null,"previous_names":["dhwaneetbhatt/strapd"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/dhwaneetbhatt/strapd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhwaneetbhatt%2Fstrapd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhwaneetbhatt%2Fstrapd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhwaneetbhatt%2Fstrapd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhwaneetbhatt%2Fstrapd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhwaneetbhatt","download_url":"https://codeload.github.com/dhwaneetbhatt/strapd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhwaneetbhatt%2Fstrapd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","developer-tools","rust"],"created_at":"2025-10-09T08:54:39.003Z","updated_at":"2026-01-21T13:04:08.798Z","avatar_url":"https://github.com/dhwaneetbhatt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# strapd 🛠️\n\nA CLI tool for developers with common utilities like string manipulation, data format conversions, encoding, security stuff, date/time processing, and more.\n\n## Why strapd?\n\nThe name `strapd` is a play on \"strapped\" — like having a utility belt for your development workflow.\n\n### The Problem\n\nDeveloper 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.\n\nThe alternatives aren't much better:\n- **Web tools**: Scattered across the internet, require browser context switching\n- **CLI tools**: Each has its own syntax (`jq` for JSON, `base64` for encoding, `openssl` for hashing, `sed`/`awk` for text manipulation)\n- **LLMs**: Overkill, slow, costly, and unnecessary for simple utilities\n\n### The Solution\n\n`strapd` consolidates common developer tasks into one unified tool with simple commands and intuitive aliases. It runs locally, offline, and blazingly fast.\n\nIt'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.\n\n## Current Features\n\n- **String Tools**: case, trim, slugify, reverse, replace, analysis\n- **Identifiers**: UUIDs (v4, v7), ULIDs\n- **Encoding**: Base64, URL, Hex\n- **Data Formatting**: JSON, YAML, XML, SQL (beautify, minify, sort)\n- **Format Conversion**: YAML ⇄ JSON, XML ⇄ JSON\n- **Security**: Hash (MD5, SHA-1, SHA-256, SHA-512), HMAC (SHA-256, SHA-512)\n- **Random**: numbers, strings\n- **Date/Time**: timestamps\n- **Clipboard**: copy and paste (CLI only)\n\nHead over to the [webapp](https://dhwaneetbhatt.com/strapd/) for an interactive experience!\n\n## CLI Installation\n\n### Homebrew (macOS/Linux)\n\n```bash\n# Add the tap\nbrew tap dhwaneetbhatt/tap\n\n# Install strapd\nbrew install strapd\n```\n\n### Quick Install Script\n\n#### Unix/Linux/macOS\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/dhwaneetbhatt/strapd/main/scripts/install.sh | bash\n```\n\n#### Windows (PowerShell)\n\n```powershell\nInvoke-RestMethod -Uri \"https://raw.githubusercontent.com/dhwaneetbhatt/strapd/main/scripts/install.ps1\" | Invoke-Expression\n```\n\n### Manual Download\n\nDownload pre-built binaries from [Releases](https://github.com/dhwaneetbhatt/strapd/releases).\n\n### From Source\n\n```bash\ngit clone https://github.com/dhwaneetbhatt/strapd.git\ncd strapd\nmake cli-release\nsudo ln -s $(pwd)/target/release/strapd /usr/local/bin/strapd\n```\n\n## Quick Start\n\n```bash\n# Convert text to uppercase\nstrapd str upper \"hello world\"\n\n# Generate a UUID\nstrapd uuid v4\n\n# Create a URL slug\necho \"Hello, World!\" | strapd str slugify\n```\n\n### Discovering Commands\n\n```bash\nstrapd --help              # See all available commands\nstrapd string --help       # See string operations\nstrapd string case --help  # See string case operations\n```\n\n### Flexible Input\n\nAll operations work with stdin for seamless integration:\n\n```bash\necho \"hello world\" | strapd str upper\ncat file.txt | strapd string slugify\n```\n\n### Clipboard Integration\n\nUse `strapd copy` and `strapd paste` to work with clipboard to build easy workflows:\n\n```bash\nstrapd copy | strapd str upper | strapd paste\n```\n\n## Development and Contributing\n\n1. Fork and clone the repository\n2. Install hooks: `make install-hooks`\n3. Make changes and commit (hooks run automatically)\n4. Submit a pull request\n\n### Available Commands\n\n```bash\nmake cli-build     # Build CLI (debug)\nmake cli-release   # Build CLI (release)\nmake wasm-build    # Build WASM module\nmake webapp-build  # Build webapp\nmake test          # Run tests\nmake lint          # Run clippy linter\nmake fmt           # Format code\nmake install-hooks # Install git pre-commit hooks\nmake help          # Show all available commands\n```\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhwaneetbhatt%2Fstrapd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhwaneetbhatt%2Fstrapd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhwaneetbhatt%2Fstrapd/lists"}