Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "compress", "docker-compose", "glob-tester" and 8 more (76 tools before, 87 now)
Gzip & Deflate Compressor — gzip, deflate (zlib) or raw-deflate text to Base64 or hex, and decompress it back. Operations: "compress" — Compress UTF-8 text with gzip, deflate (zlib) or raw deflate.; "decompress" — Decompress Base64 or hex gzip/deflate data back to text (output up to 256 KB).. Call with "operation" plus "input" (and "options" where relevant).
docker run to Compose Converter — Convert docker run commands to a Docker Compose file and Compose services back. Operations: "to-compose" — Convert one or more docker run commands to Compose services (ports, volumes, env, name, restart, network, command).; "to-run" — Convert a Compose file (or one service) to a docker run command per service.. Call with "operation" plus "input" (and "options" where relevant).
Glob & .gitignore Tester — Test .gitignore or glob patterns against a list of paths and see which rule matched each one. Operations: "test" — Match paths against gitignore rules (negation, anchoring, **, directory-only) or plain globs.. Call with "operation" plus "input" (and "options" where relevant).
HTML to Markdown — Convert HTML to Markdown (CommonMark + GitHub tables), dropping scripts and styles. Operations: "convert" — Convert an HTML page or fragment to Markdown: headings, lists, links, images, code blocks, tables and blockquotes.. Call with "operation" plus "input" (and "options" where relevant).
ID Decoder — Decode IDs: Snowflake, MongoDB ObjectId, KSUID, TypeID, ULID, UUID and CUID2 — timestamp, machine fields and randomness. Operations: "decode" — Detect each ID's format and take it apart (one ID per line, up to 200).. Call with "operation" plus "input" (and "options" where relevant).
IEEE 754 Float Inspector — Inspect IEEE 754 float32/float64: sign, exponent and mantissa bits, hex, the exact stored value and the rounding error. Operations: "inspect" — Read a decimal (0.1, -2.5e-8, Infinity, NaN) or a bit pattern (0x3DCCCCCD, 32 or 64 binary digits) and show how float32 and float64 store it.. Call with "operation" plus "input" (and "options" where relevant).
JSON Schema Validator — Validate JSON data against a JSON Schema (drafts 2020-12, 2019-09, 7 and 4) and list each error with its data path and schema keyword. Operations: "validate" — Validate JSON data against a JSON Schema.. Call with "operation" plus "input" (and "options" where relevant).
CSR, SSH Key & JWK Inspector — Inspect a CSR (subject, SANs, key, signature check), OpenSSH public keys (type, bits, ssh-keygen fingerprints) or a JWK / JWKS (RFC 7638 thumbprint, PEM and OpenSSH forms). Private keys are refused. Operations: "inspect" — Inspect a PEM CSR or public key, OpenSSH public key lines (authorized_keys, known_hosts) or a JWK / JWK Set.. Call with "operation" plus "input" (and "options" where relevant).
Punycode & IDN Converter — Convert internationalised domain names to and from Punycode (RFC 3492): bücher.example ⇄ xn--bcher-kva.example. Operations: "to-ascii" — Encode each Unicode label as an xn-- label (one domain, email or URL per line; labels are NFC-normalised and lowercased).; "to-unicode" — Decode each xn-- label back to Unicode (one domain, email or URL per line).; "encode" — Encode one string with the bare RFC 3492 algorithm (no xn-- prefix, case kept).; "decode" — Decode one bare Punycode string (no xn-- prefix) with the RFC 3492 algorithm.. Call with "operation" plus "input" (and "options" where relevant).
robots.txt Builder & llms.txt Validator — Build robots.txt that treats search engines, AI answer bots and AI training crawlers separately; validate llms.txt. Operations: "build" — Build robots.txt: allow or block search engines, AI answer engines/assistants and AI training crawlers (named), with Content-Signal and Sitemap lines.; "validate-llms" — Check an llms.txt file against llmstxt.org: one H1, a > summary, H2 sections of Markdown link lists.. Call with "operation" plus "input" (and "options" where relevant).
SAML Decoder — Decode a SAMLRequest or SAMLResponse (Base64, or deflate + Base64) and summarise it. Signatures are not verified. Operations: "decode" — Decode a SAML message and return its issuer, status, NameID, audience, conditions, validity window, attributes and pretty-printed XML. Signatures are reported, never verified.. Call with "operation" plus "input" (and "options" where relevant). Not repeatable: decode returns a different result on each call.
Removed "aes-encrypt"; changed the definition of "ascii", "aspect-ratio", "base-n" and 73 more (77 tools before, 76 now)
ASCII/ Char CodeConverter
Convert text to and from character codes in severalbases..bases. Operations: "to-codes" — Convert text to ⟨20 unchanged words⟩
{"properties":{"input":{"description":"Theto-codes:primarythe
Added "aspect-ratio", "base-n", "csp" and 15 more; changed the definition of "aes-encrypt", "ascii", "base64" and 56 more (59 tools before, 77 now)
before
—after
AES Text Encryptionbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"AES Text Encryption"}before
—Certificate recorded, valid to 2026-12-10
Authorization not required
First tool surface recorded: 59 tools (server version 1.0.0)
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"ASCII/ Char CodeConverter"}
⟨13 unchanged words⟩ , solve the missing dimension and write CSSaspect-ratio..aspect-ratio. Operations: "analyze" — Reduce a ratio ⟨50 unchanged words⟩
{"properties":{"input":{"description":"Theanalyze:primaryAinputratiostring.(16:9, 4/3, 1.85:1) or a size (1920x1080). solve: A ratio or size, e.g. \"16:9\". fit: A ratio or size, e.g. \"9:16\".","maxLength":32768,"type":"string"},"operation":{"description":"Theanalyzeoperation—toReducerun.a ratio or size (16:9, 1920x1080, 2.39) and return presets, CSS and whole-pixel sizes. solve — Given a ratio and one dimension, compute the other. fit — Largest size at this ratio that fits inside (contain) or covers (cover) a box.","enum":["analyze","solve","fit"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"boxHeight":{"description":"OptionalBoxparametersheight.forUsedtheby:operationfit.(seeRequiredtheby:toolfit.","type":"number"},"boxWidth":{"description":"Boxschemawidth.atUsed/api/v1/aspect-ratioby: fit. Required by: fit.","type":"number"},"height":{"description":"Known height. Used by: solve.","type":"number"},"mode":{"default":"contain","description":"Like CSS object-fit. Used by: fit.","enum":["contain","cover"],"type":"string"},"width":{"description":"Known width (give width or height). Used by: solve.","type":"number"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Base32/, Base58/& Base85 Encoder
⟨11 unchanged words⟩ Crockford Base32, Base58 (Bitcoin), Ascii85 orZ85..Z85. Operations: "encode" — Encode UTF-8 text ⟨27 unchanged words⟩
{"properties":{"input":{"description":"encode: Theprimarytextinputto encode. decode: The encoded string. Whitespace is ignored.","maxLength":4096,"type":"string"},"operation":{"description":"Theencodeoperation— Encode UTF-8 text in the chosen scheme. decode — Decode torun.UTF-8 text (binary payloads are returned as hex).","enum":["encode","decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/base-nit).","properties":{"delimiters":{"default":false,"description":"Ascii85: wrap in <~ ~>. Used by: encode.","type":"objectboolean"},"padding":{"default":true,"description":"Base32/Base32hex: emit = padding. Used by: encode.","type":"boolean"},"requiredscheme":{"default":"base32","description":"Encoding scheme. Used by: encode, decode.","enum":["operationbase32","inputbase32hex","crockford","base58","ascii85","z85"],"type":"string"}},"type":"object"}},"required":["operation"],"type":"object"}
⟨5 unchanged words⟩ ":false,"readOnlyHint":true,"title":"Base32/, Base58/& Base85 Encoder"}
Base64Encoder/DecoderEncoder & Decoder
⟨5 unchanged words⟩ Base64, Base64URL, Base32, Base58, Base85 andhex..hex. Operations: "encode" — Encode text into ⟨25 unchanged words⟩
{"properties":{"input":{"description":"encode: Theprimaryplaininputtextstring.to encode. decode: The encoded text to decode.","maxLength":32768,"type":"string"},"operation":{"description":"Theencodeoperation— Encode text into the chosen format. decode — Decode text from the chosen format back torun.plain text.","enum":["encode","decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/base64it).","properties":{"format":{"default":"base64","description":"encode: Target encoding format. decode: Source encoding format. Used by: encode, decode.","enum":["base64","base64url","base32","base58","base85","hex"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨5 unchanged words⟩ :false,"readOnlyHint":true,"title":"Base64Encoder/DecoderEncoder & Decoder"}
Hash and verify passwords withbcrypt..bcrypt. Operations: "hash" — Hash a password ⟨20 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: hash returns a different result on each call.
{"properties":{"input":{"description":"hash: Theprimaryplaintextinputpasswordstring.to hash. verify: The plaintext password to check.","maxLength":32768,"type":"string"},"operation":{"description":"Thehashoperation—toHashrun.a password with bcrypt at the given cost. verify — Verify a plaintext password against a bcrypt hash.","enum":["hash","verify"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"hash":{"description":"OptionalTheparametersbcryptforhashthetooperationcompare against (seecost 4 or lower over thetoolAPI).schemaUsedatby:/api/v1/bcryptverify. Required by: verify.","maxLength":60,"type":"string"},"rounds":{"default":4,"description":"Cost factor (log2 of the rounds). The API runs cost 4 to 4; higher costs run in the browser at /tools/bcrypt. Used by: hash.","maximum":4,"minimum":4,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title" ⟨4 unchanged words⟩
Convert text between camelCase, snake_case, kebab-case andmore..more. Operations: "convert" — Convert text to ⟨23 unchanged words⟩
{"properties":{"input":{"description":"convert: Theprimarytextinputtostring.convert. all: The text to convert.","maxLength":8192,"type":"string"},"operation":{"description":"Theconvertoperation— Convert text torun.a single chosen case. all — Return every supported case transform at once.","enum":["convert","all"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/caseit).","properties":{"format":{"default":"camel","description":"Target case format. Used by: convert.","enum":["lower","upper","title","sentence","camel","pascal","snake","kebab","constant","dot","path","toggle"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Break a string into per-character Unicodedetails..details. Operations: "inspect" — Inspect each character ⟨18 unchanged words⟩
{"properties":{"input":{"description":"Thetheprimarytextinputtostring.inspect","maxLength":1024,"type":"string"},"operation":{"description":"Theinspectoperation—toInspectrun.each character of a string (code point, category, bytes).","enum":["inspect"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/char-inspectorit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Convert between octal and symbolic Unix filepermissions..permissions. Operations: "octal-to-symbolic" — Convert octal permissions ⟨29 unchanged words⟩
{"properties":{"input":{"description":"Theoctal-to-symbolic:primaryOctalinputpermissionstring.string, e.g. \"755\" or \"0644\". symbolic-to-octal: Symbolic permission string, e.g. \"rwxr-xr-x\".","maxLength":32768,"type":"string"},"operation":{"description":"Theoctal-to-symbolicoperation— Convert octal permissions (e.g. \"755\") torun.a symbolic string and description. symbolic-to-octal — Convert a symbolic permission string (e.g. \"rwxr-xr-x\") to octal.","enum":["octal-to-symbolic","symbolic-to-octal"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/chmodit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Parse a CIDR block into its network, broadcast and hostrange..range. Operations: "calculate" — Calculate the network, ⟨19 unchanged words⟩
{"properties":{"input":{"description":"TheAprimaryCIDRinputblock,string.e.g. \"192.168.1.0/24\".","maxLength":32768,"type":"string"},"operation":{"description":"Thecalculateoperation—toCalculaterun.the network, broadcast, mask and host range for a CIDR block.","enum":["calculate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/cidrit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Convert colors between HEX, RGB, HSL, HSV andCMYK..CMYK. Operations: "convert" — Convert a HEX ⟨27 unchanged words⟩
{"properties":{"input":{"description":"Theconvert:primaryAinputhexstring.color, e.g. \"#3b82f6\". palette: A hex color, e.g. \"#3b82f6\".","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation— Convert a HEX color torun.every supported color space. palette — Generate a color harmony palette from a base color.","enum":["convert","palette"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/colorit).","properties":{"type":{"default":"complementary","description":"Palette type. Used by: palette.","enum":["complementary","analogous","triadic","split-complementary","tetradic"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Generate harmony, shade and tint palettes from a base HEXcolor..color. Operations: "generate" — Generate harmony, shade ⟨18 unchanged words⟩
{"properties":{"input":{"description":"TheAprimaryhexinputcolor,string.e.g. \"#3b82f6\".","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.harmony, shade and tint palettes from a base HEX color.","enum":["generate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/color-paletteit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Check WCAG contrast between a foreground and backgroundcolor..color. Operations: "check" — Compute the contrast ⟨32 unchanged words⟩
{"properties":{"input":{"description":"check: Theprimaryforegroundinputcolorstring.(#rrggbb, #rgb or rgb(...)). best-text: The background color.","maxLength":32768,"type":"string"},"operation":{"description":"Thecheckoperation—toComputerun.the contrast ratio and WCAG pass/fail for a color pair. best-text — Pick black or white text for the best contrast on a background.","enum":["check","best-text"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/contrastit).","properties":{"background":{"description":"The background color. Used by: check. Required by: check.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Describe cron expressions and compute upcoming runtimes..times. Operations: "describe" — Produce a human-readable ⟨21 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: next-runs returns a different result on each call.
{"properties":{"input":{"description":"Thedescribe:primaryAinput5-string.or 6-field cron expression. next-runs: A 5- or 6-field cron expression.","maxLength":32768,"type":"string"},"operation":{"description":"Thedescribeoperation—toProducerun.a human-readable description of a cron expression. next-runs — Compute the next N run times for a cron expression.","enum":["describe","next-runs"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/cronit).","properties":{"count":{"default":5,"description":"How many runs to return. Used by: next-runs.","maximum":20,"minimum":1,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title" ⟨3 unchanged words⟩
⟨7 unchanged words⟩ flag weaknesses (unsafe-inline, wildcards, missing object-src/base-uri/frame-ancestors…)... Operations: "evaluate" — Parse a CSP ⟨43 unchanged words⟩
{"properties":{"input":{"description":"Theevaluate:primaryAinputCSPstring.header value (optionally with the \"Content-Security-Policy:\" name). harden: A CSP header value.","maxLength":32768,"type":"string"},"operation":{"description":"Theevaluateoperation—toParserun.a CSP header and return its directives and findings by severity. harden — Add the low-risk directives a policy is missing (object-src 'none', base-uri, frame-ancestors, form-action) and return ready-to-paste header, meta, nginx and Apache forms.","enum":["evaluate","harden"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/cspit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Minify or beautifyCSS..CSS. Operations: "minify" — Minify CSS (strip ⟨24 unchanged words⟩
{"properties":{"input":{"description":"minify: TheprimaryCSSinputtostring.minify. beautify: The CSS to beautify.","maxLength":32768,"type":"string"},"operation":{"description":"Theminifyoperation—toMinifyrun.CSS (strip comments and whitespace). beautify — Beautify CSS (one declaration per line, indented).","enum":["minify","beautify"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/css-minifyit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨8 unchanged words⟩ , rem, em, pt, pc, %)... Operations: "convert" — Convert a numeric ⟨17 unchanged words⟩
{"properties":{"input":{"description":"Thetheprimarynumericinputvaluestring.to convert","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation— Convert a numeric value from one CSS unit torun.another.","enum":["convert"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/css-unitsit).","properties":{"baseFontSize":{"description":"root font size in px (default 16) Used by: convert.","type":"objectnumber"},"from":{"description":"Source unit. Used by: convert. Required by: convert.","enum":["px","rem","em","pt","pc","%"],"type":"string"},"requiredto":{"description":"Target unit. Used by: convert. Required by: convert.","enum":["operationpx","inputrem","em","pt","pc","%"],"type":"string"}},"type":"object"}},"required":["operation"],"type":"object"}
Convert a curl command into fetch / Python / Nodesnippets..snippets. Operations: "convert" — Parse a curl ⟨15 unchanged words⟩
{"properties":{"input":{"description":"Theprimarycurlinputcommandstring.to convert.","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation—toParserun.a curl command and generate code snippets.","enum":["convert"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/curl-converterit).","properties":{"target":{"default":"fetch","description":"Output language. Used by: convert.","enum":["fetch","python","node","all"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨5 unchanged words⟩ convert it to bytes plus decimal and binaryunits..units. Operations: "convert" — Parse a data ⟨20 unchanged words⟩
{"properties":{"input":{"description":"Theaprimarydatainputsizestring.like \"1.5 GB\" or \"1024 KiB\"","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation— Parse a data size and convert it torun.bytes, decimal and binary units.","enum":["convert"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/data-sizeit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨17 unchanged words⟩ year, and DST-aware elapsed time between localtimes..times. Operations: "diff" — Difference between two ⟨73 unchanged words⟩
{"properties":{"input":{"description":"diff: Start date (YYYY-MM-DD). add: Theprimarydateinput(YYYY-MM-DD).string.info: The date (YYYY-MM-DD). elapsed: Start as \"YYYY-MM-DD HH:MM\".","maxLength":32768,"type":"string"},"operation":{"description":"Thediffoperation—toDifferencerun.between two dates in years/months/days, total days, weeks and business days. add — Add or subtract a duration (\"1y 2m\", \"-90d\", \"P2W\") or a number of business days. info — Weekday, day of year, ISO week, quarter and leap year for a date (plus Unix time of local midnight). elapsed — Exact elapsed time between two local date-times, following DST in each time zone.","enum":["diff","add","info","elapsed"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"businessDays":{"description":"OptionalBusinessparametersdaysfortotheaddoperation(negative to subtract), up to 1,000. Used by: add.","maximum":1000,"minimum":-1000,"type":"integer"},"duration":{"description":"e.g. \"30d\", \"1y 6m\", \"-2w\", \"P1M\". Used by: add.","maxLength":32768,"type":"string"},"end":{"description":"diff: End date (seeYYYY-MM-DD).theelapsed:toolEndschemaasat\"YYYY-MM-DD/api/v1/date-calcHH:MM\". Used by: diff, elapsed. Required by: diff, elapsed.","maxLength":32768,"type":"string"},"endTimeZone":{"description":"IANA zone of the end (default: same). Used by: elapsed.","maxLength":32768,"type":"string"},"holidays":{"description":"diff: Comma-separated YYYY-MM-DD dates excluded from business days. add: Comma-separated holidays for businessDays. Used by: diff, add.","maxLength":32768,"type":"string"},"timeZone":{"description":"info: IANA zone for the midnight timestamp. elapsed: IANA zone of the start. Used by: info, elapsed.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Compute a line-by-line diff between twotexts..texts. Operations: "compare" — Diff two texts ⟨25 unchanged words⟩
{"properties":{"input":{"description":"compare: Theprimaryoriginalinputtext.string.unified: The original text.","maxLength":8192,"type":"string"},"operation":{"description":"Thecompareoperation—toDiffrun.two texts and return the lines plus statistics. unified — Produce a unified-diff text between two inputs.","enum":["compare","unified"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/diffit).","properties":{"ignoreBlankLines":{"default":false,"description":"Ignore blank lines. Used by: compare.","type":"boolean"},"ignoreCase":{"default":false,"description":"Ignore case. Used by: compare.","type":"boolean"},"ignoreTrailingWhitespace":{"default":false,"description":"Ignore whitespace at line ends. Used by: compare.","type":"boolean"},"ignoreWhitespace":{"default":false,"description":"Ignore all whitespace. Used by: compare.","type":"boolean"},"modified":{"description":"The modified text. Used by: compare, unified. Required by: compare, unified.","maxLength":8192,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨10 unchanged words⟩ text like "1h30m" or "90 minutes"... Operations: "convert" — Parse any duration ⟨51 unchanged words⟩
{"properties":{"input":{"description":"Theconvert:primaryAinputdurationstring.in any supported format. to-iso: A duration in any supported format. humanize: A duration in any supported format.","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation— Parse any duration (ISO 8601, 1h30m, 90 minutes, 1:30:00, seconds) into every representation. to-iso — Convert any duration torun.a canonical ISO 8601 duration string. humanize — Render a duration as words (\"1 hour 30 minutes\") or compact text (\"1h 30m\").","enum":["convert","to-iso","humanize"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"calendarUnits":{"default":false,"description":"OptionalUseparametersyearsfor(365thed)operationand months (see30 d). Used by: to-iso.","type":"boolean"},"compact":{"default":false,"description":"Use 1h 30m instead of words. Used by: humanize.","type":"boolean"},"weeks":{"default":false,"description":"Use PnW when thetoolvalueschemaisatwhole/api/v1/duration).weeks. Used by: to-iso.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨12 unchanged words⟩ export prefixes and multi-line values, plus validationwarnings..warnings. Operations: "to-json" — Parse a .env ⟨47 unchanged words⟩
{"properties":{"input":{"description":"to-json: Theprimary.envinputfilestring.contents. to-env: A JSON object; nested objects are flattened (DB__HOST). validate: The .env file contents.","maxLength":32768,"type":"string"},"operation":{"description":"Theto-jsonoperation—toParserun.a .env file into a JSON object (last duplicate wins). to-env — Write a JSON object as .env lines, quoting values only where needed. validate — Lint a .env file: duplicates, invalid names, unterminated quotes, stray # comments.","enum":["to-json","to-env","validate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/env-jsonit).","properties":{"coerceTypes":{"default":false,"description":"Turn true/false/null and plain numbers into JSON types. Used by: to-json.","type":"boolean"},"exportPrefix":{"default":false,"description":"Prefix lines with export. Used by: to-env.","type":"boolean"},"indent":{"default":2,"description":"JSON indent in spaces. Used by: to-json.","maximum":8,"minimum":0,"type":"integer"},"separator":{"default":"__","description":"Separator for nested keys. Used by: to-env.","maxLength":32768,"type":"string"},"sortKeys":{"default":false,"description":"Sort keys alphabetically. Used by: to-env.","type":"boolean"},"uppercase":{"default":false,"description":"Upper-case keys. Used by: to-env.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Generate a combined .gitignore from templatekeys..keys. Operations: "generate" — Combine one or ⟨24 unchanged words⟩
{"properties":{"input":{"description":"Thegenerate:primaryComma-inputorstring.space-separated template keys (e.g. \"node,python,macos\"). templates: Unused (pass an empty string).","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toCombinerun.one or more template keys into a .gitignore. templates — List the available .gitignore template keys.","enum":["generate","templates"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/gitignoreit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Compute MD5, SHA-1/256/384/512, CRC32 and HMACdigests..digests. Operations: "hash" — Hash text with ⟨23 unchanged words⟩
{"properties":{"input":{"description":"hash: Theprimarytextinputtostring.hash. hmac: The text to authenticate.","maxLength":32768,"type":"string"},"operation":{"description":"Thehashoperation—toHashrun.text with the chosen algorithm. hmac — Compute an HMAC digest (SHA algorithms only).","enum":["hash","hmac"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"algorithm":{"default":"SHA-256","description":"Hash algorithm. Used by: hash, hmac.","enum":["MD5","SHA-1","SHA-256","SHA-384","SHA-512","CRC32"],"type":"string"},"format":{"default":"hex","description":"Output format. Used by: hash, hmac.","enum":["hex","base64","binary"],"type":"string"},"salt":{"default":"","description":"Optionalparameterssaltforprefixed to theoperationtext.(seeUsedtheby:toolhash.","maxLength":32768,"type":"string"},"secret":{"description":"TheschemaHMACatsecret/api/v1/hash).key. Used by: hmac. Required by: hmac.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Sign a message with HMAC using a secret key and SHA-2algorithm..algorithm. Operations: "sign" — Compute an HMAC ⟨14 unchanged words⟩
{"properties":{"input":{"description":"Thetheprimarymessageinputtostring.sign","maxLength":32768,"type":"string"},"operation":{"description":"Thesignoperation—toComputerun.an HMAC signature for a message.","enum":["sign"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/hmacit).","properties":{"algorithm":{"description":"HMAC algorithm. Used by: sign.","enum":["SHA-256","SHA-384","SHA-512"],"type":"string"},"key":{"description":"secret key Used by: sign. Required by: sign.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Format, minify and validateHTML..HTML. Operations: "format" — Pretty-print HTML.; "minify ⟨26 unchanged words⟩
{"properties":{"input":{"description":"format: TheprimaryHTMLinputtostring.format. minify: The HTML to minify. validate: The HTML to validate.","maxLength":32768,"type":"string"},"operation":{"description":"Theformatoperation—toPretty-printrun.HTML. minify — Minify HTML (strip comments and collapse whitespace). validate — Check HTML for unclosed/mismatched tags.","enum":["format","minify","validate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/htmlit).","properties":{"indentSize":{"default":2,"description":"Indent width in spaces. Used by: format.","maximum":8,"minimum":0,"type":"integer"},"preserveInline":{"default":true,"description":"Keep inline elements on one line. Used by: format.","type":"boolean"},"wrapAttributes":{"default":false,"description":"Put each attribute on its own line. Used by: format.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Encode and decode HTML entities (named, decimal, hex)... Operations: "encode" — Encode text into ⟨21 unchanged words⟩
{"properties":{"input":{"description":"encode: Theprimarytextinputtostring.encode. decode: The text containing HTML entities.","maxLength":32768,"type":"string"},"operation":{"description":"Theencodeoperation— Encode text into HTML entities. decode — Decode HTML entities back torun.plain text.","enum":["encode","decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/html-entityit).","properties":{"encodeAll":{"default":false,"description":"Encode every character. Used by: encode.","type":"boolean"},"format":{"default":"named","description":"Output entity format. Used by: encode.","enum":["named","decimal","hex"],"type":"string"},"preferNamed":{"default":true,"description":"Prefer a named entity when one exists. Used by: encode.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨11 unchanged words⟩ attributes, style objects, self-closing tags, JSXcomments..comments. Operations: "convert" — Convert an HTML ⟨21 unchanged words⟩
{"properties":{"input":{"description":"TheHTMLprimaryorinputSVGstring.markup.","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation— Convert an HTML fragment or document torun.JSX, with warnings for anything to review.","enum":["convert"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/html-jsxit).","properties":{"component":{"description":"Wrap the JSX in `export default function <Name>()`. Used by: convert.","maxLength":32768,"type":"string"},"indent":{"default":2,"description":"Spaces per indent level. Used by: convert.","maximum":8,"minimum":1,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
HTTP StatusCodesCode Lookup
Look up and search HTTP statuscodes..codes. Operations: "lookup" — Look up a ⟨25 unchanged words⟩
{"properties":{"input":{"description":"lookup: Theprimarynumericinputstatusstring.code, e.g. \"404\". search: A search query, e.g. \"redirect\" or \"40\".","maxLength":32768,"type":"string"},"operation":{"description":"Thelookupoperation—toLookrun.up a single status code by number. search — Search status codes by number, name or description.","enum":["lookup","search"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/http-statusit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨6 unchanged words⟩ ,"readOnlyHint":true,"title":"HTTP StatusCodesCode Lookup"}
Build and parse base64 data URIs and embedsnippets..snippets. Operations: "build-snippets" — Build HTML/CSS/Markdown snippets ⟨15 unchanged words⟩
{"properties":{"input":{"description":"TheAprimarybase64inputdatastring.URI, e.g. \"data:image/png;base64,...\".","maxLength":32768,"type":"string"},"operation":{"description":"Thebuild-snippetsoperation—toBuildrun.HTML/CSS/Markdown snippets from an existing data URI.","enum":["build-snippets"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/image-base64it).","properties":{"alt":{"default":"","description":"Alt text for the image. Used by: build-snippets.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨17 unchanged words⟩ prefix and range maths, and build ip6.arpanames..names. Operations: "analyze" — Analyse an address, ⟨46 unchanged words⟩
{"properties":{"input":{"description":"Theanalyze:primaryAninputIPv6string.address (2001:db8::1, fe80::1%eth0, [::1]:443), prefix (2001:db8::/32) or range (2001:db8:: - 2001:db8::ff). compress: One or more IPv6 addresses, one per line. expand: One or more IPv6 addresses, one per line.","maxLength":32768,"type":"string"},"operation":{"description":"Theanalyzeoperation—toAnalyserun.an address, prefix or range: canonical and expanded forms, type, embedded IPv4, network bounds, reverse DNS. compress — Rewrite each address in its RFC 5952 canonical (shortest) form. expand — Rewrite each address with all eight 4-digit groups.","enum":["analyze","compress","expand"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/ipv6it).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Format, minify, validate and convertJSON..JSON. Operations: "format" — Pretty-print JSON with ⟨49 unchanged words⟩
{"properties":{"input":{"description":"format: TheprimaryJSONinputtextstring.to format. minify: The JSON text to minify. validate: The JSON text to validate. repair: The malformed JSON text to repair.","maxLength":32768,"type":"string"},"operation":{"description":"Theformatoperation—toPretty-printrun.JSON with a configurable indent. minify — Strip all insignificant whitespace from JSON. validate — Check whether the input is valid JSON, reporting the error location. repair — Best-effort repair of common JSON mistakes (trailing commas, single quotes, unquoted keys).","enum":["format","minify","validate","repair"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/jsonit).","properties":{"indent":{"default":2,"description":"Number of spaces to indent. Used by: format.","maximum":8,"minimum":0,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Convert between JSON andCSV..CSV. Operations: "json-to-csv" — Convert a JSON ⟨21 unchanged words⟩
{"properties":{"input":{"description":"json-to-csv: TheprimaryJSONinputtextstring.to convert. csv-to-json: The CSV text to convert.","maxLength":32768,"type":"string"},"operation":{"description":"Thejson-to-csvoperation— Convert a JSON array/object torun.CSV. csv-to-json — Convert CSV to a JSON array.","enum":["json-to-csv","csv-to-json"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/json-csvit).","properties":{"delimiter":{"default":",","description":"Field delimiter. Used by: json-to-csv, csv-to-json.","maxLength":32768,"type":"objectstring"},"firstRowHeaders":{"default":true,"description":"Treat the first row as headers. Used by: csv-to-json.","type":"boolean"},"requiredincludeHeaders":{"default":true,"description":"Emit a header row. Used by: json-to-csv.","type":"boolean"},"nestedHandling":{"default":"flatten","description":"How to handle nested objects. Used by: json-to-csv.","enum":["operationflatten","inputstringify"],"type":"string"}},"type":"object"}},"required":["operation"],"type":"object"}
Compare two JSON documents and report added, removed and changedvalues..values. Operations: "diff" — Diff two JSON ⟨13 unchanged words⟩
{"properties":{"input":{"description":"ThetheprimaryfirstinputJSONstring.document","maxLength":32768,"type":"string"},"operation":{"description":"Thediffoperation—toDiffrun.two JSON documents by path.","enum":["diff"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/json-diffit).","properties":{"compareTo":{"description":"the second JSON document to compare against Used by: diff. Required by: diff.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Infer a draft-07 JSON Schema from sampleJSON..JSON. Operations: "generate" — Infer a draft-07 ⟨15 unchanged words⟩
{"properties":{"input":{"description":"The primarytheinputsamplestring.JSON","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toInferrun.a draft-07 JSON Schema from sample JSON","enum":["generate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/json-schemait).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Generate TypeScript type declarations from a JSONsample..sample. Operations: "generate" — Infer TypeScript interfaces/types ⟨12 unchanged words⟩
{"properties":{"input":{"description":"TheprimaryJSONinputsamplestring.to convert.","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toInferrun.TypeScript interfaces/types from JSON.","enum":["generate"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"rootName":{"default":"Root","description":"OptionalRootparametersdeclarationforname.theUsedoperationby:(seegenerate.","maxLength":32768,"type":"string"},"useInterfaces":{"default":true,"description":"Emittheinterfacestool(true)schemaorattype/api/v1/json-tsaliases (false). Used by: generate.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Convert between JSON andXML..XML. Operations: "to-xml" — Convert JSON to ⟨17 unchanged words⟩
{"properties":{"input":{"description":"Theto-xml:primaryJSONinputtostring.convert to XML to-json: XML to convert to JSON","maxLength":32768,"type":"string"},"operation":{"description":"Theto-xmloperation— Convert JSON torun.XML. to-json — Convert XML to JSON.","enum":["to-xml","to-json"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/json-xmlit).","properties":{"indent":{"description":"Indent width in spaces. Used by: to-xml.","maximum":8,"minimum":0,"type":"integer"},"rootName":{"description":"Root element name. Used by: to-xml.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨16 unchanged words⟩ with comments kept, reporting every non-JSON featureused..used. Operations: "to-json" — Convert JSON5 / ⟨46 unchanged words⟩
{"properties":{"input":{"description":"Theto-json:primaryJSON5,inputJSONCstring.or JSON text. format: JSON5, JSONC or JSON text. validate: JSON5, JSONC or JSON text.","maxLength":32768,"type":"string"},"operation":{"description":"Theto-jsonoperation— Convert JSON5 / JSONC torun.strict RFC 8259 JSON. format — Re-print JSON / JSON5 / JSONC tidily as JSONC or JSON5, keeping comments. validate — Check whether text is valid JSON5 and list which non-JSON features it uses.","enum":["to-json","format","validate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/jsoncit).","properties":{"indent":{"default":2,"description":"to-json: Spaces per level (0 = minified). format: Spaces per level. Used by: to-json, format.","maximum":8,"minimum":0,"type":"objectinteger"},"keepComments":{"default":true,"description":"Keep comments. Used by: format.","type":"boolean"},"requiredspecials":{"default":"null","description":"How to write Infinity / NaN, which JSON cannot represent. Used by: to-json.","enum":["operationnull","inputstring","error"],"type":"string"},"style":{"default":"jsonc","description":"jsonc = double quotes; json5 = unquoted keys and single quotes. Used by: format.","enum":["jsonc","json5"],"type":"string"},"trailingCommas":{"default":false,"description":"Add trailing commas. Used by: format.","type":"boolean"}},"type":"object"}},"required":["operation"],"type":"object"}
Query a JSON document with a JSONPathexpression..expression. Operations: "query" — Evaluate a JSONPath ⟨15 unchanged words⟩
{"properties":{"input":{"description":"The primarytheinputJSONstring.document","maxLength":32768,"type":"string"},"operation":{"description":"Thequeryoperation—toEvaluaterun.a JSONPath expression against a JSON document.","enum":["query"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/jsonpathit).","properties":{"path":{"description":"JSONPath expression, e.g. $..name Used by: query. Required by: query.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Decode JWT header and payload (no signature verification)... Operations: "decode" — Decode a JWT ⟨16 unchanged words⟩
{"properties":{"input":{"description":"TheprimaryJWTinputtokenstring.to decode.","maxLength":32768,"type":"string"},"operation":{"description":"Thedecodeoperation—toDecoderun.a JWT into its header, payload and signature.","enum":["decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/jwtit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
JWT Encoder/&GeneratorSigner
Sign a JSON payload into a JWT with an HMACsecret..secret. Operations: "sign" — Sign a JSON ⟨18 unchanged words⟩
{"properties":{"input":{"description":"ThetheprimaryJWTinputpayloadstring.as JSON","maxLength":32768,"type":"string"},"operation":{"description":"Thesignoperation—toSignrun.a JSON payload into a JWT using an HMAC secret.","enum":["sign"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/jwt-encodeit).","properties":{"algorithm":{"description":"HMAC algorithm. Used by: sign.","enum":["HS256","HS384","HS512"],"type":"string"},"secret":{"description":"HMAC signing secret Used by: sign. Required by: sign.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨6 unchanged words⟩ ,"readOnlyHint":true,"title":"JWT Encoder/&GeneratorSigner"}
Generate placeholder text in severalstyles..styles. Operations: "generate" — Generate lorem ipsum ⟨8 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
{"properties":{"input":{"description":"TheUnusedprimary(passinputanstring.empty string).","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.lorem ipsum (or themed) placeholder text.","enum":["generate"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"count":{"default":3,"description":"OptionalNumberparametersofforunits to generate. Used by: generate.","maximum":100,"minimum":1,"type":"integer"},"customWords":{"description":"Comma- or space-separated words to use instead of theoperationtheme.(seeUsed by: generate.","maxLength":2000,"type":"string"},"generatorType":{"default":"lorem","description":"Word theme. Used by: generate.","enum":["lorem","hipster","bacon","corporate","pirate","zombie"],"type":"string"},"includeNumbers":{"default":false,"description":"Mix numbers into thetooltext.schemaUsedatby:/api/v1/lorem)generate.","type":"boolean"},"includeSpecialChars":{"default":false,"description":"Mix punctuation and symbols into the text. Used by: generate.","type":"boolean"},"startWithLorem":{"default":true,"description":"Start with the classic \"Lorem ipsum\". Used by: generate.","type":"boolean"},"unitType":{"default":"paragraphs","description":"What to count. Used by: generate.","enum":["paragraphs","sentences","words"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title" ⟨3 unchanged words⟩
Checksum Validator (Luhn, IBAN,& ISBN,EAN)Validator
⟨14 unchanged words⟩ Format only — nothing is looked up orstored..stored. Operations: "validate" — Validate a number, ⟨34 unchanged words⟩
{"properties":{"input":{"description":"validate: A card number, IBAN, ISBN or EAN/UPC (spaces and dashes are ignored). check-digit: Theprimarydigitsinputwithoutstring.their check digit.","maxLength":32768,"type":"string"},"operation":{"description":"Thevalidateoperation— Validate a number, auto-detecting its type or using the one you choose. check-digit — Compute the Luhn or GS1 (EAN/UPC) check digit torun.append to a payload.","enum":["validate","check-digit"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/luhnit).","properties":{"algorithm":{"default":"luhn","description":"luhn (cards, IMEI) or gs1 (EAN/UPC/GTIN). Used by: check-digit.","enum":["luhn","gs1"],"type":"string"},"type":{"default":"auto","description":"Which check to run. Used by: validate.","enum":["auto","card","iban","isbn","gtin","luhn"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":true,"title":"Checksum Validator (Luhn, IBAN,& ISBN,EAN)Validator"}
Render Markdown to HTML, build a TOC and computestatistics..statistics. Operations: "render" — Render GitHub-flavored Markdown ⟨31 unchanged words⟩
{"properties":{"input":{"description":"render: TheprimaryMarkdowninputtostring.render. toc: The Markdown to scan. stats: The text to analyze.","maxLength":32768,"type":"string"},"operation":{"description":"Therenderoperation— Render GitHub-flavored Markdown torun.sanitized HTML. toc — Extract a table of contents from Markdown headers. stats — Compute document statistics for Markdown/plain text.","enum":["render","toc","stats"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/markdownit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Convert CSV or TSV rows into a Markdowntable..table. Operations: "generate" — Build a Markdown ⟨14 unchanged words⟩
{"properties":{"input":{"description":"TheCSVprimaryorinputTSVstring.rows (first row is the header)","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toBuildrun.a Markdown table from delimited rows.","enum":["generate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/markdown-tableit).","properties":{"delimiter":{"description":"field delimiter; auto-detected if omitted Used by: generate.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Look up MIME types by file extension or MIMEtype..type. Operations: "lookup" — Search MIME types ⟨15 unchanged words⟩
{"properties":{"input":{"description":"Theaprimaryfileinputextensionstring.(png) or MIME type (image/)","maxLength":32768,"type":"string"},"operation":{"description":"Thelookupoperation—toSearchrun.MIME types by extension or MIME type.","enum":["lookup"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/mimeit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
Translate text to and from Morsecode..code. Operations: "encode" — Convert text to ⟨19 unchanged words⟩
{"properties":{"input":{"description":"Theencode:primarytextinputtostring.convert to Morse decode: Morse code to convert to text","maxLength":32768,"type":"string"},"operation":{"description":"Theencodeoperation— Convert text torun.Morse code. decode — Convert Morse code to text.","enum":["encode","decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/morse-codeit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨5 unchanged words⟩ IDs with crypto randomness, plus a collision-probabilityestimate..estimate. Operations: "generate" — Generate one or ⟨30 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
{"properties":{"input":{"description":"generate: A custom alphabet, or empty for the default URL-safe NanoID alphabet. collision: Theprimaryalphabetinput(itsstring.unique character count is used), or empty for the default.","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.one or more random IDs (default: 21-char URL-safe NanoID). collision — Estimate how long until a 1% collision chance for an alphabet size, ID length and rate.","enum":["generate","collision"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/nanoidit).","properties":{"count":{"default":1,"description":"How many IDs. Used by: generate.","maximum":100,"minimum":1,"type":"objectinteger"},"perHour":{"default":1000,"description":"IDs generated per hour. Used by: collision.","type":"number"},"requiredsize":{"default":21,"description":"Characters per ID. Used by: generate, collision.","type":["operationinteger","inputnumber"]}},"type":"object"}},"required":["operation"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title":"NanoID Generator"}
Convert numbers between binary, octal, decimal andhex..hex. Operations: "convert" — Convert a number ⟨17 unchanged words⟩
{"properties":{"input":{"description":"Theprimarynumberinputtostring.convert (digits valid for the source base).","maxLength":32768,"type":"string"},"operation":{"description":"Theconvertoperation— Convert a number from one base torun.all supported bases.","enum":["convert"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/number-baseit).","properties":{"base":{"default":10,"description":"Source base. Used by: convert.","enum":["2","8","10","16"],"type":"number"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Generate strong random passwords and estimate theirstrength..strength. Operations: "generate" — Generate a cryptographically ⟨17 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
{"properties":{"input":{"description":"generate: Unused (pass an empty string). strength: Theprimarypasswordinputtostring.evaluate.","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.a cryptographically random password. strength — Estimate the entropy and strength bucket of a password.","enum":["generate","strength"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"customSymbols":{"description":"OptionalSymbolsparameterstoforuse instead of theoperationdefault set. Used by: generate.","maxLength":100,"type":"string"},"excludeAmbiguous":{"default":false,"description":"Exclude ambiguous symbols (see{}[]()/\\'\"`~,;:.<>).theUsedtoolby:schemagenerate.","type":"boolean"},"excludeSimilar":{"default":false,"description":"Excludeatsimilar/api/v1/passwordcharacters (il1Lo0O). Used by: generate.","type":"boolean"},"length":{"default":16,"description":"Password length. Used by: generate.","maximum":1024,"minimum":1,"type":"integer"},"lowercase":{"default":true,"description":"Include a-z. Used by: generate.","type":"boolean"},"numbers":{"default":true,"description":"Include 0-9. Used by: generate.","type":"boolean"},"symbols":{"default":true,"description":"Include symbols. Used by: generate.","type":"boolean"},"uppercase":{"default":true,"description":"Include A-Z. Used by: generate.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title":"Password Generator"}
Analyze a password and estimate its entropy, strength and cracktime..time. Operations: "analyze" — Analyze a password ⟨18 unchanged words⟩
{"properties":{"input":{"description":"Theprimarypasswordinputtostring.analyze.","maxLength":1024,"type":"string"},"operation":{"description":"Theanalyzeoperation—toAnalyzerun.a password and estimate its entropy, strength and crack time.","enum":["analyze"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/password-strengthit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
SecureRandom String Generator
Generate cryptographically secure randomstrings..strings. Operations: "generate" — Generate a secure ⟨10 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
{"properties":{"input":{"description":"TheUnusedprimary(passinputanstring.empty string).","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.a secure random string from a chosen pattern.","enum":["generate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/randomit).","properties":{"customCharset":{"default":"","description":"Charset used when pattern is \"custom\". Used by: generate.","maxLength":32768,"type":"objectstring"},"excludeSimilar":{"default":false,"description":"Exclude similar characters. Used by: generate.","type":"boolean"},"requiredlength":{"default":32,"description":"Output length. Used by: generate.","maximum":4096,"minimum":1,"type":"integer"},"pattern":{"default":"alphanumeric","description":"Character pattern. Used by: generate.","enum":["operationrandom","inputhex","base64","alphanumeric","numeric","custom"],"type":"string"}},"type":"object"}},"required":["operation"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title":"SecureRandom String Generator"}
Test a regex against a string and applyreplacements..replacements. Operations: "test" — Find all matches ⟨26 unchanged words⟩
{"properties":{"input":{"description":"test: Theprimarytestinputstringstring.to search. replace: The test string to transform.","maxLength":4096,"type":"string"},"operation":{"description":"Thetestoperation—toFindrun.all matches of a regex pattern in a test string. replace — Replace regex matches in a string.","enum":["test","replace"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"flags":{"default":"g","description":"OptionalRegexparametersflags,fore.g.the\"gi\".operationUsed(seeby:thetest,toolreplace.","maxLength":32768,"type":"string"},"pattern":{"description":"Theschemaregexatpattern/api/v1/regex(JavaScript syntax). The API refuses nested quantifiers such as (a+)+, which can take exponential time. Used by: test, replace. Required by: test, replace.","maxLength":500,"type":"string"},"replacement":{"default":"","description":"Replacement text. Used by: replace.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Convert between integers and Romannumerals..numerals. Operations: "to-roman" — Convert an integer ⟨23 unchanged words⟩
{"properties":{"input":{"description":"Theto-roman:primaryaninputintegerstring.1-3999 from-roman: a Roman numeral","maxLength":32768,"type":"string"},"operation":{"description":"Theto-romanoperation— Convert an integer torun.a Roman numeral. from-roman — Convert a Roman numeral to an integer.","enum":["to-roman","from-roman"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/roman-numeralit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨14 unchanged words⟩ to F. Parses text only; never fetches aURL..URL. Operations: "grade" — Grade a raw ⟨16 unchanged words⟩
{"properties":{"input":{"description":"TheRawprimaryresponseinputheaders,string.e.g. the output of `curl -sI https://example.com`.","maxLength":32768,"type":"string"},"operation":{"description":"Thegradeoperation—toGraderun.a raw header block and explain each check.","enum":["grade"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/security-headersit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨5 unchanged words⟩ Semantic Versions, and test versions against npm-styleranges..ranges. Operations: "parse" — Parse a SemVer ⟨93 unchanged words⟩
{"properties":{"input":{"description":"parse: A version, e.g. \"v1.4.0-beta.2+build.7\". compare: Theprimaryfirstinputversion.string.satisfies: The version to test. max-satisfying: Versions separated by newlines, commas or spaces. explain-range: An npm-style range. sort: Versions separated by newlines, commas or spaces. bump: The current version.","maxLength":32768,"type":"string"},"operation":{"description":"Theparseoperation—toParserun.a SemVer 2.0.0 version into its components. compare — Compare two versions by SemVer precedence (-1, 0 or 1). satisfies — Test whether a version satisfies a range (^, ~, x, hyphen, ||). max-satisfying — Find the highest and lowest versions in a list that satisfy a range. explain-range — Desugar a range into plain comparators (e.g. ^1.2.3 → >=1.2.3 <2.0.0-0). sort — Sort versions by SemVer precedence; invalid entries are listed separately. bump — Increment a version like `npm version <release>`.","enum":["parse","compare"," ⟨5 unchanged words⟩ ,"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/semverit).","properties":{"includePrerelease":{"default":false,"description":"Let prerelease versions match ranges that do not name a prerelease. Used by: satisfies.","type":"objectboolean"},"order":{"default":"asc","description":"Sort order. Used by: sort.","enum":["asc","desc"],"type":"string"},"requiredother":{"description":"The version to compare with. Used by: compare. Required by: compare.","maxLength":32768,"type":"string"},"preid":{"description":"Prerelease identifier, e.g. \"beta\" or \"rc\". Used by: bump.","maxLength":32768,"type":"string"},"range":{"description":"satisfies: An npm-style range, e.g. \"^1.2.0 || ~2.1\". max-satisfying: An npm-style range. Used by: satisfies, max-satisfying. Required by: satisfies, max-satisfying.","maxLength":32768,"type":"string"},"release":{"description":"Which part to bump. Used by: bump. Required by: bump.","enum":["operationmajor","inputminor","patch","premajor","preminor","prepatch","prerelease"],"type":"string"}},"type":"object"}},"required":["operation"],"type":"object"}
Turn arbitrary text into a clean, URL-safeslug..slug. Operations: "slugify" — Generate a URL ⟨13 unchanged words⟩
{"properties":{"input":{"description":"Theprimarytextinputtostring.slugify.","maxLength":32768,"type":"string"},"operation":{"description":"Theslugifyoperation—toGeneraterun.a URL slug from text.","enum":["slugify"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/slugifyit).","properties":{"lowercase":{"default":true,"description":"Lowercase the result. Used by: slugify.","type":"boolean"},"maxLength":{"description":"Maximum slug length. Used by: slugify.","type":"number"},"separator":{"default":"-","description":"Word separator. Used by: slugify.","maxLength":32768,"type":"string"},"strict":{"default":false,"description":"Strip non-ASCII characters. Used by: slugify.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Sort & DedupeTextLines
Sort, reverse, deduplicate and clean up lines oftext..text. Operations: "process" — Sort, deduplicate and ⟨14 unchanged words⟩
{"properties":{"input":{"description":"Thetheprimarytext,inputonestring.item per line","maxLength":32768,"type":"string"},"operation":{"description":"Theprocessoperation—toSort,run.deduplicate and clean lines of text.","enum":["process"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/sort-linesit).","properties":{"caseSensitive":{"description":"Case-sensitive sort/dedupe. Used by: process.","type":"objectboolean"},"numeric":{"description":"Sort numerically. Used by: process.","type":"boolean"},"requiredorder":{"description":"Sort order. Used by: process.","enum":["operationasc","inputdesc","reverse"],"type":"string"},"removeDuplicates":{"description":"Remove duplicate lines. Used by: process.","type":"boolean"},"removeEmpty":{"description":"Remove empty lines. Used by: process.","type":"boolean"},"trim":{"description":"Trim whitespace from each line. Used by: process.","type":"boolean"}},"type":"object"}},"required":["operation"],"type":"object"}
⟨6 unchanged words⟩ readOnlyHint":true,"title":"Sort & DedupeTextLines"}
SQL Formatter& Beautifier
Format and minifySQL..SQL. Operations: "beautify" — Beautify SQL with ⟨21 unchanged words⟩
{"properties":{"input":{"description":"beautify: TheprimarySQLinputtostring.beautify. minify: The SQL to minify.","maxLength":4096,"type":"string"},"operation":{"description":"Thebeautifyoperation— Beautify SQL with newlines before clauses. minify — Minify SQL torun.a single line.","enum":["beautify","minify"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/sqlit).","properties":{"indentSize":{"default":2,"description":"Indent width in spaces. Used by: beautify.","maximum":8,"minimum":0,"type":"integer"},"lineBreaksBeforeClauses":{"default":true,"description":"Start each clause (FROM, WHERE, …) on a new line. Used by: beautify.","type":"boolean"},"uppercaseKeywords":{"default":true,"description":"Uppercase SQL keywords. Used by: beautify, minify.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨5 unchanged words⟩ false,"readOnlyHint":true,"title":"SQL Formatter& Beautifier"}
String Escape/& Unescape
Escape and unescape strings for JSON, JS, HTML, URL andregex..regex. Operations: "escape" — Escape a string ⟨23 unchanged words⟩
{"properties":{"input":{"description":"Theescape:primarytheinputtextstring.to escape unescape: the text to unescape","maxLength":32768,"type":"string"},"operation":{"description":"Theescapeoperation—toEscaperun.a string for the chosen context. unescape — Unescape a string from the chosen context.","enum":["escape","unescape"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/string-escapeit).","properties":{"mode":{"description":"Escape mode. Used by: escape, unescape. Required by: escape, unescape.","enum":["json","js","html","url","regex"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨6 unchanged words⟩ ,"readOnlyHint":true,"title":"String Escape/& Unescape"}
⟨11 unchanged words⟩ base64) data URI, with background-image and mask-imageCSS..CSS. Operations: "encode" — Optimise an SVG ⟨35 unchanged words⟩
{"properties":{"input":{"description":"Theencode:primarySVGinputmarkup.string.decode: A data URI, optionally wrapped in url(\"…\").","maxLength":32768,"type":"string"},"operation":{"description":"Theencodeoperation— Optimise an SVG and return url-encoded and base64 data URIs, sizes and CSS snippets. decode — Decode a data:image/svg+xml URI (percent-encoded or base64) back torun.SVG markup.","enum":["encode","decode"],"type":"string"},"options":{"additionalPropertiesdescription":"Options for the chosen operation (each says which operations use it).","properties":{"shortenColors":{"default":true,"description":"Optional parametersRewriteforhexthecoloursoperationto(seetheirtheshortesttoolformschema(#ff0000at→/api/v1/svg-data-urired). Used by: encode.","type":"boolean"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨14 unchanged words⟩ whitespace, tabs and smart quotes, and normaliseUnicode..Unicode. Operations: "scan" — Report invisible and ⟨35 unchanged words⟩
{"properties":{"input":{"description":"scan: Theprimarytextinputtostring.inspect. clean: The text to clean.","maxLength":32768,"type":"string"},"operation":{"description":"Thescanoperation—toReportrun.invisible and special characters, hidden tag-character text, unterminated bidi controls, line endings and normalisation. clean — Apply clean-ups and return the text plus counts of every change.","enum":["scan","clean"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/text-cleanupit).","properties":{"dashes":{"default":false,"description":"En/em dashes → - / --. Used by: clean.","type":"objectboolean"},"keepEmoji":{"default":true,"description":"Keep joiners inside emoji and non-Latin scripts. Used by: clean.","type":"boolean"},"requiredlineEndings":{"default":"lf","description":"Line-ending style. Used by: clean.","enum":["operationlf","inputcrlf","cr","keep"],"type":"string"},"normalize":{"default":"NFC","description":"Unicode normalisation form. Used by: clean.","enum":["NFC","NFD","NFKC","NFKD","none"],"type":"string"},"smartQuotes":{"default":true,"description":"Curly quotes → straight. Used by: clean.","type":"boolean"},"tabWidth":{"default":4,"description":"Tab stop width. Used by: clean.","maximum":8,"minimum":1,"type":"integer"},"tabs":{"default":"keep","description":"Convert tabs and spaces. Used by: clean.","enum":["keep","to-spaces","to-tabs"],"type":"string"},"trimTrailing":{"default":true,"description":"Trim trailing whitespace. Used by: clean.","type":"boolean"}},"type":"object"}},"required":["operation"],"type":"object"}
Convert and inspect Unix timestamps anddates..dates. Operations: "to-date" — Convert a Unix ⟨19 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: to-date returns a different result on each call.
{"properties":{"input":{"description":"to-date: TheprimaryUnixinputtimestampstring.in seconds. parse-date: A date or timestamp string (ISO 8601, RFC 2822, Unix, etc.).","maxLength":32768,"type":"string"},"operation":{"description":"Theto-dateoperation— Convert a Unix timestamp (seconds) torun.a full date breakdown. parse-date — Auto-detect and parse a date/timestamp string.","enum":["to-date","parse-date"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/timestampit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title" ⟨3 unchanged words⟩
⟨6 unchanged words⟩ JSON to TOML, reporting anything that cannotround-trip..round-trip. Operations: "to-json" — Parse TOML and ⟨28 unchanged words⟩
{"properties":{"input":{"description":"Theto-json:primaryAinputTOMLstring.document. to-toml: A JSON object.","maxLength":32768,"type":"string"},"operation":{"description":"Theto-jsonoperation— Parse TOML and return pretty-printed JSON. to-toml — Convert a JSON object torun.TOML (nulls are dropped with a warning).","enum":["to-json","to-toml"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/toml-jsonit).","properties":{"detectDates":{"default":false,"description":"Emit RFC 3339 date-time strings as TOML date-times. Used by: to-toml.","type":"boolean"},"indent":{"default":2,"description":"JSON indent in spaces. Used by: to-json.","maximum":8,"minimum":0,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Generate a time-based one-time password (TOTP) from a base32secret..secret. Operations: "generate" — Generate the current ⟨10 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
{"properties":{"input":{"description":"The primarytheinputbase32string.secret","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.the current TOTP code for a base32 secret.","enum":["generate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/totpit).","properties":{"algorithm":{"description":"HMAC algorithm. Used by: generate.","enum":["SHA-1","SHA-256","SHA-512"],"type":"string"},"digits":{"default":6,"description":"Number of digits in the code. Used by: generate.","maximum":10,"minimum":6,"type":"integer"},"period":{"default":30,"description":"Time step in seconds. Used by: generate.","maximum":3600,"minimum":1,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title" ⟨5 unchanged words⟩
Generate a lexicographically sortableULID..ULID. Operations: "generate" — Generate a new ⟨5 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: generate returns a different result on each call.
{"properties":{"input":{"description":"TheUnusedprimary(passinputanstring.empty string).","maxLength":32768,"type":"string"},"operation":{"description":"Thegenerateoperation—toGeneraterun.a new ULID.","enum":["generate"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/ulidit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title":"ULID Generator"}
AdvancedURLToolsEncoder & Decoder
Parse, validate and normalizeURLs..URLs. Operations: "parse" — Break a URL ⟨39 unchanged words⟩
{"properties":{"input":{"description":"parse: TheprimaryURLinputtostring.parse. validate: The URL to validate. normalize: The URL to normalize.","maxLength":2048,"type":"string"},"operation":{"description":"Theparseoperation—toBreakrun.a URL into its component parts. validate — Validate a URL and run basic security/heuristic checks. normalize — Normalize a URL (drop default ports, sort query params, strip trailing slash).","enum":["parse","validate","normalize"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/urlit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":true,"title":"AdvancedURLToolsEncoder & Decoder"}
Batch URL Encoder &DecoderParser
Percent-encode and decode URLstrings..strings. Operations: "encode" — Percent-encode a string.; ⟨16 unchanged words⟩
{"properties":{"input":{"description":"encode: Theprimarytextinputtostring.encode. decode: The encoded text to decode.","maxLength":32768,"type":"string"},"operation":{"description":"Theencodeoperation—toPercent-encoderun.a string. decode — Decode a percent-encoded string.","enum":["encode","decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/url-encodeit).","properties":{"level":{"default":1,"description":"encode: How many times to encode. decode: How many times to decode. Used by: encode, decode.","maximum":10,"minimum":1,"type":"integer"},"type":{"default":"component","description":"Encoding strategy. Used by: encode.","enum":["component","uri","full"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨4 unchanged words⟩ openWorldHint":false,"readOnlyHint":true,"title":"Batch URL Encoder &DecoderParser"}
Parse a User-Agent string into browser, engine, OS anddevice..device. Operations: "parse" — Parse a User-Agent ⟨18 unchanged words⟩
{"properties":{"input":{"description":"TheprimaryUser-Agentinputstringstring.to parse.","maxLength":32768,"type":"string"},"operation":{"description":"Theparseoperation—toParserun.a User-Agent string into browser, engine, OS and device details.","enum":["parse"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/user-agentit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨10 unchanged words⟩ links, and strip UTM and click-ID trackingparameters..parameters. Operations: "build" — Add UTM parameters ⟨63 unchanged words⟩
{"properties":{"input":{"description":"build: Theprimarylanding-pageinputURL.string.parse: A tagged URL. strip: A URL with tracking parameters. batch: Landing-page URLs, one per line.","maxLength":32768,"type":"string"},"operation":{"description":"Thebuildoperation— Add UTM parameters torun.a URL, normalising case and spaces, and lint the result. parse — Split a URL into UTM tags, ad click IDs and other parameters, with warnings. strip — Remove utm_* and click-ID parameters (gclid, fbclid, msclkid…) from a URL. batch — Tag many URLs (one per line) with the same UTM parameters.","enum":["build","parse","strip","batch"],"type":"string"},"options":{"additionalPropertiesdescription":true"Options for the chosen operation (each says which operations use it).","properties":{"campaign":{"description":"Optional parametersutm_campaignfor— theoperationcampaign(seename. Used by: build, batch.","maxLength":32768,"type":"string"},"content":{"description":"utm_content — which link or creative. Used by: build, batch.","maxLength":32768,"type":"string"},"id":{"description":"utm_id — campaign identifier. Used by: build, batch.","maxLength":32768,"type":"string"},"medium":{"description":"utm_medium — thetoolchannelschema(cpc,atemail,/api/v1/utmsocial…). Used by: build, batch.","maxLength":32768,"type":"string"},"normalize":{"default":true,"description":"Lowercase values and replace spaces with underscores. Used by: build.","type":"boolean"},"source":{"description":"utm_source — where the traffic comes from. Used by: build, batch.","maxLength":32768,"type":"string"},"term":{"description":"utm_term — paid search keyword. Used by: build, batch.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Generate and inspectUUIDs..UUIDs. Operations: "v4" — Generate one or ⟨31 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: v4 returns a different result on each call.
{"properties":{"input":{"description":"v4: Unused (pass an empty string). v3: Theprimarynameinputtostring.hash. parse: The UUID to parse.","maxLength":32768,"type":"string"},"operation":{"description":"Thev4operation—toGeneraterun.one or more random (v4) UUIDs. v3 — Generate a name-based (v3 / MD5) UUID. parse — Parse a UUID and report its version, variant and (where present) timestamp.","enum":["v4","v3","parse"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/uuidit).","properties":{"count":{"default":1,"description":"How many UUIDs to generate. Used by: v4.","maximum":1000,"minimum":1,"type":"integer"},"format":{"default":"standard","description":"Output format. Used by: v4.","enum":["standard","uppercase","no-hyphens","braces","urn"],"type":"string"},"namespace":{"default":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","description":"Namespace UUID. Used by: v3.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title":"UUID Generator"}
Build the standard WIFI: payload string for a WiFi QRcode..code. Operations: "payload" — Build the WIFI: ⟨19 unchanged words⟩
{"properties":{"input":{"description":"Theprimary inputnetworkstring.SSID.","maxLength":32768,"type":"string"},"operation":{"description":"Thepayloadoperation— Build the WIFI: payload string a phone scans torun.auto-join a network.","enum":["payload"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/wifi-qrit).","properties":{"encryption":{"default":"WPA","description":"Encryption type. Used by: payload.","enum":["WPA","WEP","nopass"],"type":"string"},"hidden":{"default":false,"description":"Hidden network flag. Used by: payload.","type":"boolean"},"password":{"default":"","description":"Network password. Used by: payload.","maxLength":32768,"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
Count words/characters and compute readabilitystatistics..statistics. Operations: "count" — Compute basic text ⟨33 unchanged words⟩
{"properties":{"input":{"description":"count: Theprimarytextinputtostring.analyze. readability: The text to analyze. keywords: The text to analyze.","maxLength":32768,"type":"string"},"operation":{"description":"Thecountoperation—toComputerun.basic text statistics (words, characters, sentences, etc.). readability — Compute readability scores (Flesch, SMOG, Coleman-Liau). keywords — Compute keyword density for the text.","enum":["count","readability","keywords"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/word-countit).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨8 unchanged words⟩ , key type/size, signature algorithm, extensions andfingerprints..fingerprints. Operations: "decode" — Decode every certificate ⟨14 unchanged words⟩ "input" (and "options" where relevant). Not repeatable: decode returns a different result on each call.
{"properties":{"input":{"description":"ThePEMprimarytextinput(-----BEGINstring.CERTIFICATE-----) or base64 DER.","maxLength":32768,"type":"string"},"operation":{"description":"Thedecodeoperation—toDecoderun.every certificate in a PEM bundle (or one bare base64 DER).","enum":["decode"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/x509it).","properties":{},"type":"object"}},"required":["operation","input"],"type":"object"}
{"destructiveHint":false,"idempotentHint":truefalse,"openWorldHint":false,"readOnlyHint":true,"title" ⟨3 unchanged words⟩
XML Formatter & ValidatorPretty-print or minify already-serialized XML, and highlightit..it. Operations: "format" — Pretty-print XML with ⟨28 unchanged words⟩
{"properties":{"input":{"description":"format: TheprimaryserializedinputXMLstring.to format. minify: The serialized XML to minify.","maxLength":32768,"type":"string"},"operation":{"description":"Theformatoperation—toPretty-printrun.XML with the chosen indent (server-safe string transform). minify — Collapse whitespace between XML tags (server-safe string transform).","enum":["format","minify"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/xmlit).","properties":{"indent":{"default":"2","description":"Indent style. Used by: format.","enum":["2","4","tab"],"type":"string"}},"type":"object"}},"required":["operation","input"],"type":"object"}
⟨5 unchanged words⟩ false,"readOnlyHint":true,"title":"XML Formatter & Validator"}
Convert between YAML andJSON..JSON. Operations: "yaml-to-json" — Convert YAML to ⟨17 unchanged words⟩
{"properties":{"input":{"description":"yaml-to-json: TheprimaryYAMLinputtextstring.to convert. json-to-yaml: The JSON text to convert.","maxLength":4096,"type":"string"},"operation":{"description":"Theyaml-to-jsonoperation— Convert YAML torun.JSON. json-to-yaml — Convert JSON to YAML.","enum":["yaml-to-json","json-to-yaml"],"type":"string"},"options":{"additionalProperties":true,"description":"Optional parametersOptions for the chosen operation (seeeachthesaystoolwhichschemaoperationsatuse/api/v1/yaml-jsonit).","properties":{"indent":{"default":2,"description":"JSON indent (spaces). Used by: yaml-to-json.","maximum":8,"minimum":0,"type":"integer"}},"type":"object"}},"required":["operation","input"],"type":"object"}
AES Text Encryption — Encrypt and decrypt text with AES-GCM using a password.. Operations: "encrypt" — Encrypt plaintext into base64 ciphertext with a password.; "decrypt" — Decrypt base64 ciphertext produced by the encrypt operation.. Call with "operation" plus "input" (and "options" where relevant).
after
ASCII / Char Code Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"ASCII / Char Code Converter"}before
—after
Base64 Encoder/Decoderbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Base64 Encoder/Decoder"}before
—after
Bcrypt Generator & Verifierbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Bcrypt Generator & Verifier"}before
—after
Case Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Case Converter"}before
—after
Unicode Character Inspectorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Unicode Character Inspector"}before
—after
chmod Calculatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"chmod Calculator"}before
—after
IP Subnet Calculatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"IP Subnet Calculator"}before
—after
Color Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Color Converter"}before
—after
Color Palette Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Color Palette Generator"}before
—after
Color Contrast Checkerbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Color Contrast Checker"}before
—after
Cron Expression Parserbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Cron Expression Parser"}before
—after
CSS Minifier & Beautifierbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"CSS Minifier & Beautifier"}before
—after
CSS Unit Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"CSS Unit Converter"}before
—after
cURL Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"cURL Converter"}before
—after
Data Size Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Data Size Converter"}before
—after
Diff Checkerbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Diff Checker"}before
—after
.gitignore Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":".gitignore Generator"}before
—after
Hash Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Hash Generator"}before
—after
HMAC Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"HMAC Generator"}before
—after
HTML Formatterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"HTML Formatter"}before
—after
HTML Entity Encoder & Decoderbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"HTML Entity Encoder & Decoder"}before
—after
HTTP Status Codesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"HTTP Status Codes"}before
—after
Image to Base64before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Image to Base64"}before
—after
JSON Formatter & Validatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSON Formatter & Validator"}before
—after
JSON / CSV Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSON / CSV Converter"}before
—after
JSON Diffbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSON Diff"}before
—after
JSON Schema Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSON Schema Generator"}before
—after
JSON to TypeScriptbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSON to TypeScript"}before
—after
JSON to XML Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSON to XML Converter"}before
—after
JSONPath Evaluatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JSONPath Evaluator"}before
—after
JWT Decoderbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JWT Decoder"}before
—after
JWT Encoder / Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"JWT Encoder / Generator"}before
—after
Lorem Ipsum Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Lorem Ipsum Generator"}before
—after
Markdown Previewbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Markdown Preview"}before
—after
Markdown Table Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Markdown Table Generator"}before
—after
MIME Type Lookupbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"MIME Type Lookup"}before
—after
Morse Code Translatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Morse Code Translator"}before
—after
Number Base Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Number Base Converter"}before
—after
Password Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Password Generator"}before
—after
Password Strength Checkerbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Password Strength Checker"}before
—after
Secure Random String Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Secure Random String Generator"}before
—after
Regex Testerbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Regex Tester"}before
—after
Roman Numeral Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Roman Numeral Converter"}before
—after
Slugifybefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Slugify"}before
—after
Sort & Dedupe Text Linesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Sort & Dedupe Text Lines"}before
—after
SQL Formatter & Beautifierbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"SQL Formatter & Beautifier"}before
—after
String Escape / Unescapebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"String Escape / Unescape"}before
—after
Unix Timestamp Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Unix Timestamp Converter"}before
—after
TOTP / 2FA Code Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"TOTP / 2FA Code Generator"}before
—after
ULID Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"ULID Generator"}before
—after
Advanced URL Toolsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Advanced URL Tools"}before
—after
URL Encoder & Decoderbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"URL Encoder & Decoder"}before
—after
User-Agent Parserbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"User-Agent Parser"}before
—after
UUID Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"UUID Generator"}before
—after
WiFi QR Code Generatorbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"WiFi QR Code Generator"}before
—after
Word Counterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Word Counter"}before
—after
XML Formatterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"XML Formatter"}before
—after
YAML / JSON Converterbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"YAML / JSON Converter"}Aspect Ratio Calculator — Reduce a ratio or resolution to lowest terms, name the nearest common ratio, solve the missing dimension and write CSS aspect-ratio.. Operations: "analyze" — Reduce a ratio or size (16:9, 1920x1080, 2.39) and return presets, CSS and whole-pixel sizes.; "solve" — Given a ratio and one dimension, compute the other.; "fit" — Largest size at this ratio that fits inside (contain) or covers (cover) a box.. Call with "operation" plus "input" (and "options" where relevant).
Base32 / Base58 / Base85 Encoder — Encode and decode UTF-8 text as Base32 (RFC 4648 + hex), Crockford Base32, Base58 (Bitcoin), Ascii85 or Z85.. Operations: "encode" — Encode UTF-8 text in the chosen scheme.; "decode" — Decode to UTF-8 text (binary payloads are returned as hex).. Call with "operation" plus "input" (and "options" where relevant).
CSP Evaluator — Parse a Content-Security-Policy, explain each directive and flag weaknesses (unsafe-inline, wildcards, missing object-src/base-uri/frame-ancestors…).. Operations: "evaluate" — Parse a CSP header and return its directives and findings by severity.; "harden" — Add the low-risk directives a policy is missing (object-src 'none', base-uri, frame-ancestors, form-action) and return ready-to-paste header, meta, nginx and Apache forms.. Call with "operation" plus "input" (and "options" where relevant).
Date Calculator — Days, months and business days between dates, add or subtract durations, ISO week numbers and day of year, and DST-aware elapsed time between local times.. Operations: "diff" — Difference between two dates in years/months/days, total days, weeks and business days.; "add" — Add or subtract a duration ("1y 2m", "-90d", "P2W") or a number of business days.; "info" — Weekday, day of year, ISO week, quarter and leap year for a date (plus Unix time of local midnight).; "elapsed" — Exact elapsed time between two local date-times, following DST in each time zone.. Call with "operation" plus "input" (…
Duration Converter — Convert between ISO 8601 durations, seconds, clock time and human text like "1h30m" or "90 minutes".. Operations: "convert" — Parse any duration (ISO 8601, 1h30m, 90 minutes, 1:30:00, seconds) into every representation.; "to-iso" — Convert any duration to a canonical ISO 8601 duration string.; "humanize" — Render a duration as words ("1 hour 30 minutes") or compact text ("1h 30m").. Call with "operation" plus "input" (and "options" where relevant).
.env to JSON Converter — Convert dotenv files to JSON and back, with dotenv-compatible quoting, escapes, comments, export prefixes and multi-line values, plus validation warnings.. Operations: "to-json" — Parse a .env file into a JSON object (last duplicate wins).; "to-env" — Write a JSON object as .env lines, quoting values only where needed.; "validate" — Lint a .env file: duplicates, invalid names, unterminated quotes, stray # comments.. Call with "operation" plus "input" (and "options" where relevant).
HTML to JSX Converter — Convert HTML or SVG markup to React JSX: className/htmlFor, camelCased SVG attributes, style objects, self-closing tags, JSX comments.. Operations: "convert" — Convert an HTML fragment or document to JSX, with warnings for anything to review.. Call with "operation" plus "input" (and "options" where relevant).
IPv6 Address Tool — Expand and compress IPv6 addresses (RFC 5952), classify them (link-local, ULA, multicast, documentation…), extract embedded IPv4, do prefix and range maths, and build ip6.arpa names.. Operations: "analyze" — Analyse an address, prefix or range: canonical and expanded forms, type, embedded IPv4, network bounds, reverse DNS.; "compress" — Rewrite each address in its RFC 5952 canonical (shortest) form.; "expand" — Rewrite each address with all eight 4-digit groups.. Call with "operation" plus "input" (and "options" where relevant).
JSON5 / JSONC to JSON — Convert JSON5, JSONC (tsconfig, VS Code settings) and relaxed JSON to strict JSON, or reformat them with comments kept, reporting every non-JSON feature used.. Operations: "to-json" — Convert JSON5 / JSONC to strict RFC 8259 JSON.; "format" — Re-print JSON / JSON5 / JSONC tidily as JSONC or JSON5, keeping comments.; "validate" — Check whether text is valid JSON5 and list which non-JSON features it uses.. Call with "operation" plus "input" (and "options" where relevant).
Checksum Validator (Luhn, IBAN, ISBN, EAN) — Validate check digits: Luhn card numbers (with brand), IBAN mod-97, ISBN-10/13 and EAN/UPC barcodes. Format only — nothing is looked up or stored.. Operations: "validate" — Validate a number, auto-detecting its type or using the one you choose.; "check-digit" — Compute the Luhn or GS1 (EAN/UPC) check digit to append to a payload.. Call with "operation" plus "input" (and "options" where relevant).
NanoID Generator — Generate NanoIDs or custom-alphabet random IDs with crypto randomness, plus a collision-probability estimate.. Operations: "generate" — Generate one or more random IDs (default: 21-char URL-safe NanoID).; "collision" — Estimate how long until a 1% collision chance for an alphabet size, ID length and rate.. Call with "operation" plus "input" (and "options" where relevant).
Security Headers Checker — Grade pasted HTTP response headers (HSTS, CSP, nosniff, framing, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP, cookies) A+ to F. Parses text only; never fetches a URL.. Operations: "grade" — Grade a raw header block and explain each check.. Call with "operation" plus "input" (and "options" where relevant).
SemVer Calculator — Parse, compare, sort and bump Semantic Versions, and test versions against npm-style ranges.. Operations: "parse" — Parse a SemVer 2.0.0 version into its components.; "compare" — Compare two versions by SemVer precedence (-1, 0 or 1).; "satisfies" — Test whether a version satisfies a range (^, ~, x, hyphen, ||).; "max-satisfying" — Find the highest and lowest versions in a list that satisfy a range.; "explain-range" — Desugar a range into plain comparators (e.g. ^1.2.3 → >=1.2.3 <2.0.0-0).; "sort" — Sort versions by SemVer precedence; invalid entries are listed separately.; "bump" — Increment…
SVG to Data URI — Minify an SVG and encode it as a compact percent-encoded (or base64) data URI, with background-image and mask-image CSS.. Operations: "encode" — Optimise an SVG and return url-encoded and base64 data URIs, sizes and CSS snippets.; "decode" — Decode a data:image/svg+xml URI (percent-encoded or base64) back to SVG markup.. Call with "operation" plus "input" (and "options" where relevant).
Text Cleanup & Invisible Characters — Find and remove invisible Unicode (zero-width, bidi/Trojan Source, tag-character smuggling), fix line endings, trailing whitespace, tabs and smart quotes, and normalise Unicode.. Operations: "scan" — Report invisible and special characters, hidden tag-character text, unterminated bidi controls, line endings and normalisation.; "clean" — Apply clean-ups and return the text plus counts of every change.. Call with "operation" plus "input" (and "options" where relevant).
TOML to JSON Converter — Convert TOML 1.0 to JSON and JSON to TOML, reporting anything that cannot round-trip.. Operations: "to-json" — Parse TOML and return pretty-printed JSON.; "to-toml" — Convert a JSON object to TOML (nulls are dropped with a warning).. Call with "operation" plus "input" (and "options" where relevant).
UTM Link Builder — Build campaign URLs with utm_* parameters, parse and lint tagged links, and strip UTM and click-ID tracking parameters.. Operations: "build" — Add UTM parameters to a URL, normalising case and spaces, and lint the result.; "parse" — Split a URL into UTM tags, ad click IDs and other parameters, with warnings.; "strip" — Remove utm_* and click-ID parameters (gclid, fbclid, msclkid…) from a URL.; "batch" — Tag many URLs (one per line) with the same UTM parameters.. Call with "operation" plus "input" (and "options" where relevant).
X.509 Certificate Decoder — Decode PEM/DER X.509 certificates: subject, issuer, validity, SANs, key type/size, signature algorithm, extensions and fingerprints.. Operations: "decode" — Decode every certificate in a PEM bundle (or one bare base64 DER).. Call with "operation" plus "input" (and "options" where relevant).