Screenshots and PDFs that know where they belong.
The diagram, the mockup, the signed-off PDF: kept in an assets/ folder and linked to the blueprints and tasks they serve. Last month’s screenshot is one click from the spec it explains.
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. Pick Image or File from the block menu to embed one you already have. It’s plain markdown, , so it reads the same on GitHub.
- Pasted images scaled to 2000 pixels 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, size, and an open button. You link it to blueprints, tasks, or a URL. Eidos finds every blueprint and task whose text refers to it, so you know what you’d 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 updated. 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, filters by type, and shows files with no link yet.
Images nobody uses, cleaned up
Delete the last blueprint that showed an image, and a few minutes later the image is removed, with a notice naming it. Until then the Assets page offers Delete now and Keep. With Git on, it can be restored from history. One setting turns this 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 its task, and it shows in the task and on the file’s page.
- AI Agent
Type
@in the chat to hand the agent the exact file you mean. - Git
Renames and removals go through git, so history survives and a removed file 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. You can reshape it all later.
Free for macOS, Windows, and Linux. Your files stay plain text in a folder you own.