Screenshots and PDFs that know where they belong.
The diagram, the mockup, the signed-off PDF: kept in an assets/ folder in your root and linked to the blueprints and tasks they serve, so the screenshot from last month is one click from the spec it explains, not lost in a downloads folder.
Free for macOS, Windows, and Linux. No account, no subscription.

In the editor
Paste it where it belongs
Paste a screenshot into a blueprint and it lands in the asset folder and in the text, scaled down on the way in. Pick Image or File from the block menu to embed one you already have. It is plain markdown underneath, , so it reads the same on GitHub.
- Pasted images scaled to 2000 pixels on the longest side, by default
- Attached assets beside every blueprint, with a count
- Quick Open finds a file by its name

A page per file
Links you set, references it finds
Every file has a page: an image shown, a PDF read in place, anything else with its type and size and a button to open it. You link it to blueprints, tasks, or a URL, and Eidos finds every blueprint and task whose text refers to it, so you know what you would break before you touch it.

Rename
Rename a file, keep every link
Rename a file on its page or with eidos assets set --name, and every blueprint and task that named the old path is rewritten. With Git on, the move is a git mv, so the history comes with it.
$ eidos assets show assets/resume-flow.png
assets/resume-flow.png image/png 42.7 KB modified 2026-10-07
title: How a position travels
links:
blueprint B-V63 Resume Playback
referenced by:
blueprint B-V63 specs/playback/resume-playback.md
$ eidos assets set assets/resume-flow.png --name resume-position-flow.png
✓ assets/resume-position-flow.png 42.7 KB "How a position travels" → @B-V63 · 1 reference
$ git status --short
R assets/resume-flow.png -> assets/resume-position-flow.png
M specs/playback/resume-playback.mdFolders the way you file things
Screens in one folder, contracts in another: any folder your framework gives the plugin is an asset folder, nested as deep as you like. The Assets view lists each folder with its own upload and filters by type, and a file with no link yet is still listed.
Images nobody uses, cleaned up
Delete the last blueprint that showed an image and the image is flagged, then removed a few minutes later, with a notice naming it. The Assets page lists what is waiting, with Delete now and Keep, and with Git on it can be brought back from history. One setting turns the sweep off.
How it connects
Files that point at the work, and back.
- Blueprints
A link names a blueprint by its permanent id, so renaming the blueprint never strands its files.
- Backlog
Link a design or a bug’s screenshot to the task it belongs to, and it shows in the task’s text and on the file’s page.
- AI Agent
Type
@in the chat and your assets are offered beside blueprints and tasks, so the agent reads the file you mean. - Git
Renames and removals go through git, so a file’s history survives and a removed one can be restored.
From the shell
Your files, from a terminal
Add, link, list, rename, and remove from the shell, with --json for scripts and agents.
$ eidos assets add ~/Desktop/plans-2027.pdf --to @B-H51
✓ assets/plans-2027.pdf 31.9 KB → @B-H51
$ eidos assets link assets/tv-resume-prompt.png --to task:t-d71-resume-prompt-on-the-tv-player
✓ assets/tv-resume-prompt.png 147.8 KB → @B-V63, task:t-d71-resume-prompt-on-the-tv-player
$ eidos assets --for B-V63
assets/ (3)
assets/resume-position-flow.png 42.7 KB "How a position travels" → @B-V63 · 1 reference
assets/tv-resume-prompt.png 147.8 KB "TV resume prompt" → @B-V63, task:t-d71-resume-prompt-on-the-tv-player · 2 references
assets/watch-sessions.csv 196 B → @B-V63Write down what you’re making.
Download Eidos MD, open a folder, and start from the framework closest to your work. Everything it gives you can be reshaped later.
Free for macOS, Windows, and Linux. Your files stay plain text in a folder you own.