Skip to content

/tools

All Tools (25)

Single-purpose CLI tools for engineers. Every tool MIT licensed, production-tested at S-Tech Solutions. Click a name to see details.

jfq

Rustv0.1.0MIT

A fast JSON processor that reads data from files or stdin and supports dot-notation queries for extracting nested values. Pretty-prints by default with a --minify option for compact output. Uses serde_json under the hood for reliable parsing. Handles large JSON documents and arrays of objects.

$ jfq .name data.json

jfq .users[0].email < data.json


jfq --file data.json --query .items --minify
JSONUtilityDataCLI
download:tar.gzzip

lines

Rustv0.1.0MIT

A fast file search tool that finds regex matches across files and directories. Supports recursive directory traversal with automatic hidden file/directory skipping. Colour-coded output highlights matches in red, file paths in magenta, and line numbers in yellow. Can search single files or entire directory trees. Lightweight alternative to grep with sensible defaults.

$ lines 'error' app.log

lines -i 'fn main' src/


lines -r 'TODO' .


lines -c 'use' src/
SearchFilesystemRegexCLI
download:tar.gzzip

stree

Rustv0.1.0MIT

A zero-configuration static file server that serves a directory over HTTP. Perfect for local development, sharing files on a LAN, or previewing static sites. Sets correct MIME types based on file extensions, supports CORS headers, and shows a directory listing for the root. Single binary, no configuration files needed.

$ stree

stree --port 3000 --dir ./public


stree --port 8080 --cors
HTTPServerDevelopmentCLI
download:tar.gzzip

camel

Rustv0.1.0MIT

A text case converter that transforms strings between the four most common programming naming conventions. Supports input from command line arguments or files. Handles mixed-case input intelligently and preserves numbers. Essential for code migrations between codebases with different naming conventions.

$ camel --to camel 'hello_world'

camel --to snake 'userName'


camel --to kebab 'PascalCase'


camel --to pascal 'kebab-case'
TextUtilityConversionCLI
download:tar.gzzip

jwt

TypeScriptv0.1.0MIT

A CLI tool for working with JSON Web Tokens. Decode any JWT to inspect its header and payload without needing the secret. Supports token validation and custom payload encoding. Uses base64url decoding for inspection and supports HMAC-SHA256 signing for encoding. Useful for debugging auth flows and testing API authentication.

$ jwt --decode 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

jwt --inspect token.jwt


jwt --encode payload.json --secret mysecret
SecurityAuthJWTCLI
download:tar.gzzip

hashdir

TypeScriptv0.1.0MIT

Walks a directory tree and computes SHA256 hashes for every file, producing a sorted manifest of hashes and paths. Useful for verifying file integrity across backups, detecting changes in directory snapshots, or generating checksum manifests for release archives. Outputs in text or JSON format.

$ hashdir -p ./src

hashdir -p ./backup -o manifest.txt


hashdir -p ./release --json
SecurityFilesystemHashingCLI
download:tar.gzzip

mdetect

TypeScriptv0.1.0MIT

Identifies file types by reading the first bytes (magic bytes/signatures) of a file, not by trusting the file extension. Supports detection of PNG, JPEG, GIF, WebP, BMP, PDF, ZIP, GZIP, ELF, MP3, MP4, OGG, WAV, TIFF, SVG, XML, and more. Essential for security audits, forensic analysis, and verifying file integrity.

$ mdetect -f image.png

mdetect -f unknown.bin -b


mdetect -f document.pdf
FilesystemSecurityForensicsCLI
download:tar.gzzip

qrc

TypeScriptv0.1.0MIT

Generates QR codes rendered as Unicode block characters in the terminal. Perfect for sharing URLs, Wi-Fi credentials, or contact information directly in the terminal without needing a separate app or website. Takes text input and outputs a scannable QR code using UTF-8 block characters for terminal display.

$ qrc -d 'https://example.com'

qrc --data 'WIFI:T:WPA;S:network;P:password;;'


qrc -f url.txt
UtilityQRTerminalCLI
download:tar.gzzip

dmarc-inspector

Gov0.1.0MIT

A single-binary CLI that takes a DMARC aggregate report (file path or URL) and prints a structured summary table. Shows domain, DKIM/SPF alignment results, disposition, source IPs, and volume counts. Handles gzip-compressed reports automatically. Essential for anyone running DMARC who needs quick insight without a dashboard.

