Tool categories

Developer tools

Token counter, redaction, JSON repair, regex, cron and SQL formatting

JSON formatter and repairPretty-print, minify and validate JSON with exact error positions, and repair the broken JSON that AI models produce.LLM API pricing comparisonCompare API prices for GPT, Claude, Gemini, DeepSeek, Qwen, Kimi and GLM in one table and see what each request costs.Token counter & AI cost calculatorCount tokens, estimate API cost and check context-window fit in your browser, with exact and approximate numbers kept apart.Redact sensitive data before AIReplace API keys, tokens, passwords, emails and phone numbers in logs and configs with placeholders, then restore them in the AI's reply.Regex testerLive match highlighting, capture groups, a replace preview and a plain-English explanation of each part of the pattern.JSON to TypeScript interfaceTurn a JSON response into TypeScript interfaces or a Zod schema, merging array items and marking optional fields.Cron expression translatorTranslate a cron expression into plain English, list its next run times in any time zone, and catch the day-of-month / day-of-week trap.SQL formatterTurn one-line SQL into clean, readable formatting for MySQL, PostgreSQL, SQL Server, Oracle and a dozen other dialects.Base64 encoder & decoderEncode and decode Base64 for text and files, including URL-safe Base64.Unix timestamp converterConvert Unix time in seconds, milliseconds or nanoseconds to dates and back.URL encoder & decoderPercent-encode or decode URLs and query values, and split a URL into its parts.JWT decoderRead a JSON Web Token's header, payload and expiry — without sending it anywhere.
GuideDebugging an API responseA walk through four common API problems: broken JSON, rounded IDs, expired tokens and wrong timestamps.

These are the small utilities you reach for in the middle of debugging: an API response that will not parse, a token you need to look inside, a number in a log that is supposed to be a date. The usual way to get help is to paste the data into the first website a search turns up, which is exactly what you should not do with production tokens, customer records or internal payloads. Every tool in this section runs entirely in the page; open your browser's network panel while you use one and you will see that nothing you paste is sent anywhere.

Precise errors instead of "invalid input"

A validator is only useful if it tells you where the problem is. The JSON formatter reports the line and column of the first syntax error and explains the common causes — a trailing comma, a single-quoted string, a comment — because most broken JSON was written by hand or produced by a template. The Base64 decoder points to the first character that is not part of the alphabet, and the timestamp converter says which unit (seconds, milliseconds, microseconds) it assumed and why.

Decoding is not verifying

A JSON Web Token is readable by anyone: the header and payload are only Base64url-encoded, not encrypted. The JWT decoder shows their contents and whether the token has expired, but it does not and cannot tell you whether the signature is valid, because that needs the issuer's secret or public key. The tool page explains what to check on the server instead. The same caution applies to Base64 in general: it is an encoding for carrying bytes through text, not a way of hiding them.

Working alongside AI

A lot of debugging now happens with ChatGPT or Claude, and that brings three new questions. How many tokens will a prompt or document use, what will it cost and will it fit the context window? The token counter counts exactly with OpenAI's published tokenizers, marks other models as approximate and prices them from the official lists. What should come out of a log or config before it is pasted into an AI? The redaction tool swaps keys, passwords and personal details for placeholders and restores them in the reply. And what about the "JSON" a model returns with code fences, single quotes or trailing commas? The JSON formatter's Repair fixes each problem and lists what it changed.

Large inputs

Log files and API dumps can be many megabytes. Formatting and parsing large inputs happens in a background worker so the page stays responsive, and outputs can be downloaded as files instead of being copied from a huge text box.

  • LLM API pricing comparison: official prices for GPT, Claude, Gemini, DeepSeek, Qwen, Kimi and GLM in one currency, ranked for your usage, with DeepSeek off-peak rates.
  • Token counter & AI cost calculator: exact counts for GPT models with o200k_base and cl100k_base, approximations for Claude and Gemini, and cost and context use at official prices.
  • Redact sensitive data: replace keys, tokens, connection-string passwords, emails and phone numbers with consistent placeholders, and restore the AI's reply.
  • JSON formatter and repair: pretty-print, minify, sort keys and validate, keeping integers larger than 2^53 exact; repair broken JSON from AI models in one click.
  • JSON to TypeScript interface: infer interfaces or a Zod schema from an API response, with optional fields detected.
  • Regex tester: live highlighting, capture groups, replace preview and a plain-English explanation.
  • Cron expression translator: plain-English meaning, next run times by time zone, and a warning about the day-of-month OR day-of-week rule.
  • SQL formatter: MySQL, PostgreSQL, SQL Server, Oracle and a dozen other dialects.
  • Base64: text and files, standard and URL-safe alphabets, with or without padding.
  • Timestamp converter: Unix time in any unit to ISO 8601, RFC 2822, UTC and local time, and back.
  • JWT decoder: header, payload, registered claims and expiry, with the limits of decoding spelled out.

Debugging a failing integration

When an API call that worked yesterday fails today, the cause is usually one of four things: a response that is not valid JSON, a large ID rounded by JSON.parse, an expired token, or a timestamp read in the wrong unit. The guide to debugging API responses takes them in that order. It shows how to find a trailing comma by line and column, why 12345678901234567890 turns into 12345678901234567000 in JavaScript, how to read the exp claim of a JWT, and why a date of 20 January 1970 almost always means seconds were read as milliseconds.

A sensible order of checks

When something breaks, look at the HTTP status and content type before the body. If the body does not parse, format it to find the error. If it parses but looks wrong, compare long IDs and dates with the raw response. If the server answers 401, decode the token and read its time claims. That order finds most problems within minutes.

↵ to open · Esc to close