Developer tools for format, convert, encode, and generate — all in one place.
Screenshots • Features • Why Stdout • Philosophy • Installation • Development • FAQ • Contributing • License
stdout = standard output — the output stream (same idea as terminal stdout). One app for everything that goes to that stream: format, convert, encode, generate.
Try it: Web · macOS: brew install --cask cminhho/tap/stdout
Stdout is a client-side developer tools app for formatting, converting, encoding, and generating data. It runs in the browser or as a desktop app. No backend, no signup, no data collection — everything stays on your machine. Use it to format JSON/XML/HTML, convert units and encodings, generate test data, and more. 59 tools in one place, works offline.
stdout = standard output — the stream where results go. The app is that stream for dev tools: one place, no server.
| Need | Stdout |
|---|---|
| Format or convert without sending data anywhere | 100% client-side; nothing leaves your device |
| One place for JSON, XML, Base64, hashes, etc. | 59 tools in a single app (web or desktop) |
| No signup, no API keys | Run locally; works offline after first load |
| Quick dev tasks (decode JWT, test regex, build cURL) | Focused tools with copy/paste and samples |
| Tool | Description |
|---|---|
| JSON Format/Validate | Format, validate & beautify JSON with strict RFC compliance |
| XML Format/Validate | Beautify, minify & validate XML |
| HTML Beautify/Minify | Beautify, minify & validate HTML |
| SQL Formatter | Format and beautify SQL queries |
| CSS Beautifier/Minifier | Beautify or minify CSS (format/minify) |
| JS Beautifier/Minifier | Beautify or minify JavaScript (format/minify) |
| CSS Inliner (Email) | Inline CSS styles into HTML for email templates |
| JSONPath Tester | Test JSONPath expressions against JSON data |
| Schema Diff | Compare two JSON schemas side by side |
| Payload Comparator | Compare two JSON payloads and highlight differences |
| Regex Tester | Test regular expressions with live matching (JS engine; Java-style \ escapes supported) |
| XPath Tester | Run XPath expressions against XML |
| Credit Card Generator & Validator | Luhn check and generate test card numbers |
| Cron Parser | Build and parse cron expressions (Quartz-style) |
| JSON ↔ YAML | Convert between JSON and YAML formats |
| CSV ↔ JSON | Convert between CSV and JSON formats |
| JSON → Table | Visualize JSON data as a table |
| JSON → Types | Generate TypeScript types from JSON |
| JSON ↔ Query String | Convert between JSON and URL query strings |
| Epoch Timestamp | Convert between Unix timestamps and dates |
| Number Base | Convert numbers between bases (bin, oct, dec, hex) |
| Color Converter | Convert colors between HEX, RGB, HSL formats |
| Image ↔ Base64 | Convert images to/from Base64 strings |
| .env Converter | Convert .env files to Netlify, Docker, YAML formats |
| CSS Units | Convert between CSS units (px, rem, em, vw) |
| XSD Generator | Generate minimal XSD schema from XML |
| XSLT Transformer | Transform XML using XSLT stylesheet |
| XML ↔ JSON | Convert between XML and JSON |
| CSV → XML | Convert CSV to XML (first row as element names) |
| URL Encode/Decode | Encode and decode URL components |
| Base64 String Encode/Decode | Encode and decode Base64 strings |
| HTML Entity Encode/Decode | Encode and decode HTML entities |
| JWT Debugger | Decode and inspect JWT tokens |
| QR Code | Generate QR codes from text or URLs |
| Gzip | Compress and decompress with Gzip |
| Certificate Inspector | Inspect and decode X.509 certificates |
| Convert File Encoding | Decode bytes from charset or encode text to UTF-8 |
| Message Digester | MD5, SHA-1, SHA-256 hashes |
| HMAC Generator | Generate HMAC signatures |
| String & List Utilities | Case conversion, line ops (trim, sort, dedupe, list cleanup), escape quotes |
| String Escaper | Escape or unescape text for JSON, XML, CSV, SQL, Java/.NET, and JavaScript string literals |
| String Inspector | Inspect text: character/byte/word/line counts, cursor position, word distribution |
| Text Diff | Compare two texts and highlight differences |
| Lorem Ipsum | Generate placeholder text |
| URL Parser | Parse and inspect URL / query string |
| List of MIME Types | Reference table of common MIME types |
| Markdown Preview | Live preview of Markdown with GFM support |
| UUID Generator | Generate UUIDs (v1, v4, v7) |
| Password Generator | Generate secure passwords with custom rules |
| Random String Generator | Generate cryptographically secure random strings (password, PIN, license key, hex, …) |
| Mock Payload | Generate mock JSON data from a schema |
| ASCII Art | Turn text into ASCII art |
| Log Generator | Generate synthetic log data for testing |
| SVG Viewer | View, edit, and export SVG graphics |
| Image Resizer | Resize images with format conversion |
| cURL Builder | Build cURL commands visually |
| HAR Viewer | Inspect HAR (HTTP Archive) files |
| CSV Viewer | View and search CSV files in a table |
| Math Calculator | Evaluate math expressions |
- 100% client-side — no server, no data collection
- Works offline (PWA cache for web; desktop app fully offline)
- Modular architecture, easy to extend
- Privacy first — No server, no tracking; data stays in your browser.
- Lightweight — Minimal dependencies.
- Modular — Each tool is isolated and independently extendable.
- Open source (MIT) — Free to use, modify, and distribute.
brew install --cask cminhho/tap/stdout(Homebrew will add the tap cminhho/tap automatically if needed.)
Open stdout from Applications or Spotlight. If macOS blocks the first open (“developer cannot be verified”):
xattr -cr /Applications/stdout.appUse the live app at https://stdout-tools.web.app/, or run locally (see Development) and deploy the built dist/ to any static host.
- Node.js 20+ (LTS recommended)
- npm (or compatible package manager)
git clone https://github.com/cminhho/stdout.git
cd stdout
npm installWeb (Vite)
npm run dev # Dev server
npm run build # Production build → dist/Desktop (Electron)
npm run electron:dev # Dev with hot reload
npm run electron:build:mac # Build macOS (arm64 + x64) → release/
npm run electron:build:win # Build Windows
npm run electron:build:linux # Build LinuxDeploy web to Firebase
npm run deploy # build + compress + firebase deployRelease (bump version + tag → GitHub Release)
npm run release # patch (e.g. 1.1.0 → 1.1.1)
npm run release:minor # minor; npm run release:major for major
# Then push: git push origin <branch> && git push origin v<version>See docs/release.md for the full flow.
| Layer | Technology |
|---|---|
| Desktop | Electron 33+ |
| UI | React 19 + TypeScript |
| Build | Vite 5 |
| Styling | Tailwind CSS, Radix UI |
| Package | electron-builder |
src/
components/ # App + UI primitives (ToolLayout, CodeEditor, ui/)
contexts/ # React context (Settings)
hooks/ # useToolEngine, useCurrentTool, useToolTracking
pages/ # Tool pages by domain (converters, encode, formatters, …)
tools/ # Tool registry (registry.ts), routing, types, tracking
utils/ # Domain logic (encode, validators, cn, …)
Tools are registered in src/tools/registry.ts; each page is self-contained and lazy-loaded.
| Question | Answer |
|---|---|
| What is Stdout? | Stdout is a client-side developer tools app: format (JSON, XML, HTML, SQL, CSS, JS), convert (units, encodings, bases), encode/decode (Base64, URL, JWT, Gzip), and generate (UUIDs, passwords, mock data). One app, 59 tools, no server. |
| Is Stdout free? | Yes. MIT license; free to use, modify, and distribute. |
| Does Stdout send my data anywhere? | No. 100% client-side; nothing leaves your device. Works offline. |
| What platforms are supported? | Web (any browser), macOS, Windows, Linux. Desktop builds via Electron. |
| Where are the tools defined? | In src/tools/registry.ts; each tool is a lazy-loaded page. |
Contributions are welcome. See .github/CONTRIBUTING.md for branch model and workflow. Please keep tools modular and avoid unnecessary dependencies.
Stdout builds on open-source projects including Electron, React, Vite, Tailwind CSS, and Radix UI.
MIT License. See LICENSE.


