Skip to Content
DocumentationOperateMemory & documents

Memory & documents

What your agents carry between sessions, and the work they do without you sitting there.

Memory

The memory extension gives agents durable, cross-session recall. Facts worth keeping get written to a local store and surfaced back in later sessions, so a crew accumulates context instead of starting cold every morning.

extensions: memory: provider: memory-agent # usually a small, cheap model

Memories are yours: plain local records you can read, edit, and delete, browsable in the web UI under /memories.

The document vault

The documents extension gives agents a markdown vault — by default ~/.botbandit/docs — that they can read and write like any other file tree. This is where plans, notes, and handoffs live.

extensions: documents: root: ~/.botbandit/docs

Documents are just markdown with frontmatter, so they stay useful outside Boba. A plan tracks its deliverables as work items in a work: block, which agents update as they go:

--- title: Ship the launch docs type: plan status: in_progress tags: [docs] work: schema: 1 items: - id: self-host-guide title: Draft the self-hosting guide status: in_progress - id: site-nav title: Wire it into the site nav status: todo dependsOn: [self-host-guide] --- The details of each step live in the body.

With the web UI self-hosted, the vault syncs to your Supabase project and these documents become a live work board, a notes app, and a backlink graph.

Scheduled work

Any document can also carry a scheduled: block, and the daemon’s scheduler will run it on a cron expression:

--- title: Morning triage scheduled: enabled: true schedule: "0 7 * * 1-5" timezone: Europe/Berlin profile: coder --- Review yesterday's failed CI runs and open an issue for anything that looks real.

The same document can be run once, by hand, with no scheduler involved:

boba run-task ./morning-triage.md

Unattended runs need an approval policy that terminates. There is nobody to answer ask-human at 07:00, so give scheduled profiles an explicit allow-list with default: deny, or ask-agent. A scheduled: block can also carry its own approval: override for that run only. See Approvals.

Scheduling hands an agent unattended privilege, so by default the daemon refuses to dispatch a job whose intent (schedule, profile, approval policy, working directory) is not signed by a hardware-held passkey — which an agent editing its own document cannot forge. Change the schedule and the signature is stripped, leaving the job disarmed until you re-approve it.

Account status

Long-running crews burn through subscription windows. The daemon tracks them:

boba subscriptions # windows, resets, freshness boba subscriptions --refresh # poll every collector first
Last updated on