See it. Call it.
Codecs, text, hashing, documents, and image processing. Finish in the browser, or automate via API / MCP — one implementation.
184 toolsAPI / MCP
ID · phone
Validate CN resident ID check digit (GB 11643)
gb11643
Field-level validation of China's 18-character unified social credit code per GB 32100-2015 (ISO 7064 MOD 31-3 check digit, GB/T 2260 division, department and category tables), plus seeded reproducible test-code generation
gb32100-uscc
Base64 · URL · JWT · Unicode
RFC 4648 Base32 encode and decode
base32-rfc4648
Convert UTF-8 text to/from Base64
std-buffer
URL-safe Base64 (JWT-style)
base64url
UTF-8 to/from hex
std-buffer
Escape and unescape HTML entities
text-utils
Inspect/encode image Base64 payloads
Buffer
Decode JWT header/payload with jose (signature not verified)
jose
Sign HS256 JWT with a secret (dev/test)
hmac-sha256-jwt
Text ↔ International Morse code
morse-itu
Parse and serialize URL query strings
URLSearchParams
ROT13 and configurable Caesar cipher
caesar
Convert UTF-8 text to/from binary bit strings
utf8-bits
Text ↔ Unicode escapes / code points
std-unicode
Percent-encode and decode URL components
std-uri
JSON · YAML · CSV · XML
Keep, drop, rename and reorder CSV columns with RFC 4180 parsing (quoted delimiters, embedded newlines, "" escapes), a fixed drop → rename → reorder order, and stated duplicate-header and ragged-row policies
nebutra-csv-columns
Row-identity CSV comparison: added / removed / changed / unchanged with per-cell old→new, column-rename mapping and full/inner/left joins
nebutra-csv-diff
Parse CSV into a table preview
papaparse
Header-row CSV to JSON array
csv-lite
Parse DBML with @dbml/core into tables/columns/refs (no ERD canvas)
@dbml/core
Export DBML to PostgreSQL / MySQL / MSSQL / Oracle via @dbml/core
@dbml/core ModelExporter
Convert JSON arrays and CSV via Papa Parse
papaparse
Structural JSON compare with path-level ops (agent-friendly)
json-structural-diff
Validate, pretty-print, or minify via JSON.parse with line/column errors; optional sortKeys
JSON.parse
Minify JSON by stripping whitespace via JSON.parse/stringify
JSON.parse
Query JSON with JSONPath expressions
jsonpath-plus
JSON array of objects to CSV
json-csv-lite
Convert between JSON and TOML via smol-toml
smol-toml
Convert between JSON and XML via fast-xml-parser
fast-xml-parser
Convert between JSON and YAML via js-yaml
js-yaml
Import SQL DDL to DBML via @dbml/core
@dbml/core importer
Parse and re-serialize TOML via smol-toml
smol-toml
Validate and pretty-print XML
fast-xml-parser
Minify XML with fast-xml-parser
fast-xml-parser
Semantic YAML/JSON comparison: key order, quoting and indentation ignored; anchors, aliases and merge keys expanded; sequences matched by identity field; structured path + change-type output
nebutra-yaml-diff
Pretty-print or compact YAML via js-yaml
js-yaml
Regex · SQL · color · UUID
Simplify resolution to ratio, or solve width/height from ratio
gcd-ratio
Convert camelCase and snake_case
text-utils
WCAG contrast ratio and AA/AAA pass/fail
wcag-contrast
Convert colors via culori
culori
Perceptual color difference via culori CIEDE2000 with Lab/OKLCH
culori
Prettier CSS parser pretty-print (pairs with CSSO minify)
prettier
CSSO structural minify — merge rules, shorten selectors and declarations
csso
Framework-aware multi-stage, non-root Dockerfile with matching .dockerignore and Compose file — no local Docker install
dockerfile-starter
Generate a spec-valid .editorconfig from glob sections, validate every property value, and flag the footguns (later section wins, utf-8-bom, indent_size vs tab_width); can also import an existing file
EditorConfig File Format Specification
Compare two .env files by key, not by line: added / removed / changed / commented-out, with secret redaction that still reports whether the secret changed
nebutra-dotenv-parity
Match a file's leading bytes against 180 signatures to name its true format; ZIP/ISO-BMFF/OLE2 containers are opened for real, and a lying extension is tiered benign / mismatch / high-risk
nebutra-magic-table
Convert between HEX and RGB colors
color-hex-rgb
Prettier HTML parser pretty-print (pairs with html-minifier-terser)
prettier
html-minifier-terser — strip comments, collapse whitespace, optional inline CSS/JS minify
html-minifier-terser
Validate IPv4 / IPv6 format offline
ip-regex
Format JavaScript, TypeScript, or JSON with Prettier (bounded input size)
prettier
Sketch TypeScript interfaces from JSON
text-utils
Identify the language of a filename-less code snippet: three-tier confidence plus a 0-100 score, explicit data-format verdict, multi-language paste flag, and Linguist-style disambiguation when a filename hint is supplied
forge-linguist-heuristics
Render Markdown to HTML via marked
marked
Lookup common MIME types by file extension
mime-table
Generate URL-safe unique IDs with nanoid
nanoid
Convert integers between bases 2–36
std-number
Cryptographically strong random integers in a range
crypto.randomInt
Cryptographically strong random strings (node:crypto)
crypto.randomInt
Assemble a project README.md from the sections you tick: GitHub-accurate TOC anchors, shields.io badges, language-tagged code fences, and never an empty header for a section you left off
GitHub Flavored Markdown + shields.io badge grammar
Regex match/replace with timeout guard against ReDoS
RegExp+timeout
Expand a retry policy (exponential / linear / fixed, factor, cap, jitter, attempt budget) into a per-attempt delay and cumulative wait schedule — jitter as a min/expected/max range instead of one sampled draw, plus a verdict on whether the cumulative wait overruns your own timeout
forge-retry-backoff-schedule
Generate an RFC 9309 robots.txt: default access, search-engine and AI-crawler groups, crawl-delay, sitemaps and path rules — with the group-precedence, empty-Disallow and trailing-slash traps flagged
Robots Exclusion Protocol
Paste a .env, config, log or code snippet and find API keys, tokens and private keys — vendor patterns plus entropy and variable-name context, values masked by default, read-only and never verified against any vendor
forge-secret-scan
Pretty-print SQL with sql-formatter
sql-formatter
Strip SQL comments and excess whitespace
sql-collapse
Parse URL into protocol, host, path, query parts
URL
Parse and validate URL shape (WHATWG URL)
URL
ua-parser-js — browser, engine, OS, device, and CPU from a User-Agent string
ua-parser-js
Generate UUID v4 identifiers
std-uuid
Validate UUID format and version nibble (RFC 4122)
uuid-shape
Markdown · PDF merge/split
Extract plain text from .docx (ZIP + document.xml, no Office suite)
pure-zip
Generate table of contents from Markdown headings
md-heading-scan
Convert Markdown to HTML with marked
marked
Markdown → PDF via marked + Playwright Chromium print
marked+playwright
Official mermaid 11 live preview + Agent SVG (Playwright); themes, samples, export — not a DBML ERD
mermaid+playwright
Real compress via qpdf/Ghostscript host binaries; pdf-lib fallback
qpdf|ghostscript|pdf-lib
Read page count and document metadata via pdf-lib
pdf-lib
Merge PDFs with pdf-lib
pdf-lib
Rewrite PDF with pdf-lib object streams (not image recompress)
pdf-lib
Split PDF page ranges with pdf-lib
pdf-lib
Extract PDF text via pdftotext (poppler); fails honestly if missing
pdftotext
Extract per-slide text outline from .pptx (ZIP + slide XML, no PowerPoint)
pure-zip
Extract first sheet of .xlsx as CSV (ZIP + sheet1.xml, no Excel suite)
pure-zip
Amount to words
Validate an IBAN per ISO 13616: structure, per-country length and the MOD 97-10 check digits (offline, never stored)
iban-mod97
Fixed-payment loan schedule: per-period interest, principal and balance, total interest, early payoff with extra payments, and the crossover period where principal first exceeds interest
annuity-amortization
MD5 · SHA · HMAC · password
MD5 + SHA-256 checksums for text
node:crypto
Checksum Base64 file payloads
node-crypto
Constant-time compare two hashes or secrets
timing-safe-equal
HMAC-SHA256/512 via node:crypto
node-crypto
Verify HMAC-SHA256 signature matches payload
crypto.createHmac
Compute MD5 hex digest (legacy checksum only)
node-crypto
Generate MD5, SHA-1, SHA-256, SHA-512 in one call
node:crypto
Estimate password entropy bits from charset size
charset-entropy
SHA-1 digest (legacy)
node-crypto
Compute SHA-256 hex digest of text
node-crypto
SHA-512 digest via node:crypto
node-crypto
Cryptographically strong password generator
node-crypto
Estimate password strength with zxcvbn-ts
zxcvbn-ts
Generate hex/base64url API secrets
crypto.randomBytes
Compress · QR · convert
Compress images via sharp
sharp
Convert between png/jpeg/webp
sharp
Remove EXIF, IPTC, XMP and comment metadata (GPS, capture time, device serial, embedded thumbnail) from JPEG/PNG/WebP without re-encoding pixels; orientation and colour profile are preserved
forge-metadata-splice
Read photo EXIF (exifr preferred, pure JPEG fallback)
exifr|jpeg-pure
Crop image by left/top/width/height via sharp
sharp
Read width/height/format/orientation via sharp (EXIF buffer summary)
sharp
Rotate an image by any angle and mirror it horizontally or vertically: multiples of 90° resample nothing, other angles choose expand / crop / fit, and EXIF orientation is resolved on load so the rotation you ask for is the rotation you see
forge-image-rotate-flip
Decode QR codes from images via jsQR
jsqr
Generate QR codes as PNG or SVG
qrcode
Resize images via sharp
sharp
SVGO multipass optimise — strip dead weight, merge paths, compress attributes
svgo
Mortgage · BMI · kinship
Luhn algorithm check for card numbers (offline, never stored)
luhn
Chinese uppercase currency amount
nzh-lite
Calculate exact age from birth date
date-diff-age
Body mass index
life-utils
Roll NdM dice (crypto RNG)
crypto.randomInt
Validate or calculate the GS1 check digit in bulk: GTIN-8/12/13/14, SSCC-18, GLN-13
gs1-mod10
Equal installment / principal mortgage schedule summary
mortgage-formulas
Percentage of / what percent
life-utils
Percent change from A to B
pct-change
Arabic ↔ Roman numerals converter
roman
Calculate tip and split by party size
tip-math
Tokens · cost · schema
DNS · TLS · IP · leak check
Authority-zone system-DNS recursive capture + multi-resolver + browser DoH/WebRTC; honest degrade when no hits, no fake Geo/ASN
node:dns.Resolver+browser-probes
Resolve A/AAAA/MX/TXT/NS/CNAME (Node dns; answers from the Forge host resolver)
node:dns
Show client IP and key headers as seen by Forge (host-injected; no fake geo)
request-headers
Connect to host:443 and read subject, SANs, validity, fingerprints
node:tls
.gitignore · LICENSE · Dockerfile · README
Merge language, framework, OS and editor templates into one sectioned .gitignore. Covers a curated 45-stack subset of github/gitignore, not the full upstream corpus
gitignore-corpus-merge
Search the 45 available .gitignore template ids by name, alias, scope or kind
gitignore-corpus-index
Ready-to-commit LICENSE by SPDX id: canonical text verbatim, copyright line filled, plus the SPDX source-file header
SPDX License List
One-step scenario triage: a recommended license with its rationale, permissions/conditions/limitations and alternates, by SPDX id
SPDX License List
Word count · CJK · pinyin · Diff
Upper, lower, title, and toggle case
text-utils
Count characters, bytes, lines, and whitespace
char-stats
Line-level diff and unified patch via the diff package
diff
Validate email format (batch, one per line)
email-shape
Detect charset, BOM, line endings and byte stats — read-only, with a ranked confidence list instead of a single guess
charset-structure-probe
Extract email addresses
text-utils
Extract URLs from text
text-utils
Bulk replace text with a regular expression
RegExp
Convert fullwidth and halfwidth characters
text-utils
Bulk-validate ISBN-10/ISBN-13 check digits, suggest the correct one, convert 10↔13
isbn-check-digit
Detect LF / CRLF / CR with per-style counts and ratios, the dominant style, the stray line numbers, trailing-newline state and UTF-8 BOM — read-only, never rewrites
forge-line-ending-scan
Prefix each line with a line number
line-index
Add prefix/suffix to each line
text-utils
Compare two lists: only-in-A, only-in-B, intersection, union, symmetric difference, plus duplicates and per-item counts. NFC-normalized, deterministic order.
list-set-compare
Generate classic Lorem Ipsum placeholder text
lorem-classic
Generate N lorem-style words
lorem-words
Convert Chinese characters to pinyin via pinyin-pro
pinyin-pro
Estimate reading time for CJK + Latin text
reading-time-heuristic
Strip empty lines from text
text-utils
Collapse consecutive whitespace and trim
ws-collapse
Find and replace, optional regex
text-utils
Reverse a string
text-utils
Generate URL-safe slugs
text-utils
Sort lines alphabetically
text-utils
Levenshtein distance and similarity ratio
levenshtein
Remove HTML tags
text-utils
Trim, collapse, or strip whitespace
text-utils
Deduplicate lines preserving order
text-utils
Deduplicate words preserving first-seen order
word-dedupe
Validate a 17-character VIN against 49 CFR 565.15 / ISO 3779: length, character set (no I/O/Q) and the position-9 check digit, with the position-by-position math
vin-check-digit
CJK-aware word count via Intl.Segmenter
Intl.Segmenter
Count word/token frequencies (CJK + Latin)
freq-counter
OpenCC simplified/traditional/Taiwan/Hong Kong conversion
opencc-js
Timestamp · timezone · Cron · lunar
Shift a date by N business days or count the business days between two dates — signed backward shifts, custom weekend definitions, your own holiday list, makeup workdays, and the exact rule set reported with every answer
forge-business-day-rules
Parse cron and list next run times
cron-parser
Days between two dates
std-date
Milliseconds epoch ↔ ISO 8601
Date
Convert solar and lunar dates
lunar-javascript
Convert times across timezones with dayjs
dayjs
Convert between unix timestamps and ISO dates
std-date
Find the weekday for a date
Date
Compare the same instant across IANA timezones with dayjs
dayjs
Length · weight · temperature · data
m² hectare mu ft²
si-unit-tables
Convert B KB MB GB TB
unit-utils
m km cm inch ft yd mile
si-unit-tables
m/s km/h mph knots
si-unit-tables
Celsius Fahrenheit Kelvin
si-unit-tables
L mL gallon m³
si-unit-tables
kg g lb oz ton
si-unit-tables