Eidos

One markdown style for everyone, people and agents.

House rules for headings, lists, emphasis, and spacing, applied every time a file is saved. Whether you, a teammate, or an agent wrote it, the file comes out in one shape. A diff shows only what changed in meaning.

Free for macOS, Windows, and Linux. No account, no subscription.

The Linter settings page: an on-save rule that sets Date Modified to today, one file listed under Drift with the rules it breaks and a Lint every file button, and the rules below, each with a switch.
The rules belong to the project, so every machine and agent applies the same ones.

The rules

Form, never meaning

Fourteen rules cover what markdown lets people disagree about: list markers, _emphasis_ or *emphasis*, one top heading with no skipped levels, blank lines around headings and code, trailing spaces, and bare links. Each is a switch or a choice on the plugin’s page.

  • Frontmatter, code blocks, and plugin regions left untouched
  • On in every new project, with defaults that match the starter frameworks
  • Shared by the project, so nobody lints to their own taste

On save

Dates that keep themselves

An on-save rule sets a date property to today, or to the current time, whenever a blueprint is saved: from the page, from eidos property set, or by a plugin. Nobody forgets date_modified again.

Drift

Caught when it comes from outside

A file written in another editor, by git, or by an agent that skipped the CLI isn’t linted as it’s written. The health check catches it instead. Each broken rule is a warning with a Lint button to fix it, and Lint every file fixes the whole project at once.

The Health Check with a spec that drifted: trailing whitespace, a skipped heading level, a heading ending in a colon, the wrong list marker, a bare URL, and doubled blank lines, each with a Lint button beside it.
A spec edited outside the app, flagged rule by rule.

How it connects

The quiet part of keeping files trustworthy.

  • Blueprints

    Drift shows up in the health check as linter/<rule> warnings, beside the framework’s own findings.

  • AI Agent

    An agent that writes through eidos gets the house style for free. One that writes the file directly is caught by the check.

  • Git

    One form for every file keeps diffs to real changes, not how someone’s editor spaces a list.

  • Comments

    The threads Comments writes into a blueprint pass through the same rules.

From the shell

The same rules, from a terminal

eidos linter lists what the rules would change, and --fix writes only that. On-save rules don’t run, so a whitespace fix never bumps a date.

$ eidos linter configure:on-save set date_modified today
✓ date_modified set to today on save (.eidos/plugins/linter/settings.yaml)
$ eidos linter
✗ specs/discovery/watchlist.md  trailing-whitespace, heading-levels, heading-punctuation, list-marker, bare-urls, blank-lines, heading-blank-lines

1 file drifted; eidos linter --fix settles them
$ eidos linter --fix
✓ specs/discovery/watchlist.md  trailing-whitespace, heading-levels, heading-punctuation, list-marker, bare-urls, blank-lines, heading-blank-lines
$ eidos linter
clean: 14 files as the rules would write them
Read the Linter docs

Write down what you’re making.

Download Eidos MD, open a folder, and start from the framework closest to your work. You can reshape it all later.

Free for macOS, Windows, and Linux. Your files stay plain text in a folder you own.