tooly

Text

Generate QR codes and passwords, count words, format JSON, convert Markdown and change text case. Everything runs instantly in your browser.

QR code generatorCreate QR codes for links, text, Wi-Fi and contacts. Choose size, colours and error correction, download as PNG or SVG. Runs in your browser.Word counterCount words, characters, sentences and paragraphs as you type. Get reading and speaking time estimates instantly. Free, private, no upload.Password generatorGenerate strong random passwords with letters, digits and symbols. Set the length, see the strength, copy in one click. Generated locally in your browser.JSON formatter and validatorFormat, validate and minify JSON online. Exact line and column of syntax errors, 2, 4 or tab indent, copy or download. Nothing leaves your browser.Case converterConvert text to upper case, lower case, title case, sentence case, camelCase, snake_case, kebab-case and more. Instant, free, works in your browser.Base64 encoder and decoderEncode text or files to Base64 and decode Base64 back to text in your browser. URL-safe variant, data URIs for files. Nothing is uploaded.URL encoder and decoderPercent-encode text for URLs or decode encoded strings in your browser. Encode a single parameter or a complete URL. Instant and private.Hash generatorCompute MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or files in your browser. Verify checksums without uploading anything.UUID generatorGenerate UUID v4 or v7 identifiers in bulk, in your browser. Cryptographically random, uppercase option, copy with one click.Compare texts (diff)Compare two texts line by line or word by word and see additions and deletions highlighted. Runs in your browser — texts are never uploaded.Unix timestamp converterConvert Unix timestamps to human-readable dates and back. Seconds or milliseconds, ISO 8601, UTC, your time zone and relative time. Live clock.Color converterConvert colours between HEX, RGB and HSL. Pick a colour, paste any CSS value and copy the formats you need. Runs in your browser.URL slug generatorTurn a title into a clean URL slug: lowercase, hyphens, transliterated Cyrillic and stripped accents. Instant, in your browser.Convert JSON to CSV onlineConvert JSON arrays to CSV in your browser. Nested objects become dotted columns; choose comma, semicolon or tab. Copy or download the CSV.Convert CSV to JSON onlineConvert CSV to a JSON array in your browser. Header row becomes keys, numbers and booleans typed automatically. Copy or download the JSON.Lorem Ipsum generatorGenerate Lorem Ipsum placeholder text by paragraphs, sentences or words. Classic opening on or off, one click to copy. Free, no ads in the way.Convert Markdown to HTML onlineConvert Markdown to clean HTML in your browser: headings, lists, tables, code blocks, links. Live preview, copy or download the HTML file.Convert HTML to Markdown onlineConvert HTML to clean Markdown in your browser: headings, lists, tables, links and code. Copy the result or download a .md file. Nothing is uploaded.Unit converterConvert length, mass, volume, area, speed, data and temperature units in your browser. Metric and imperial, decimal and binary bytes, exact results.Convert DOCX to Markdown onlineConvert Word .docx files to clean Markdown in your browser: headings, lists, tables, links and emphasis. Copy the result or download a .md file.Convert SRT to VTT and backConvert subtitles between SRT, VTT and plain text, and shift the timings when they run early or late. Everything happens in your browser.

Which tool for which job

These tools work on text you type or paste, plus a few small files. Grouped by what you are trying to do:

Formats worth knowing

JSON is the language of APIs. It is parsed here with the browser's native parser, so numbers above 9,007,199,254,740,991 lose precision: long IDs should be strings in the source.

CSV has no real standard beyond RFC 4180: quote any field that contains the delimiter, double any quote inside it. Excel in most of continental Europe and Latin America expects a semicolon rather than a comma, which is why a comma file can land entirely in column A.

Markdown here follows GitHub Flavored Markdown. A single line break does not start a new line; a blank line starts a paragraph. Front matter, footnotes and math are not part of the dialect.

SRT and VTT carry the same cues. SRT uses a comma before milliseconds (00:01:02,500) and numbered cues; VTT needs a WEBVTT header and a dot. Browsers load only VTT in a <track> element.

Base64 turns bytes into 64 safe characters, three bytes into four, so output is about 33% larger. It is an encoding, not protection. Percent-encoding writes unsafe URL characters as %XX: a space is %20, é becomes %C3%A9.

Hashes are fixed-length fingerprints: MD5 is 32 hex characters, SHA-256 is 64. Use SHA-256 to verify downloads; MD5 and SHA-1 only catch accidental corruption. UUIDs come as v4, fully random, or v7, which starts with a millisecond timestamp so values sort by creation time and suit database primary keys.

Everything stays in the page

Every tool in this category runs in your browser as you type. There is no server path, no daily limit and no upload, so pasting an API token, a contract draft, customer exports or a Wi-Fi password is as safe as typing it into a local editor. Once the page has loaded, the tools keep working offline.

Randomness comes from the browser's cryptographic generator: crypto.getRandomValues for passwords, with modulo bias removed, and crypto.randomUUID for UUID v4. The few tools that read files load them into memory: Hash generator and Base64 read any file locally, DOCX to Markdown accepts .docx files up to 50 MB. Very large files can make a phone tab slow.

Password strength comes from length more than variety: four extra characters add about 26 bits, adding symbols adds about 8.

Workflows that chain well

  1. API response to a spreadsheet: tidy and validate it in the JSON formatter, then convert with JSON to CSV, choosing the semicolon for European Excel.
  2. Reading a JWT: decode the middle part with Base64 (it accepts the URL-safe form), format the JSON, and paste exp into the timestamp converter.
  3. A Word document for a static site: DOCX to Markdown, preview with Markdown to HTML, and make the page address with the slug generator.
  4. Guest Wi-Fi: generate a password with "no ambiguous" on, then print it as a Wi-Fi code from the QR code generator.
  5. Comparing two configs: format both with the same indent, then open them in Text diff so only real changes show.
  6. Subtitles from a recording: Transcribe to SRT on the server, then shift or convert them with the subtitle converter.

When the result looks wrong

  • A hash does not match the published one. Usually a trailing newline (echo adds one), Windows line endings or invisible characters copied from a web page.
  • Leading zeros vanished after CSV to JSON. Number detection turned 02134 into 2134. Switch it off for identifier columns.
  • Accented letters turn into symbols in Excel. Import the CSV through the text import dialog and choose UTF-8.
  • Base64 will not decode. Remove a data:...;base64, prefix and join wrapped lines.
  • A link contains %2520. It was encoded twice. Decode once.
  • A timestamp is off by a few hours. A date with a time but no offset is read as your local time. Add Z or an explicit offset.
  • Word counts differ from another tool. Numbers like 3.14, URLs and text without spaces are split differently. Use the counter of the form you are submitting to.