$ dmarc-inspector --file report.xml.gz

dmarc-inspector https://example.com/report.xml.gz
SecurityEmailDMARCCLI
download:tar.gzziplinux/amd64

httptrace

Gov0.2.0MIT

Traces the full path of an HTTP request and renders a waterfall diagram in your terminal. Measures DNS resolution, TCP connect time, TLS handshake duration, and HTTP response time per hop. Follows redirects up to a configurable depth. Color-coded output makes it easy to spot where latency lives. Great for debugging slow APIs, CDN issues, and proxy chains.

$ httptrace https://example.com/api

httptrace --method POST --header 'Authorization: Bearer *** https://api.example.com
NetworkingDebuggingHTTPCLI
download:tar.gzziplinux/amd64

logtail

Gov0.2.0MIT

A terminal log viewer that colour-codes lines by log level (ERROR in red, WARN in yellow, INFO in blue, DEBUG in green) and supports regex filtering with case-insensitive mode. Detects and pretty-prints JSON log lines with coloured keys. Follows stdin in real-time like tail -f. Prints a summary on exit showing total, matched, and filtered line counts. Clean SIGINT handling.

$ tail -f app.log | logtail

logtail --file app.log --filter 'ERROR|timeout'


journalctl -fu nginx | logtail --json
LoggingObservabilityTUICLI
download:tar.gzziplinux/amd64

pg-snapshot

Pythonv0.1.0MIT

Connects to a PostgreSQL database and produces a compact summary of its health and structure. Shows the largest tables sorted by size, row counts, index counts, currently running queries with durations, and connection breakdown by state. Uses psql under the hood so no Python database drivers are needed. Supports --watch mode for continuous monitoring. Essential for daily DB health checks.

$ pg-snapshot --db mydatabase

pg-snapshot --db-url postgres://user:***@host:5432/mydb --watch 30
DatabasePostgreSQLDevOpsCLI
download:tar.gzzip

pingd

Gov0.1.0MIT

A minimal health-check daemon configured with a JSON file. Supports HTTP (checks for 2xx status), TCP (checks connection), and command-based (checks exit code) checks. Runs each check on a configurable interval and executes a command on failure. Includes a --oneshot mode for single-run checks. No containers, no config server, no dashboard — scp the binary and a config file and you have monitoring in 2 minutes.

$ pingd --config pingd.json

pingd --oneshot
MonitoringDevOpsDaemonCLI
download:tar.gzziplinux/amd64

dupes

Rustv0.1.0MIT

A fast duplicate file detector that uses SHA256 hashing to find identical files anywhere on your filesystem. Uses a two-pass strategy: first groups files by size (cheap), then hashes only same-size candidates (expensive). Reports wasted disk space. Respects hidden file skipping, depth limits, and minimum size thresholds. Essential for reclaiming disk space in large photo, backup, or document collections.

$ dupes .

dupes --min-size 1MB ~/photos


dupes ~/documents ~/backups
FilesystemUtilityDeduplicationCLI
download:tar.gzzip

envcheck

Pythonv1.0.0MIT

