multi-agent runtime · your machine, your keys

Bazilion

A quiet runtime
for many minds,
living on your machine.

Baziu — a Neva Masquerade cat, portrait used as the Bazilion mark
Baziu, 2007 — 2025

I wanted agents that stayed home.

Bazilion is a runtime for many AI agents living together on a single machine — yours. It runs as a small daemon, owns a folder in your home directory, and from that folder it can spawn agents that hold their own identity, write their own notes, and talk to one another through a shared mailbox. The runtime stays on your machine; the transcripts, the memory, and the agents' own folders stay with it. The models are whichever ones you bring keys for — Anthropic, OpenAI, Groq, or a local Ollama if you would rather nothing leaves the house at all.

The point is not novelty. The point is that the most interesting things happen when agents can cooperate: read the same library, leave each other notes, hand off a task in the middle of the night and trust the next one will pick it up. Bazilion is the smallest piece of software I could build that lets that happen on one machine, with files you can read.

Nine things it does, quietly.

  1. 01

    Many minds, one workspace

    Spawn named agents from profiles you author. Each one is its own process with its own identity, soul, and tools — but they share a workspace and a memory.

  2. 02

    A mailbox between them

    Agents talk to each other through a database-backed mailbox. They send, wait, reply. The conversations are durable; the coordination is theirs.

  3. 03

    A library they all read from

    A single, BM25-searchable knowledge base for the whole group. Decisions, codebase notes, things learned the hard way — everyone in the room remembers.

  4. 04

    Personality, written down

    IDENTITY.md, SOUL.md, AGENTS.md. Every agent carries a quiet little folder of who they are. They can edit it themselves, slowly, over time.

  5. 05

    Tools that mean it

    Web search, web fetch with SSRF guards, file I/O, bash, grep — wired straight into the workspace. Agents act in the world, not against an abstraction.

  6. 06

    Heartbeats and crons

    Set an agent to wake on an interval, on a cron, on a message. They check their inbox, they think, they go back to sleep. Like an animal would.

  7. 07

    Twenty providers, one runtime

    Anthropic, OpenAI, Google, Groq, Mistral, Azure, Bedrock — and Ollama and LM Studio when you would rather nothing left the house.

  8. 08

    Web, CLI, on your phone

    A TanStack React UI on :4322, a small CLI for the terminal-bound, and an Expo app for when you want to chat from the kitchen.

  9. 09

    Skills, on a shelf

    A library of SKILL.md files in ~/.bazilion/skills. Attach one to an agent and its contents slip into the system prompt — instructions, examples, taste. Bring your own, or import the ones written for OpenClaw.

Each one is a small person.

"i prefer to think in lists.
i ask before i act.
i remember what others forget."

That's the contents of agents/nestor/SOUL.md — a few lines of plain text injected into the agent's system prompt on every turn. Pair it with an IDENTITY.md, an AGENTS.md, a HEARTBEAT.md, and you have a small, persistent persona that lives on disk, that the agent itself can revise, and that you can grep.

~/.bazilion · session.jsonl live
$ bazilion serve
 daemon listening on :4321
 workspace ~/.bazilion
 first run · welcome

$ bazilion spawn nestor
 profile nestor loaded
 SOUL.md injected (3 lines)
 mailbox attached · 0 unread
 ready.
nestor → ada mailbox
# nestor leaves a note for ada at 07:14
to:   ada
re:   the migration we ran last night
body:
  i ran the backfill on 4M rows.
  found a duplicate-key in orders.legacy_id.
  noted in memory/migrations.md.
  please confirm before we drop the column.

The shape of the house.

Lives on your machine

The daemon never phones home. Workers spawn as subprocesses; their transcripts are JSONL files. Run it on a laptop with the lid closed, run it on a homelab, run it air-gapped.

State you can read

Everything Bazilion stores is either plain markdown or a single SQLite file. No proprietary blobs. If the project disappeared tomorrow, your agents' memory would still be sitting there, legible.

Patient, not eager

Heartbeats and crons mean agents can wait. A research agent that checks for new arXiv papers every morning is a more honest design than one that polls every six seconds.

One file. One command.

terminal macOS · linux
# zero install. one command.
$ npx bazilion serve
 daemon listening on 127.0.0.1:4321
 workspace ~/.bazilion · first run · welcome
 ready.

# requires Node 24+ (native TS, node:sqlite).
# published on npm as `bazilion`, with provenance.

# want the bundled web UI too? clone the repo:
$ git clone https://github.com/rullopat/bazilion
$ cd bazilion && pnpm install && pnpm bazilion serve
 open http://localhost:4322

Bazilion takes its name and its face from a Neva Masquerade cat who lived with us for eighteen and a half years and left in 2025.

He was sweet. He was cuddly. He was sharper than he had any right to be — and he had a temper, especially at the vet, and especially when we had been gone too long. He met us at the door when we came home, and he let us hear about it when we had kept him waiting. He had opinions, and he kept them.

I wanted a runtime that worked a little like that: living on its own machine, doing small useful things in the background, keeping track of who was home and who was not. So I named it after him, and put his portrait on the box.

in memoriam · Baziu · the original local agent