Skip to content

About

Offline CSV file comparer and configuration diff editor. Compare up to 6 two-column CSV, TSV, INI and key/value files side by side in your browser.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSV & Config Compare

An offline CSV file comparison tool and configuration diff editor for your browser.

Compare up to six files side by side, find changed or missing values, edit individual entries, and download the results. The layout adapts to the number of files loaded: two files get two comparison columns, with room to grow to six.

No installation. No build step. No file uploads. Just open index.html.

CSV support: This tool compares two-column key/value CSV and TSV files, with one unique key per row and no header. It is designed for settings exports and configuration data, rather than arbitrary tables with many columns.

Two-file comparison with a dark grey interface

Features

  • Find differences quickly. Align rows by key, even when file order changes. Filter to changed, missing, or matching entries.
  • Compare two to six files. Add and remove files as you work; columns resize automatically.
  • Edit without rewriting the whole file. Downloads preserve original bytes outside changed values, including comments, spacing, line endings, ordering, and BOM.
  • Compare numbers accurately. Optional numeric equality treats 1, 1.0, and 1e0 as equal without floating-point rounding or tolerance.
  • Handle more than CSV. Compare INI, flat key/value text, TSV, and PX4 / QGroundControl text parameter exports.
  • Keep files local. All processing happens in browser memory, with no network requests, analytics, or persistent storage.
  • Export a report. Download the visible comparison as CSV, with protection against spreadsheet formula interpretation.

Get started

  1. Download this repository using Code → Download ZIP, then extract it.
  2. Open index.html in a modern browser.
  3. Click Open files and select the files to compare, or drag files onto the empty drop area.
  4. Use Add files to expand the comparison, up to six files. Use Replace or × on a file card to replace or remove it.
  5. Search for a key, section, or value, or choose Differences only.
  6. Click a value to edit it. Use Save file on that file's card to download a verified copy.

Open files starts a new comparison. Add files keeps the files already loaded. Unsaved edits prompt before they are discarded. The Input selector applies when loading files; select a format explicitly when auto detection is ambiguous.

Want a quick look? Click Try example for six fictional configurations, or load files from the examples folder.

Supported formats

Format Example Notes
Two-column CSV timeout,30 No header; quoted fields and escaped quotes supported
Two-column TSV timeout + tab + 30 Exactly two columns; quoted fields supported
Key/value text timeout=30 or timeout: 30 Text and empty values supported
Whitespace-separated text timeout 30 Flat key/value entries
INI [display] followed by theme=dark Keys align within their section
PX4 / QGroundControl 1 1 RATE 6.5 9 Vehicle, component, name, value, type
Parameter commands param set RATE 6.5 Flat key/value entries

CSV example

baseline.csv

mode,preview
timeout,30
label,"Example, baseline"
enabled,true

revision.csv

mode,release
timeout,45
label,"Example, baseline"
new_setting,on

The comparison marks mode and timeout as different, label as matching, and enabled / new_setting as missing from one file. Input row order does not affect alignment.

Reading the comparison

  • Matching rows use a muted green fill.
  • Within a differing row, equal values share a color and an A–F group letter.
  • Stripes indicate a key missing from a loaded file.
  • A gold underline marks an edited value. An asterisk on Save file marks changes since the last download.
  • Hover a value for its original text, filename, source line, and optional component/type metadata.

Numeric equality affects comparison only; it never reformats saved values. Compare types includes optional PX4 type IDs. Keys and nonnumeric values are case-sensitive; search is case-insensitive.

Six-file comparison

Saving and exporting

Save file downloads an edited- copy of that file, including edits hidden by a filter. Before downloading, the app reparses the result and verifies every key, value, and metadata field. CSV/TSV quotes are escaped automatically.

Export CSV downloads a comparison report for the currently visible rows. It contains loaded filenames, keys, values, and optional types. Use Save file when you want an edited configuration rather than a report.

Limits and parsing details

  • Maximum six files, 20 MB per file.
  • Supports UTF-8 and BOM-marked UTF-16 LE/BE. Invalid encodings are rejected.
  • CSV/TSV must have exactly two columns. Headers are treated as data; omit them. Multiline fields are unsupported.
  • Duplicate keys within a section or malformed lines reject the whole file.
  • Blank lines and full-line #, ;, and // comments are skipped. Inline comments remain part of the value.
  • In generic key/value files, quotes are literal text and leading/trailing value whitespace is formatting. Use = or : for empty values.
  • Auto detection uses the first non-comment data line. Choose the format explicitly for ambiguous files, such as whitespace data containing tabs or commas.
  • INI sections use separate namespaces. Unsectioned keys use component 1, allowing comparison with corresponding PX4 entries. Vehicle IDs do not affect alignment.
  • This is a flat key/value comparer. Arbitrary multi-column CSV, JSON, XML, nested YAML, binary files, and multiline values are unsupported.

Privacy

The application is a single HTML file with inline CSS and JavaScript. It has no external libraries, remote fonts, tracking, accounts, network calls, or persistent storage. Files and edits are cleared when the page closes or refreshes.

Downloaded files and reports retain the data and filenames you loaded: the tool does not redact your input. Review those outputs before sharing. All bundled examples and screenshots use fictional data and example.com.

Development and tests

No dependency installation is needed. To run the checks, use a current Node.js release:

node tests.cjs

Checks cover parsing, exact numeric equality, encoding handling, byte preservation, edit/save validation, malformed inputs, CSV export safety, and the dynamic zero-to-six-file workflow. The browser app itself does not need Node.js.

The repository can also be hosted by any static web server, including GitHub Pages; index.html is the entry point.

Contributing

Bug reports and improvements are welcome. Include the browser, input format, expected result, and a minimal fictional example. Please remove secrets and personal data from sample files before sharing them.

License

No license has been selected yet. Public availability does not itself grant a reuse license.

About

Offline CSV file comparer and configuration diff editor. Compare up to 6 two-column CSV, TSV, INI and key/value files side by side in your browser.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages