How to check CSV column rules in Obsidian

Check parsed CSV fields against rules you choose, then record errors by row and column. As of October 2026, Obsidian can hold Markdown findings; CSV Rule Check runs explicit checks inside your vault.

Background

Decide which columns need values, permitted text or unique identifiers before checking your export. CSV Rule Check uses your rules rather than inferring a schema.

2 ways to do it

  1. Write checks with Python

    Python’s csv module reads records, including quoted fields. Use csv.DictReader to access fields by header name, opening the file with newline="".

    For a required name, flag records whose name field is empty. Keep a set of identifiers to detect repeats, then record findings in Markdown.

    limits
    You write the rule checks yourself. Physical line numbers can differ from record numbers when quoted fields contain line breaks.
  2. CSV Rule Check from this site

    Put a JSON rule file beside your CSV, then run the chooser and inspect logical rows. For example, put {"columns":{"name":{"required":true}}} in people.csv.schema.json to require a name.

    Use Write report to keep a Markdown snapshot without changing the source. Pro adds trim and default previews plus checks of chosen files with saved rules.

    limits
    The checker uses commas, reads complete files and limits each input to 5 MiB. It shows and reports up to 500 stored errors.
    A Markdown report lists the source CSV and six errors with logical rows, columns and failed rules.
    Open larger

    MIT · no telemetry · core features free

    All features of CSV Rule Check

Review the result with CSV Rule Check

  1. Put the CSV and its adjacent JSON rule file in your vault.

  2. Run Choose CSV and check adjacent rules from the command palette.

  3. Select the CSV and inspect the results table.

  4. Correct the source in your CSV editor, then check again.

  5. Select Write report to save the last successful check.

Common questions

Where should I put a schema for people.csv?

Use people.csv.schema.json in the same folder. The chooser reads that rule file before parsing the CSV.

Why is a reported row different from my editor line?

Quoted fields can contain line breaks without starting a new record. The checker counts logical records, with the header as row 1.

Photo of Michael LipYou can now check CSV column rules.

Obsidian rewards people who share. NoteMods is just me and a lot of coffee. If this guide saved you a fight with the syntax, buy me a cup.