Automations

A message, kept
with a time to send it.

An automation is the message you would have typed, to the agent you chose, on a schedule said in words. It runs while VectorBrain sits in the tray. Nothing fires while the machine is off.

Six automations as cards on VectorBrain’s Agents workbench: Morning brief, weekdays at 07:30; Monday competitor check; a reminder to send the proofs; Nightly link check, paused after three failures; New PDFs in the inbox; Urgent tracker issues. On the right, the Monday competitor check open: who runs it, its pinned model, the cost line, what to do if the app was off, a $5 cap, and the one run it has done.

VectorBrain’s real interface, running on example data.

01

Schedules said in words, never in cron.

Pick a shape and fill its blanks: once, every so often, daily, weekdays, weekly, at start, when a file changes, or when something arrives on a connected server.

The app reads the stored schedule back in words, “weekly on monday at 08:00”, on the form and on the card, so what it says and what fires cannot disagree.

Automations on Today and the Calendar
The top of an automation’s form. What it does: Remind me or Run a job, with Run a job picked. When: Once, Every, Daily, Weekdays, Weekly, At start, When a file changes, When something arrives, with Weekly picked, Monday at 08:00, read back as “weekly on monday at 08:00 · next Mon 08:00 AM”. Under it, the message it will send, 146 of 3,000 characters.
02

Signed with its worst case on the card.

The model is pinned on the row, so an unattended job runs on the one you signed for, not on whatever the composer was last set to.

The cost line is the most one firing can spend, times the schedule. It is a ceiling, not a forecast: in this example the last run spent $0.37. A cap in dollars stops the row when it is reached.

Where the ceiling comes from
The Monday competitor check open for editing: the Harbor launch project, Ilse Moreau runs it, the model pinned to Claude Sonnet 4.5 with the line that it runs on the model you signed for, and the cost line, at most $64.27 a firing on this model, about $279.47 a month at this schedule. Under it: if the app was off, skip it and wait for the next one; stop after spending $5, and a box, off, that would let the librarian read the conversations it starts.
03

Three failures, and it stops itself.

Nothing retries by itself. Three failures in a row pause the row with the last reason, so it waits for you instead of failing every night for a month.

A night the app was off is written down as skipped, with that reason. Steps, cost and the files each run wrote come from the journal, not from the run’s own account.

Why history comes off the journal
What the Nightly link check has done, newest first: three failed nights, each saying the dev server did not start because port 5173 is in use, with steps and cost; a night skipped because the app was not running; and two nights that ran, each writing reports/links.md.
04

When a stranger’s message wakes it, it can only propose.

A connection trigger checks a read-only tool, at most every 5 minutes, and fires once per new item that matches a rule of at least three words. “Every new message” is refused.

The run it starts may read and draft. Every file change it proposes waits for you, at every trust level, and it cannot delete a file or run a program. A spending cap and a daily limit are required.

The taint rule
A When something arrives trigger: the tracker server’s read-only list_issues tool for issues assigned to me, the rule “an issue assigned to me marked urgent”, must contain “urgent”, checked every 15 minutes. The schedule read back in words, then the note that what fires this was written by whoever sent it, so the run can read and draft and every file change waits for you on a card.
05

A reminder costs nothing.

A reminder is the same row with a sentence instead of a message. It shows a notification at its time: no model, no conversation, no key.

A deadline can set its own: two days before, the day before, or the morning it is due, at nine.

Deadlines and their reminders
A reminder being written: What it does set to Remind me, “A sentence at a time. No model, no conversation, no cost.”, Once, on 1 October at 09:00, the sentence to show, “Send the Field notes issue 12 proofs to the printer before noon”, and what to do if the app was off.
The honest gap

VectorBrain is a desktop app with no server. Closing the window hides it to the tray and the clock keeps going. Power it off, or shut the computer down, and nothing fires until it is running again. If a job must run at 3 a.m. whether or not your computer is on, this is the wrong tool for it.

At a glance

Automations in numbers.

Schedule shapes
8: six clocks (once, every, daily, weekdays, weekly, at start) and two eventsvb-cmd-automation/src/schedule.rs
How often it looks
Every 30 seconds, firing at most 3 due rows a passvb-agent/src/automation.rs
Failures before it pauses
3 in a row; one success resets the countvb-agent/src/automation.rs
Connection checks
No more often than every 5 minutesvb-cmd-automation/src/schedule.rs
Trigger rule
At least 3 words; rules meaning “everything” are refusedvb-cmd-automation/src/schedule.rs
Firings a day, for a trigger
10 by default, 200 at mostvb-cmd-automation/src/commands.rs
Message, title, reminder
3,000, 120 and 500 charactersvb-cmd-automation/src/commands.rs
Files per file-change firing
Up to 20, attachedvb-agent/src/trigger.rs
Notifications
At most 6 a minutevb-cmd-automation/src/notifier.rs
Missed while off
Skip it, or run it once when the app comes up; set per rowvb-agent/src/automation.rs

The details,
for the careful.

What is an automation in VectorBrain?

An automation is a message you would have typed, kept with a time to send it: the prompt, the agent or crew, the project and the model, exactly what a conversation takes, minus the moment. When it fires, it starts an ordinary conversation you can open and carry on. A reminder is the same row with a sentence instead, and calls no model.

Does it run when the window is closed?

Yes. Closing the window hides VectorBrain to the system tray, and the schedule keeps running there; the first time you close it, the app says so. It does not run while the app is powered off or the computer is shut down. There is no server anywhere that runs it for you.

What happens if the computer was off when a job was due?

Each row decides. “Skip it and wait for the next one” records the missed moment as skipped, with the reason. “Run it once when the app comes up” fires it once when VectorBrain starts again, recorded as caught up.

What can an automation do while I am away?

A clock-fired run has the same permission checks as a conversation you started, at the trust level of its project. A run started by something arriving over a connected server is tainted from its first step: it may read and draft, every file write waits for your approval whatever the trust level, and deleting files or running programs is refused. When a run stops to ask, you get one notification and the tray shows what is waiting on you. How approvals work

Can an agent set up an automation for me?

Yes. Ask for a reminder or a nightly job and the agent proposes one, but creating, changing or running an automation from an agent always stops on a card first. The card is the same form you would fill in yourself, and what you sign is what runs.

How much can an automation cost?

The form shows the worst case before you save: the most one firing can spend on the pinned model, times the firings a month at that schedule. A trigger has no month, so it shows the most a day at its daily limit. Triggers require a spending cap, and any row stops when its cap is reached. What models cost

Can an automation start a crew?

Yes, with a crew you signed or a lead with open staffing. It cannot start with a crew still to be approved, because a lead that fired at 3 a.m. with a draft would sit waiting for a signature nobody is awake to give. How crews are signed

What if an automation keeps failing?

Nothing is retried automatically. After three failures in a row the row pauses and carries the last reason in words. Press play when you have fixed it; one successful run resets the count.

Set it once.
Read what it did in the morning.

Every firing is a row in its history, and every run is a conversation you can open and carry on.