Skip to content

Automations

The Automations plugin runs the workflows you build for your own project. An automation is a trigger, something that happened (a spec added, a task moved to Done, a commit), then steps in order: steps that do something, steps that stop and ask you, and steps that check the result before going on (Continue if). Each step is handed the result of the one before. On by default; an automation does nothing until you turn it on.

An Automations activity in the Activity Bar. Its sidebar lists what is Waiting on you first, then your Local automations and the Shared ones. Its page lists every automation with when it starts, where it runs, its last run, and a switch, and a Runs tab lists every run, newest first.

New automation opens the editor, which reads top to bottom:

  • When: the trigger, searched, with the conditions it takes (the collection a blueprint is added to, the status a task moves to).
  • Then: the steps. Add a step lists the actions each plugin offers, marked Anywhere or In the app, and Leaves this machine for one that sends something off it (a push). A Do step takes the step before’s result, what started the run, or the result of any earlier step you name.
  • Beside the steps: Ask before running (every time, the first time, or never), where it runs and why, and whether it is local or shared. Only a framework editor shares one, and a shared automation is off for each person until they turn it on.

Turn on reads the automation back in sentences, says where it runs, how often it uses the AI Agent, and whether anything leaves this machine, and offers Try once on a blueprint or task you already have.

A run that reaches an Ask me waits, listed under Waiting on you and named once in a card in the corner with its answers. It never goes on without an answer, and it survives the app closing. A run’s page shows each step’s result, what it changed, what left this machine, and its AI Agent use. A run that fails says so in red.

Ideas for this project asks the AI Agent for automations that fit what the project holds. Each says why it fits and opens as a draft to edit; nothing is turned on by being suggested.

Trigger Starts when Runs
A blueprint is added, or saved A blueprint is written into a collection anywhere
A task is added; a task’s status changes Backlog, on the board or anywhere else anywhere
A record is added Records, a file-based record anywhere
A commit is made From Source control, a command, or a step anywhere
Run by name eidos automations run <name>, a script, a git hook anywhere
The app pushes; a pull brings commits in Publish, an auto save that publishes, a pull in the app
A view opens; a command runs; the app opens the project The page in the app

Anywhere triggers fire however the change was made: in the app, with eidos in a terminal, or by an agent.

  • Do runs an action: Git’s Commit, Fetch, Pull, and Push, Backlog’s Add a task and Set the task status, Comments’ Comment, and each of your AI Agent custom slash commands, run in the app with the step’s input, its answer a comment on the blueprint or task by default.
  • Ask me stops the run with its question and two answers you word yourself (Run and Skip, Make the changes and Stop here).
  • Continue if goes on when the step before gave anything, or when the AI Agent answers yes to a question about it, and otherwise ends the run as done.

Whatever Ask before running says, the first run that reaches a step that leaves this machine asks before it. What a run’s own steps do never starts another automation.

An automation runs anywhere when its trigger and every step can, and in the app when one of them needs it (an AI Agent step, a view opening). While the app has the project open, a command hands it every trigger, so a workflow runs once. With the app closed, a command runs what runs anywhere itself and keeps the rest until the app opens.

A command that starts a run says so on stderr, automations: Review new specs (run 4) done, and its own output is unchanged. One it hands to the app says that instead, automations: Review new specs waits for the app to open. With nobody at the terminal (an agent, a script), a run that would ask waits for you under Waiting on you.

Command Does
eidos automations [--json] Every automation: on or off for you, where it runs, its last run, and what stops it running
eidos automations catalog [--json] The triggers and actions the plugins that are on offer
eidos automations save --file <yaml> [--shared] Adds or replaces one, saved off
eidos automations on|off <name>, remove <name> Turns one on or off for you, or takes it out
eidos automations run <name> [--on <blueprint or task>] Runs one now, by name
eidos automations runs [<n>] [--json] The runs, or one step by step
eidos automations answer <run> continue|stop Answers the Ask me a run waits at

--no-automations, anywhere on a command’s line, starts none for that command. eidos instructions automations shows an automation’s file.

  • .eidos/plugins/automations/automations.yaml: the shared automations, committed.
  • .eidos/plugins/automations/local/: yours, never committed: your own automations, which ones are on, what you agreed to, the last 200 runs, and the queue a command hands the app.