v0.9.0 Teams are now canonical: one Team Template roster, one effective live policy, and no legacy Group or Harness surfaces.
built on Pi 0.80.6 · your machine, your keys

Bazilion

An MIT-licensed runtime
for agent teams,
living on your machine.

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

One-line install, npm, or source. The dashboard opens locally.

one-line installer
# Installs Node 24+ if needed, then bazilion.
$ curl -fsSL \
  https://bazilion.com/install.sh \
  | bash

# Then open the local web dashboard.
$ bazilion dashboard
powershell installer
# Native Windows install, no WSL required.
PS> irm `
  https://bazilion.com/install.ps1 `
  | iex

# Then open the local web dashboard.
PS> bazilion dashboard
daemon + web UI
# Requires Node 24+.
$ npm install -g bazilion
$ bazilion dashboard
* daemon 127.0.0.1:4321
* dashboard 127.0.0.1:4322
* workspace ~/.bazilion
source checkout
# For people who want to read and change the code.
$ git clone https://github.com/rullopat/bazilion
$ cd bazilion
$ npm install -g pnpm # if pnpm is missing
$ pnpm install

# Start the source daemon, then run the web UI in another terminal.
$ pnpm tsx apps/cli/src/index.ts serve
$ cd apps/web && pnpm dev

A runtime I built because I wanted agents that stayed home.

Bazilion is my personal open source attempt at a local-first multi-agent runtime. Its core engine is Pi's coding agent: Pi runs the per-turn loop, stores the JSONL transcript, handles replay and compaction, executes providers and tools, and supplies the coding tools. Bazilion adds the local daemon, CLI, bundled web UI, Agent templates, Team Templates, live Team Policy, approvals, shared memory, and mailbox around that engine.

Bazilion is especially about templates. A profile defines one kind of agent. A Team Template defines the only reusable Team roster: stable slots, profile-backed roles, optional overrides, and directed communication edges, saved as immutable revisions. Spawning a reviewed revision creates permanent Agents in one Team, with exactly one effective live policy, one USER.md, one qmd-indexed memory, and a durable mailbox.

The pieces that make agent collaboration concrete.

  1. 01

    Agent templates become agents

    A profile is an agent template: SOUL.md, IDENTITY.md, AGENTS.md, tools, skills mode, default model, and the notes that shape how that agent behaves when spawned.

  2. 02

    One canonical Team Template roster

    A Team Template owns a revisioned roster of stable slots. Each slot points to an Agent template and can override the live name, model, or reasoning level without inventing a second roster model.

  3. 03

    One live policy per Team

    Every Team owns exactly one effective revisioned communication policy. When enforcement is enabled, one authorizer covers user, peer, cross-Team, scheduler, inbox, worker, and Telegram boundaries; missing edges deny.

  4. 04

    Approval means approve once

    An approval_required edge holds one typed communication attempt before its side effect. Inspect it in the web queue or CLI, then approve once, deny, or cancel; approval revalidates current membership and policy.

  5. 05

    A mailbox between agents

    Agents coordinate through a durable mailbox: send_message, read_inbox, and wait_for_reply in the loop, plus CLI, API, and web inbox surfaces outside it.

  6. 06

    Shared memory, indexed by qmd

    Every Team has one memory rooted at <team>/memory. Bazilion uses qmd for BM25 over markdown, so project facts, decisions, and discoveries are searchable by every member.

  7. 07

    The user context is explicit

    A Team has one USER.md for the person, project, preferences, and standing instructions. It is injected into every member prompt; generic coding tools cannot clobber it, and guarded USER.md updates use concurrency checks.

  8. 08

    Pi is the engine underneath

    Bazilion 0.9.0 bundles Pi 0.80.6. Pi runs the per-turn loop, stores the JSONL transcript, handles replay and compaction, executes providers and tools, and supplies the coding tools.

  9. 09

    Tools live in the workspace

    Agents get coding tools, web search, a hardened web fetch, a Playwright browser, mailbox and memory tools, and can deliver files back. Connect MCP servers and their tools join the loop too. They work in a linked project folder, not a toy sandbox.

  10. 10

    State is inspectable

    Agent homes, Team roots, Agent-template files, Pi sessions, skills, and memory live under ~/.bazilion. The daemon keeps Team Templates, policies, approvals, and config in one clean-install SQLite schema.

  11. 11

    Heartbeats, crons, and Telegram

    Triggers can wake an agent on a schedule, while one Telegram forum supergroup gives every bound agent its own topic. The same Team policy authorizes every ingress and egress when enforcement is on.

  12. 12

    MIT, local-first, provider-flexible

    Bazilion is a personal open source project published under the MIT license. Use hosted providers, ChatGPT OAuth, Ollama, LM Studio, or other supported backends—including the refreshed GPT-5.6 catalog.

Profiles describe agents. Team Templates describe a reviewed team.

Draft the roles once.
Review the communication edges.
Spawn one revision into a Team.

An Agent template is the reusable role. A Team Template is the sole reusable roster and policy source. The web editor, HTTP API, and CLI interchange tools all work with the same stable slots and immutable revisions; a live Team retains its source lineage without becoming a second template.

team template cli
$ bazilion team-template show release-review
# release-review — Release review
revision: 3
slots:    3
edges:    8

slot  profile          Agent name   model  reasoning
1     docs-reviewer    reader       -      high
2     cli-tester       tester       -      medium
3     release-captain  maintainer   -      high
effective live policy team
$ bazilion team policy show bazilion-090
# Team bazilion-090 policy
revision: 2
baseline: release-review@3
members:  3
edges:    8

  -> one effective policy · retained source lineage
  -> allow · approval required · missing edge denies

USER.md, memory, and policy make the Team coherent.

USER.md is shared

Each Team has one USER.md for stable context about the user, project, preferences, and standing instructions. Agents share that protected briefing; Agent updates use guarded tools with concurrency checks instead of clobbering the Team context through file writes.

Memory is searchable markdown

Team memory is backed by qmd: BM25 over markdown under the Team memory folder. Agents can write decisions once and later retrieve them by search instead of relying on chat history.

Communication is explicit

Directed edges define who may reach whom. A protected edge can hold exactly one attempt for operator approval, and durable denial records retain policy evidence without storing the message payload.

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