Reads a .env file and checks for common mistakes: duplicate keys, trailing whitespace, unquoted special characters ($, `, \, !), empty values for required keys, and comments that look like they should be uncommented. Supports --fix to auto-correct trailing whitespace (with backup). Exits with code 0 for clean, 1 for warnings, 2 for errors. Ships as a single Python script with zero dependencies.

$ envcheck

envcheck --file .env.production --require DB_HOST,DB_PORT,DB_NAME --fix
DevOpsConfigurationUtilityCLI
download:tar.gzzip

certwatch

Pythonv0.3.1MIT

Connects to one or more domains via TLS, retrieves the certificate, and reports the expiration date. Colour-coded output: green (>30 days), yellow (7-30 days), red (<7 days or expired). Supports SNI, custom ports, and can run an alert command when certs are approaching expiry. Perfect for cron-driven certificate monitoring. JSON output mode for machine parsing.

$ certwatch example.com google.com

certwatch --config domains.json --days 14 --alert 'notify.sh {domain} {days}'
SecurityTLSMonitoringCLI
download:tar.gzzip

dumpenv

Pythonv0.5.0MIT

Runs any command in a minimal environment (only PATH, HOME, USER, PWD, SHELL, LANG) and diffs the command's visible environment against your current shell. Surfaces which environment variables would leak into a subprocess and which ones your command needs but won't have. Helps reproduce 'it works on my machine' bugs by showing exactly what the command sees. Passes through exit codes.

$ dumpenv npm run build

dumpenv --exclude PATH,HOME --show-all python my_script.py
DevOpsDebuggingEnvironmentCLI
download:tar.gzzip

httpbin-local

Gov0.1.0MIT

A zero-dependency HTTP server that prints every incoming request to stdout: method, path, headers, and body (up to 10KB). Handles any HTTP method. Each request gets a unique ID and returns 200. Useful for debugging webhooks, reverse proxy configs, API clients, and CI pipeline callbacks. No network latency, no third-party service, no data leaving your machine.

$ httpbin-local

httpbin-local --port 9090 --quiet
HTTPDebuggingWebhooksCLI
download:tar.gzziplinux/amd64

confdiff

Pythonv0.2.0MIT

Compares two configuration files (JSON or .env format) and shows only meaningful differences — ignoring whitespace, comments, and key order. Flattens nested JSON to key paths and diffs the structure. Shows added keys, removed keys, and modified keys with before/after values. Ideal for reviewing config changes between deploys or environments. Colour-coded output for quick scanning.

$ confdiff staging.json production.json

confdiff --brief --color .env.staging .env.production
ConfigurationDevOpsDiffCLI
download:tar.gzzip

dbdocs

Pythonv0.1.0MIT

Connects to a PostgreSQL database and generates a complete Markdown document of the schema. Includes all tables with columns (name, type, nullable, default, description), primary keys, foreign keys, indexes, and enum types. Uses psql under the hood — no Python database drivers needed. Output to stdout or file. Perfect for onboarding new team members, code review, and README documentation.

$ dbdocs --db mydatabase

dbdocs --db mydatabase --output SCHEMA.md --tables users,orders
DatabasePostgreSQLDocumentationCLI
download:tar.gzzip

sizemap

Pythonv1.0.0MIT

Walks a directory tree and shows a compact, colourised view of disk usage. Shows total size per directory including all children, with human-readable units (KB, MB, GB, TB). Supports depth limiting, size-based sorting, minimum-size filtering, and JSON output. Skips hidden directories by default. Uses os.scandir for performance. Better than du -sh because it shows the full tree structure.

$ sizemap

sizemap --path /var/log --depth 5 --sort size --min-size 100MB
FilesystemUtilityDisk UsageCLI
download:tar.gzzip

pubip

Gov0.1.0MIT

Queries multiple public IP information APIs (ipify, ipinfo, icanhazip) with automatic fallback if one fails. Displays your public IP address, ASN, ISP, and approximate location. Supports --watch mode that polls every 5 seconds and highlights changes — useful for debugging VPNs, proxies, and multi-homed servers. JSON output for scripting.

$ pubip

pubip --watch --json
NetworkingUtilityIPCLI
download:tar.gzziplinux/amd64

git-age

Gov0.1.0MIT

Lists all git branches with their last commit date, author, and days since last update. Colour-coded staleness: green for recent, yellow for >30 days stale, red for >90 days stale. Supports filtering by staleness threshold and includes remote branches. Essential for repo hygiene — quickly identify branches that can be cleaned up.

$ git-age

git-age --stale 60 --all
GitProductivityUtilityCLI
download:tar.gzziplinux/amd64

logspike

Pythonv0.4.0MIT

Reads a log stream (stdin or file) and uses a sliding time window to count how often each line pattern appears. When frequency exceeds a configurable threshold, it surfaces the pattern. Detects spikes by comparing current window count to the previous window. Normalises common patterns (timestamps, UUIDs, IPs) for better grouping. Essential for spotting error bursts during incidents without staring at the firehose.

$ tail -f app.log | logspike

logspike --file app.log --window 120 --threshold 5 --spike-ratio 300
LoggingObservabilityMonitoringCLI
download:tar.gzzip

ssh-pubkeys

Pythonv0.1.0MIT

Reads your local SSH keys (~/.ssh/*.pub) and authorized_keys, then produces a deployment map showing which keys are deployed where. Shows key type (ED25519, RSA, ECDSA), fingerprint, comment, and last-used date. Matches local keys against deployed keys to identify gaps. Useful for SSH audits, key rotation, and answering 'which servers have my deploy key?'

$ ssh-pubkeys

ssh-pubkeys --json


ssh-pubkeys --host web-server-01
SSHSecurityAuditCLI
download:tar.gzzip