# Caruana Utilities > Deterministic developer utilities for AI agents and people: encoding, hashing, checksums, key and certificate inspection, TLS checks, JWT/URL/UUID inspection, time-zone arithmetic, cron, text diffs, and JSON/YAML/TOML/CSV validation, formatting and conversion. Same input, same output, every time. Available as an HTTP API, an MCP server and an A2A agent; every tool also has a browser UI that runs locally. Use these tools instead of reasoning through work that has exactly one right answer: it is cheaper in tokens and never confidently wrong. Inputs are processed in memory and never stored or logged (except tool requests, which exist to be read). ## Start here (agents) - [Authentication and self-registration](https://util.caruana.me/auth.md): get a client ID and secret in one call, no human needed. - [MCP server](https://util.caruana.me/mcp): Streamable HTTP, protocol 2026-07-28 (and 2025-x via initialize). Server card: https://util.caruana.me/.well-known/mcp/server-card.json - [A2A agent card](https://util.caruana.me/.well-known/agent-card.json): A2A 1.0, JSON-RPC endpoint https://util.caruana.me/a2a; signed when a key is configured. - [OpenAPI 3.1](https://util.caruana.me/openapi.json): every HTTP endpoint with schemas. - [API catalog](https://util.caruana.me/.well-known/api-catalog) (RFC 9727) and [AI catalog](https://util.caruana.me/.well-known/ai-catalog.json) (ARD). - [Agent skill](https://util.caruana.me/.well-known/agent-skills/caruana-utilities/SKILL.md): instructions for using this service well. - [Request a tool](https://util.caruana.me/tools/request/): missing something deterministic? Ask for it: `tool_request` over HTTP (`POST https://util.caruana.me/api/tools/request`), MCP or A2A. ## Tools ### Encoding - [URL Encode / Decode](https://util.caruana.me/tools/url/): Percent-encode or decode text for URLs, query strings, and form bodies. API: `url_encode`, `url_decode`. Markdown: https://util.caruana.me/tools/url.md - [Base64](https://util.caruana.me/tools/base64/): Encode or decode Base64, standard or URL-safe, with proper UTF-8 handling. API: `base64_encode`, `base64_decode`. Markdown: https://util.caruana.me/tools/base64.md - [HTML Entities](https://util.caruana.me/tools/html/): Escape text for HTML, or decode every named and numeric entity. API: `html_encode`, `html_decode`. Markdown: https://util.caruana.me/tools/html.md - [Hex](https://util.caruana.me/tools/hex/): Text to UTF-8 bytes in hex and back: plain, spaced, \x, or 0x. API: `hex_encode`, `hex_decode`. Markdown: https://util.caruana.me/tools/hex.md - [Punycode / IDN](https://util.caruana.me/tools/punycode/): Convert internationalised domain names to xn-- form and back. API: `punycode_encode`, `punycode_decode`. Markdown: https://util.caruana.me/tools/punycode.md ### Hashing - [Hash Generator](https://util.caruana.me/tools/hash/): MD5, SHA-1, SHA-2, SHA-3, BLAKE2b and BLAKE3 digests and HMACs of any text. API: `hash`. Markdown: https://util.caruana.me/tools/hash.md - [File Hash Verification](https://util.caruana.me/tools/hash/verify/): Check a download against its checksum or SHA256SUMS file. Files never leave your browser. API: `hash_verify`. Markdown: https://util.caruana.me/tools/hash/verify.md ### Keys & Certificates - [Fingerprints](https://util.caruana.me/tools/fingerprint/): SSH, X.509, SPKI-pin and OpenPGP fingerprints, cross-referenced between formats. API: `fingerprint`. Markdown: https://util.caruana.me/tools/fingerprint.md - [Certificate Decoder](https://util.caruana.me/tools/cert/): Decode certificates, chains and CSRs: names, validity, extensions, chain order. API: `cert_decode`. Markdown: https://util.caruana.me/tools/cert.md - [TLS Checker](https://util.caruana.me/tools/tls/): Connect to a host and check its certificate chain, trust, host name and protocol (server-side). API: `tls_check`. Markdown: https://util.caruana.me/tools/tls.md - [Key Pair Generator](https://util.caruana.me/tools/keys/): RSA, ECDSA, Ed25519 and X25519 keys as PEM and OpenSSH, with CSRs and self-signed certs. Markdown: https://util.caruana.me/tools/keys.md ### Inspect & Identify - [JWT Inspector](https://util.caruana.me/tools/jwt/): Decode a JWT, check expiry and algorithm, and verify the signature with a public key or JWKS. API: `jwt_decode`. Markdown: https://util.caruana.me/tools/jwt.md - [URL Parser](https://util.caruana.me/tools/url-parse/): Split a URL into host, port, path segments and ordered query parameters, exactly as browsers do. API: `url_parse`. Markdown: https://util.caruana.me/tools/url-parse.md - [UUID Generator & Inspector](https://util.caruana.me/tools/uuid/): Generate v4 or time-ordered v7 UUIDs, or decode any UUID’s version, variant and timestamp. API: `uuid_generate`, `uuid_inspect`. Markdown: https://util.caruana.me/tools/uuid.md ### Text & Data - [Text Inspector](https://util.caruana.me/tools/text/): Exact character, byte, word and line counts; find letters; reveal invisible and look-alike characters. API: `text_inspect`. Markdown: https://util.caruana.me/tools/text.md - [Text Diff](https://util.caruana.me/tools/diff/): Compare two texts by line, word or character and get a unified diff. API: `text_diff`. Markdown: https://util.caruana.me/tools/diff.md - [JSON Format & Validate](https://util.caruana.me/tools/json/): Validate JSON with exact error locations, pretty-print or minify it, sort keys, and find duplicate keys. API: `json_format`, `json_lint`. Markdown: https://util.caruana.me/tools/json.md - [JSON Schema Validator](https://util.caruana.me/tools/json-schema/): Validate JSON against a JSON Schema (2020-12, 2019-09, 7, 4) with every error as a JSON Pointer. API: `json_schema_validate`. Markdown: https://util.caruana.me/tools/json-schema.md - [YAML Format & Validate](https://util.caruana.me/tools/yaml/): Convert between JSON and YAML 1.2, with warnings for YAML 1.1 pitfalls like yes/no and 0755. API: `json_to_yaml`, `yaml_to_json`, `yaml_format`. Markdown: https://util.caruana.me/tools/yaml.md - [JMESPath Query](https://util.caruana.me/tools/json-query/): Filter, project and reshape JSON with JMESPath expressions, with error positions. API: `json_query`. Markdown: https://util.caruana.me/tools/json-query.md - [TOML Format & Validate](https://util.caruana.me/tools/toml/): Validate, lint and format TOML 1.0 with exact error locations; explore it as a tree; convert to and from JSON. API: `toml_format`, `toml_to_json`, `json_to_toml`. Markdown: https://util.caruana.me/tools/toml.md - [CSV Validate & Format](https://util.caruana.me/tools/csv/): Validate CSV with exact error positions, detect the delimiter and header, infer column types, and reformat or convert to and from JSON. API: `csv_format`, `csv_to_json`, `json_to_csv`. Markdown: https://util.caruana.me/tools/csv.md ### Time & Scheduling - [Time & Time Zones](https://util.caruana.me/tools/time/): Current time in any zone; convert ISO 8601, RFC 2822, HTTP dates and Unix timestamps; DST-aware differences and date arithmetic. API: `time_now`, `time_convert`, `time_diff`, `time_add`. Markdown: https://util.caruana.me/tools/time.md - [Cron Explainer](https://util.caruana.me/tools/cron/): Cron expressions in plain English, field by field, with the next run times in your time zone. API: `cron_explain`. Markdown: https://util.caruana.me/tools/cron.md ### Requests - [Request a Tool](https://util.caruana.me/tools/request/): Ask for a new deterministic tool. Agents can request tools for themselves over the API, MCP or A2A. API: `tool_request`, `tool_requests`. Markdown: https://util.caruana.me/tools/request.md ## Reference - [url_encode](https://util.caruana.me/reference/url_encode/): Percent-encode text (RFC 3986). - [url_decode](https://util.caruana.me/reference/url_decode/): Decode percent-encoded text. - [base64_encode](https://util.caruana.me/reference/base64_encode/): Encode text as Base64 (RFC 4648). - [base64_decode](https://util.caruana.me/reference/base64_decode/): Decode Base64 to UTF-8 text. - [html_encode](https://util.caruana.me/reference/html_encode/): Escape text for HTML. - [html_decode](https://util.caruana.me/reference/html_decode/): Decode HTML entities. - [hex_encode](https://util.caruana.me/reference/hex_encode/): Text to hexadecimal UTF-8 bytes. - [hex_decode](https://util.caruana.me/reference/hex_decode/): Hexadecimal bytes to text. - [punycode_encode](https://util.caruana.me/reference/punycode_encode/): Unicode domain to ASCII (IDNA / RFC 3492). - [punycode_decode](https://util.caruana.me/reference/punycode_decode/): ASCII (xn--) domain to Unicode. - [hash](https://util.caruana.me/reference/hash/): Digest data with one or more hash algorithms. - [hash_verify](https://util.caruana.me/reference/hash_verify/): Check data against an expected hash or a checksum list. - [fingerprint](https://util.caruana.me/reference/fingerprint/): Fingerprint SSH keys, X.509 certificates, SPKI public keys, and OpenPGP keys. - [cert_decode](https://util.caruana.me/reference/cert_decode/): Decode X.509 certificates, chains, and certificate requests. - [tls_check](https://util.caruana.me/reference/tls_check/): Connect to a host and check the certificate chain it presents: trust, host name, expiry, protocol. - [jwt_decode](https://util.caruana.me/reference/jwt_decode/): Decode a JWT, check its claims and algorithm, and optionally verify it with a public key. - [url_parse](https://util.caruana.me/reference/url_parse/): Split a URL into its parts with the WHATWG URL parser browsers use. - [uuid_generate](https://util.caruana.me/reference/uuid_generate/): Generate random (v4) or time-ordered (v7) UUIDs, up to 1000 at a time. - [uuid_inspect](https://util.caruana.me/reference/uuid_inspect/): Read a UUID’s version, variant and embedded timestamp, clock sequence and node. - [text_inspect](https://util.caruana.me/reference/text_inspect/): Exact counts of characters, bytes, words and lines; find substrings; reveal invisible characters. - [time_now](https://util.caruana.me/reference/time_now/): The current instant from the server clock, in one or more time zones. - [time_convert](https://util.caruana.me/reference/time_convert/): Parse a date-time or Unix timestamp and show it in other zones and formats. - [time_diff](https://util.caruana.me/reference/time_diff/): Elapsed time and calendar difference between two instants, DST-aware. - [time_add](https://util.caruana.me/reference/time_add/): Add or subtract an ISO 8601 duration to an instant, calendar-aware in a time zone. - [cron_explain](https://util.caruana.me/reference/cron_explain/): Validate a cron expression, describe it in English, and list its next run times in a zone. - [text_diff](https://util.caruana.me/reference/text_diff/): Diff two texts by line, word or character: unified diff, structured changes, and stats. - [json_format](https://util.caruana.me/reference/json_format/): Check that text is valid JSON (RFC 8259), pretty-print or minify it, and find duplicate keys. - [json_schema_validate](https://util.caruana.me/reference/json_schema_validate/): Validate a JSON instance against a JSON Schema (draft 2020-12, 2019-09, 7, 6 or 4) and list every error with JSON Pointers. - [json_to_yaml](https://util.caruana.me/reference/json_to_yaml/): Convert JSON to YAML 1.2, quoting strings that YAML 1.1 parsers would misread. - [yaml_to_json](https://util.caruana.me/reference/yaml_to_json/): Convert YAML to JSON under pinned YAML 1.2 core-schema rules, with line/column errors and YAML 1.1 pitfall warnings. - [json_query](https://util.caruana.me/reference/json_query/): Evaluate a JMESPath expression against JSON and return the result, its type and pretty JSON. - [yaml_format](https://util.caruana.me/reference/yaml_format/): Check YAML against yamllint’s rules (same rule IDs) and return the findings with positions, plus a comment-preserving formatted copy. - [json_lint](https://util.caruana.me/reference/json_lint/): Validate JSON strictly and report every lint finding with its position. - [csv_format](https://util.caruana.me/reference/csv_format/): Check CSV against RFC 4180, detect the delimiter and header, infer column types, list every problem with its position, and rewrite it consistently. - [csv_to_json](https://util.caruana.me/reference/csv_to_json/): Convert CSV to a JSON array of objects (keyed by the header) or of arrays, optionally typing numbers and booleans. - [json_to_csv](https://util.caruana.me/reference/json_to_csv/): Convert a JSON array of objects or of arrays to CSV, with the union of keys as the header. - [toml_format](https://util.caruana.me/reference/toml_format/): Check that text is valid TOML 1.0, list problems with line and column, and re-format it with comments kept. - [toml_to_json](https://util.caruana.me/reference/toml_to_json/): Convert a TOML 1.0 document to JSON, with line and column for any error. - [json_to_toml](https://util.caruana.me/reference/json_to_toml/): Convert a JSON object to a TOML 1.0 document. - [tool_request](https://util.caruana.me/reference/tool_request/): Ask for a new deterministic tool to be added to this service, describing the job and an example. - [tool_requests](https://util.caruana.me/reference/tool_requests/): See the tool requests you have made with these credentials and what became of each. ## Optional - [Full documentation in one file](https://util.caruana.me/llms-full.txt) - [Security and privacy](https://util.caruana.me/security/): exactly what is stored and logged.