Compare two lists for differences

Compare two lists paste both into one textarea separated by `# List` header lines and pick an output mode: A-only + B-only tagged (default), only A, only B, or items in both. Case-insensitive by default; toggle on for exact matching. Uses the same block-split convention as the other compare tools.

Input
Ready
Output
Live

Four output modes against two pasted blocks

Input is split on `#`-prefixed header lines into two blocks. The op computes three sets: only-A, only-B, common. The Output select picks which of those to emit: `tagged` (default) shows only-A and only-B together with `A\t` and `B\t` prefixes per row. `only_a`, `only_b`, `common` emit just that set without tags.

Case-insensitive comparison is the default. Toggle Case sensitive on to treat `Apple` and `apple` as distinct. Duplicates within a single list are deduped implicitly - the comparison is set-based.

For two-of-many-list comparison, use Compare three lists or Find common items. For row-by-row pairing instead of set diff, use Zip two lists.

How to use compare two lists for differences

  1. 1Paste List 1 under a `# List 1` header
  2. 2Add `# List 2` and paste the second list
  3. 3Pick Output: tagged (A + B with tags), only A, only B, or common
  4. 4Toggle Case sensitive if you need exact casing
  5. 5Output updates live; copy or download the result

Keyboard shortcuts

Drive ListShift without touching the mouse.

Shortcut Action
Ctrl ZUndo last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor
EscExit fullscreen
Ctrl KOpen the command palette to jump to any tool
Ctrl SSave current pipeline draft Plus
Ctrl PRun a saved pipeline Plus

What this tool actually does

Set-based diff across two `#`-delimited blocks.

Tagged mode (default)

Output shows A-only items with `A\t` prefix, then B-only items with `B\t` prefix. Tab separator pastes into Excel as two columns. Items in both lists are omitted.

Only A / Only B modes

Emit just one side of the diff, without tags. Useful when you only care about "what is missing from List 2" (Only A) or "what was added in List 2" (Only B).

Common mode

Emits the intersection - items that appear in both lists. The inverse of Find distinct items.

Case-insensitive by default

`Apple` matches `apple`. Toggle on to make the diff exact. No trim option - whitespace differences are preserved.

Two blocks required

Status bar shows "Paste two lists separated by `# List X` headers" if fewer than two `#`-prefixed blocks are detected.

Worked example

Default tagged output: A-only items first, then B-only items. `banana` (in both) is omitted.

Input
# List 1
apple
banana
cherry
# List 2
banana
date
fig
Output
A	apple
A	cherry
B	date
B	fig

Settings reference

How each option shapes the output using the sample above.

Setting What it does Effect on the sample
Output: A-only + B-only (tagged) (default) Shows A-only items tagged `A\t`, then B-only tagged `B\t` `A\tapple` / `A\tcherry` / `B\tdate` / `B\tfig`
Output: Only in A Items present in A but not B `apple` / `cherry`
Output: Only in B Items present in B but not A `date` / `fig`
Output: In both Intersection `banana`
Case sensitive: on `Apple` ≠ `apple` Would treat cased variants as distinct

FAQ

How do I paste the two lists into one input?
Prefix each list with a `#`-starting header line - e.g. `# List 1` and `# List 2`. Any line starting with `#` is treated as a block separator. The text after `#` is not examined; labels can be anything.
What does the tagged output look like?
Each row is `A<TAB>item` or `B<TAB>item`. Paste into Excel and the tag becomes its own column - lets you filter/sort by which list the item came from.
Does Case sensitive affect how items are compared?
Yes. Off (default) treats `Apple` and `apple` as the same value. On makes them distinct - both would appear in the diff.
What if a list has duplicate items within itself?
Set-based comparison - internal duplicates are ignored for the diff. If you need duplicate-aware comparison, dedupe with Dedupe first.
Can I compare more than two lists?
Not with this tool. Use Compare three lists for 3-way, or Find common / Find distinct which support any number of blocks.