Eidos

Every call written down, and confirmed by a person.

A decision log beside your blueprints: one markdown file per decision, typed, linked to the work it was made for, and waiting in an inbox until a named person confirms it. When your agent decides something on its own, it logs the call as itself, and the call stays unconfirmed until someone stands behind it.

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

The Unconfirmed decisions inbox with three decisions waiting, each with its type icon, its id, a Proposed status, Maya Okafor as the person it waits on, the blueprint it was made for, and who logged it: two by Claude, one by Maya Okafor. The sidebar counts Unconfirmed and Assigned to me, by status and by type.
The inbox: what was decided, who logged it, and who it waits on.

Agents log, people confirm

Your agent writes down what it decided

An agent that makes a call while it works logs it on the spot, signed as itself, linked to the blueprint and the task, with why in the notes. It is told never to confirm its own: the decision waits, assigned to whoever decides, with a thread open for questions. Confirm stamps the day and the name of the person who did.

  • /decide logs one from the chat
  • Confirmed by whom, and on which day, kept in the file
  • A thread on every decision, with @mentions
A decision open over the table: Keep the last position on the TV while it is offline, and send it on reconnect. It is a Development decision, Proposed, assigned to Maya Okafor, made for the Resume Playback blueprint and task T-K48.2, and logged by Claude, with Confirm at the top. The notes say why, and in the thread below Maya asks a question and Claude answers.

In the blueprint

Listed where the decision matters

Give a template section the type Decisions, and every blueprint made from it carries a log the plugin writes: each decision made for it, linked, with its status and author, ticked once confirmed. Confirm and Log a decision sit right there, and the Decisions view beside any blueprint lists its own.

  • A section can collect some types and leave others
  • Written into the markdown, so an agent that reads the blueprint reads its decisions
  • Kept current by the plugin, never typed by hand
The Constraints & Decisions section of the Resume Playback blueprint: one constraint, then four decisions made for it, two Confirmed and two Proposed with a Confirm button each, and Log a decision below. The comment threads start underneath.

Types

Types that keep calls apart

A root starts with three: Development (how it is built, the kind an agent logs), Scope (what is in and what is out), and Meeting (what a meeting settled). Add your own with an icon, a colour, a meaning, and an id prefix, so a scope call reads D-SF36 at a glance.

The Decision types settings: Development with a lightning icon in blue and Scope with a flag in purple, each with its colour, an optional ID prefix showing the id a new decision of the type gets, and what the type is for.

Statuses that say who it waits on

Every status falls into one of three categories: unconfirmed (the inbox), confirmed, or closed. A root starts with Proposed, Confirmed, Rejected, and Superseded; rename them, add your own, and colour them. Assigned to me and a card on the Home list what waits on you.

A short file per decision

Each decision is a markdown file in decisions/: a title that says what was decided, a type, a status, who logged it, who it waits on, the blueprints and tasks it was made for, and notes on why. Its table filters, searches, and saves views like every other, and the file is committed with the work it explains.

How it connects

The why sits beside the work.

A decision points at what it was made for by permanent id, so it is found from the blueprint, the task, and the chat alike.

  • Blueprints

    A decision names the blueprints it was made for and is written into each one’s Decisions section.

  • Backlog

    A decision can name the tasks it was made for, so the reason travels with the work.

  • AI Agent

    /decide logs a call from the chat, and what the agent decides on its own it logs as itself, unconfirmed.

  • Comments

    Every decision takes threads; @mention someone to ask them about it.

  • Git

    Decisions are files, committed and reviewed with everything else.

From the shell

The inbox, from a terminal

How an agent logs what it decided, and how the person it works for clears the inbox. Every command takes --json.

$ eidos decisions add "Keep the last position on the TV while it is offline, and send it on reconnect" --type development --for @B-V63 --task T-K48.2 --notes "Why, and what else was weighed" --as claude
✓ D-X37  decisions/d-x37-keep-the-last-position-on-the-tv-while.md  Keep the last position on the TV while it is offline, and send it on reconnect  ·  Proposed  development
$ eidos decisions --unconfirmed
unconfirmed (3)
  D-A33  Trailers and extras do not resume  ·  Proposed  scope  @claude  assigned @maya  →  B-V63
  D-X28  Downloads expire with the distributor's window, not a fixed thirty days  ·  Proposed  scope  @maya  assigned @maya  →  B-B31
  D-X37  Keep the last position on the TV while it is offline, and send it on reconnect  ·  Proposed  development  @claude  assigned @maya  →  B-V63, T-K48.2
$ eidos decisions confirm D-X37 --as maya
✓ D-X37  Keep the last position on the TV while it is offline, and send it on reconnect  ·  Confirmed  development  @claude  assigned @maya  confirmed 2026-10-07 by @maya  →  B-V63, T-K48.2
Read the Decisions docs

Write 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.