Every part of your product, one file you can check.
A blueprint is a plain markdown file: typed properties on top, a body shaped by a template, and a permanent id that tasks and canvas nodes point at. You declare the framework it follows, and eidos check shows where a file has drifted.
Free for macOS, Windows, and Linux. No account, no subscription.

Your framework
A structure you declare yourself
The framework lives in your project. It names the collections you keep (specs, chapters, characters, whatever your work is made of), a template for each variant with its required sections, and a Properties table with types and options. Edit it as forms under Framework settings, or with eidos configure.
- Collections and variants, named in your words
- Required sections and typed properties with options
- Vocabulary and roles, so people and agents use the same words

The health check
A health check you can act on
eidos check reads every blueprint against your framework. It finds a value outside a property’s options, an empty required property, a work-tracking field, a stale index, or a broken link. The Health Check lists each finding under its file. Fix all supported issues runs every fix the app knows, and asks before renaming a file or changing an id.
- Errors for what’s wrong, warnings for gaps
- Whether warnings fail is a project setting, kept in git
- The same findings in the app, a terminal, and CI

The Registry
Start from someone else’s framework
The Registry holds frameworks people have published: software, a book, research, a fictional world, a channel, a wedding, and more. Open one in the app to see each piece marked as missing, the same, or different. Include in this project brings in all of it or one collection, and asks before replacing anything that differs.
- In the app, or
eidos install @owner/name - Keep current or Accept incoming, conflict by conflict
- Publish your own with a pull request

Collections
Every collection is a table
Each collection opens as a table you can sort, filter, and search by any property. Filters live in the address, so a link opens the same view. Save as view keeps one for you or shares it with the project.

Flagged, never refused
Properties are the agreement and sections are guidance. A missing property is flagged and a missing section is offered, but a file is never refused: a check that refuses files gets worked around. A missing section shows greyed where it belongs, with a + to add it.
A permanent id, wherever the file goes
Each blueprint keeps an id such as B-V63. Move it or give it a new id, and every task, comment, canvas node, and link follows. Find anything by id or title from Quick Open.
Set up with your agent
When you make a new project in the desktop app, Set up with AI Agent can have your agent read the folder first, then recommend a framework from the Registry or propose its own. Nothing is written until you review it and press Create project.
How it connects
Everything else points at a blueprint.
No plugin copies what a blueprint says. Each refers to it by its permanent id, and most write what they know back into it.
- Backlog
A task serves blueprints by id, and each blueprint lists its tasks under Attached tasks and in a Tasks section.
- Canvas
A node is a blueprint drawn live from its file. A sketch becomes one through the same template.
- Comments
A thread anchors to a section or an acceptance criterion and is saved at the foot of the file.
- AI Agent
The open blueprint goes with each message, and
/checkruns the health check in the chat. - Linter
One markdown style on every save, with drift reported in the health check.
- Git
Every blueprint has its history and a diff, committed with the code it describes.
From the shell
The check, from a terminal
The same findings as the page, with an exit code for CI and --json for an agent. Set a property from the shell, and it’s converted to its declared type and checked as it’s written.
$ eidos check specs/billing/gift-cards.md
Blueprints (Eidos 5.5.0 · kebab-case) 1 blueprint
specs/billing/gift-cards.md
⚠ summary-missing no `summary`; the collection index will flag it
⚠ work-tracking-field `estimate` is a work-tracking field; a blueprint captures state and intent, not work (link to a tracker instead)
⚠ property-option `status: WIP` is not one of its options (Draft, Intake, In Progress, Done, Archived, Deprecated)
⚠ linter/list-marker one marker for every unordered list; the file drifted (eidos linter --fix)
⚠ 0 errors, 4 warnings
$ eidos property set @B-G24 status Draft
✓ specs/billing/gift-cards.md status: Draft
⚠ summary-missing no `summary`; the collection index will flag it
⚠ work-tracking-field `estimate` is a work-tracking field; a blueprint captures state and intent, not work (link to a tracker instead)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.