Use case · Background & scheduled agents

Agents that run unattended, and leave something behind.

A run at 3am has nowhere durable to put what it found. Give it a folder in the workspace and the report is waiting in the morning — for you, for the next agent, and for tomorrow's run comparing itself against it.

Unattended agents produce output nobody receives.

Scheduled agents are the easiest win in the whole category. A nightly dependency review, a weekly digest of what shipped, a run that watches an error feed and writes up anything unusual — none of that needs you awake, and all of it is work you'd otherwise never get to.

The awkward part is the output. It goes to a log file in a container that gets recycled, or an email that arrives at 3:04am and is read at 9:30 along with forty others, or standard output that scrolls past in a CI job nobody opens unless it's red. The agent did the work. The finding just never reached anyone.

And there's a second failure, quieter and more annoying: every run starts from nothing. Last night's agent found the same three deprecations tonight's agent will find, because tonight's agent has no idea last night happened. So the report is identical every day, which is the fastest way to teach a person to stop reading it.

Write to a folder, not a log

Point the run at a collection in your workspace — Reports/, say — with a _schema.md fixing what a report looks like: the date, what it covers, a severity, a status, a one-line summary. Each run appends a record; the body holds the detail.

That single change fixes the receiving problem. The output is somewhere permanent, at a stable path, in a format you and your agents can both read. Nothing is racing, either — each run writes its own record, so a weekly job and a nightly job that overlap simply don't interact.

The next run reads the last one

The better payoff is continuity. Because the reports are typed, tonight's run can start by asking what the last one said — the most recent record, or every open finding — and then report the difference: what's new, what's resolved, what's been sitting open for eleven days.

That's the line between a cron job and something that behaves like a colleague. One tells you the same thing every morning. The other tells you what changed, and stops mentioning the thing you already acknowledged.

Then you read it by asking

Once the reports are records rather than prose dumps, catching up stops being a scroll. Ask for everything above medium severity still open, newest first, and you get four records instead of a fortnight of logs. Ask your morning agent to summarize the week and it queries the same collection you would.

The reports also become context for regular work. An agent about to change the queue consumer can check whether the nightly run has been flagging something there for a week. That's a connection nobody makes when the reports live in an inbox.

Markbase isn't the scheduler

Worth being plain about: Markbase doesn't run your agents, trigger them, retry them, or notify you when one fails. There's no cron in it. The scheduling belongs to whatever you already use — a CI schedule, a timer, your harness's own runner.

What Markbase is, is the destination those runs can rely on: always there, reachable from wherever the job executes, versioned, and readable by every other agent you run. The unglamorous half, which happens to be the half that's genuinely hard to keep alive yourself.

In practice

A nightly run that remembers last night.

The scheduled job opens by reading what the previous run reported, so what lands in the morning is the delta — not the same list of findings for the ninth day running.

dependency-watch — scheduled · 03:00 UTC

What makes it work

Three primitives, doing the work.

Reachable from anywhere it runs

A hosted endpoint over HTTPS. A run in a container that gets recycled, a CI job, a box you'll never log into — all write to the same place with a client and a sign-in.

Typed, so runs compare

Records that share a shape can be compared. "What did last night's run say, and what's new since?" is a query, which is what turns a stream of reports into a trend.

The artifact comes too

The CSV extract or the rendered chart is stored beside the write-up that cites it, so the numbers behind a summary are still there in three weeks.

Free plan, no card

If your nightly agent reports into the void.

If you've got agents running on a timer and no good answer to "where does the output go", that's the gap this fills. Give tonight's run a folder to write into — the free plan is enough to start.