Arsenly
Tools
Free Tools
Pricing
Resources
Sign in Get started
← All tools

Text Comparer

Encoders & Converters Free · No sign-up

True LCS-based diff workbench - side-by-side, git-style unified, inline word-level, and stats. Trim · case-insensitive · ignore-blank-lines toggles.

Try it now No sign-up required. Runs entirely in your browser.
Side-by-side - A on the left, B on the right. Matching lines stay grey; red = only in A, green = only in B.
Paste A and B above, click Compare.
Git-style unified diff - copy to paste into a report, a PR description or patch -p1.
📄Run a comparison to see the unified diff here.
Inline word-level diff - strikethrough = removed from A, underline = added in B. Best for short strings.
📝Run a comparison to see inline word changes.
📊Run a comparison to see line counts, byte deltas, similarity %.

What is Text Comparer?

Text Comparer is the proper diff tool for the constant before/after comparisons that fill a bug-bounty / pentest day. Built on a real Longest Common Subsequence algorithm (not just set-difference like the previous version), so it correctly identifies the exact lines that changed, lines that moved, and lines that are unchanged - with subtle word-level highlights inside changed lines.

Four views of the same diff: Side-by-side (A | B with synchronised line numbers, intra-line word changes highlighted), Unified diff (git-format, copyable as .patch), Inline word-level (single block with <ins> / <del> - best for short strings), Stats (added / removed / unchanged counts, byte-size delta, similarity percentage, visual stacked-bar breakdown).

Three diff granularities: Line (most common), Word (for paragraph-level edits), Character (for very short strings). Plus three normalisation toggles: trim whitespace, case-insensitive, ignore blank lines - so cosmetic differences don’t mask real ones. File import via 📂 button or drag-drop, live re-diff as you type (250 ms debounce), one-click Swap A↔B.

100% client-side. Sensitive HTTP captures, source dumps, tokens never leave the browser.

What it does

  • True LCS diff - built on the Longest Common Subsequence algorithm. Correctly identifies what stayed the same vs what changed, in O(m×n) time. Sanity-capped at 4 M operations to keep the browser responsive.
  • Side-by-side view - A on the left, B on the right, synchronised line numbers, intra-line word-level highlighting in changed lines so subtle character-level differences are visible without squinting.
  • Unified diff view - standard git format with @@ -m,n +p,q @@ hunk headers, + / - markers, 3 lines of context. Copy as .patch or download for use with patch -p1.
  • Inline word-level view - single-block presentation with <ins> / <del> spans - ideal for comparing two short strings (tokens, headers, log lines) where character precision matters.
  • Stats panel - added / removed / unchanged item counts, byte-size delta (with sign), similarity percentage, plus a visual stacked-bar showing the proportion of each.
  • Three diff modes - Line, Word, Character - pick the right granularity for the comparison at hand.
  • Normalisation toggles - trim whitespace (default on), case-insensitive, ignore blank lines - so cosmetic differences don’t hide real ones.
  • File import - click 📂 Load on either pane, or drag-drop a file onto the textarea. 10 MB cap.
  • Live re-diff - recomputes 250 ms after you stop typing, so editing either pane updates all four views automatically.
  • Swap - one-click A ↔ B for sanity-checking which side has the addition vs deletion.
  • Local-only - the whole pipeline runs in your browser. Nothing transmitted.

Where it fits in your workflow

  • Compare two API responses (before / after a state change, role change, parameter tweak) - Side-by-side mode highlights every field that changed, including the intra-line word edits (e.g. "role":"viewer""role":"admin").
  • Diff two HTTP request captures from Burp to find which header / cookie / body field actually drives a server-side decision.
  • Compare two cookies / tokens character-by-character with Char mode to find tiny encoding differences (URL-encoded vs not, single vs double quotes).
  • Diff a JS bundle before / after a release to find what changed in the recon footprint.
  • Convert the diff to .patch format and attach it to a bug-bounty report as evidence of the change.
  • Diff a wordlist before / after de-duping to verify nothing important was lost.
Want more?

This one is free in your browser. Sign up for server-side recon, scan history, and projects.

Create free account Sign in

At a glance

CategoryEncoders & Converters
RunsIn your browser
Token cost Free - no tokens
Access No login needed
Status● Live

Frequently asked questions

Is it a real diff, or just word counts?

A real diff. Built on the Longest Common Subsequence algorithm - the same algorithm git diff and Unix diff use. Correctly identifies which items are common (in the right order), which were removed, and which were added.

What if my inputs are huge?

LCS is O(m×n) memory. We cap the operation count at 4,000,000 (e.g. 2,000 × 2,000 items) and refuse to compute beyond that with a clear error. For massive inputs, switch to Line mode with "ignore blank lines" to reduce the token count.

Can I use the output with <code>git apply</code> / <code>patch</code>?

Yes - the Unified diff view produces standard git-format output with proper @@ hunk headers and 3 lines of context. Download as .patch.

Does anything go to the server?

No. 100% client-side. Both inputs, the LCS computation, and all rendering happen in your browser.

Other free tools you might like

Explore more tools →