Skip to content

The web interface

The web UI is the canonical visual surface for Bazilion. bazilion dashboard runs it on http://127.0.0.1:4322 and connects it to the daemon on 127.0.0.1:4321.

On a clean install, open the web UI and paste the bootstrap token on /login. It is the token value in ~/.bazilion/auth.json, created on the first bazilion dashboard or bazilion serve.

Browser login accepts that bootstrap secret only while provider setup is incomplete. Bazilion exchanges it for an internal expiring, revocable device identity and a bounded browser session; browser cookies never retain the bootstrap bearer. After setup, log in with a separately named device credential.

Until at least one enabled provider has a curated model, the app redirects to /welcome and /config. The guided path connects provider search, credentials or a local endpoint, provider enablement, model selection, and an optional real connection test. Crossing the setup threshold seeds the default Agent template and default Team, unlocks the app, and offers a direct action to spawn the first Agent.

The primary destinations are Chat · Agents · Teams. Two menus keep less frequent work understandable without overcrowding narrow screens:

  • OperationsApprovals for one captured action awaiting a decision, and Attention for failures, warnings, lessons, and other open signals.
  • ManageTemplates, Skills, and Setup.

The theme and logout controls remain directly available. The home route is the two-pane chat workspace.

The sidebar groups Agents by Team; the main pane streams the selected Agent’s conversation. The + new ▾ menu can:

  • spawn one Agent from an Agent template,
  • spawn a reviewed Team Template revision,
  • create a Team.

Each Agent row shows status, a Telegram binding marker when present, and rename/archive controls. Chat renders markdown and tool details, accepts attachments (including pasted or dropped images), surfaces delivered files, and shows a cancel control while a turn is active.

Conversation stays focused here. Open Manage agent or the Agents page for settings and lifecycle actions instead of mixing administration into the chat workspace.

The composer also recognizes:

  • /context — inspect the prompt/tool/skill/history budget,
  • /compact [N] — summarize older history while retaining recent turns.

Use Conversations → New conversation to retain old history and start fresh. The ordinary /reset command is removed. Read Conversations for rename and stale-draft recovery.

Follow-ups supports pending edits/removal, pause/resume and Stop-and-pause. Live questions use explicit choices, Other or Skip; answering is separate from communication approval. Saved files remain in each Team’s Results library.

If Telegram or a trigger advances the same session, the page offers to reload.

The product calls these Agent templates; their technical entity and HTTP resource remain Profile and /api/profiles.

  • /templates/agents lists and creates templates.
  • /templates/agents/:id edits the default model, skills policy, creation-time communication defaults, and SOUL.md, IDENTITY.md, optional BOOTSTRAP.md, AGENTS.md, and TOOLS.md seed files.

Edits affect future spawns, not Agents already created from the template.

A Team Template is the only reusable Team roster. It owns stable ordered slots, directed communication edges, and immutable revisions.

  • /templates/teams lists and creates Team Templates.
  • /templates/teams/:id opens the production editor. Add profile-backed slots, set optional name/model/reasoning overrides, and define directed edges in the Flow or Matrix projection of the same draft.

The editor offers Open Team, Coordinator, Review Pipeline, and Blank starting presets. A preset only replaces the current draft; nothing becomes effective until you save. Every successful save creates a new immutable revision.

  • /agents lists active and archived Agents and provides a single-Agent spawn form with an explicit destination Team.
  • /agents/:id contains Chat, Inbox, Triggers, Learning, and Settings sections. Settings keeps model/reasoning, Team movement, Agent-specific skills, Telegram controls, archive, and permanent deletion separate from the conversation.
  • /agents/:id/inbox shows durable peer messages and unread state.
  • /agents/:id/triggers manages interval and 5-field cron wake-ups and shows recent durable dispatch status, retries, and terminal failures.
  • /agents/:id/learning configures reviewed learning and lets you inspect, decide, edit, and revoke lessons.

Moving an Agent preserves its ID, private home, and transcript while both Team memberships/policies update atomically. Archiving also preserves Team membership and policy.

/teams lists and registers live Teams. A Team gets a daemon-owned slot at ~/.bazilion/teams/<slug>/; optionally point that slot at an existing project directory with a link target.

Every Team owns exactly one effective revisioned policy and has five sections:

  • ContextUSER.md, resolved Team context, Telegram topic naming, and Team Template spawn for an empty Team.
  • Members — the live Agent roster and retained source-slot projection.
  • Policy — the effective communication graph and source-lineage operations.
  • Memory — BM25 search and markdown CRUD for Team-shared qmd memory.
  • Activity — durable blocked-communication evidence. This is denial history, not general policy-change history.

Normal coding tools cannot overwrite USER.md; Agents can update it only via the guarded USER.md tools, and the operator can edit it here.

The live editor uses the same Flow and Matrix projections as Team Templates, but operates on the Team’s sole effective policy. It supports:

  • preview/evaluation without sending a message,
  • optimistic revision conflict recovery,
  • comparison with the retained Team Template baseline,
  • explicit adoption/rebaseline from a source template,
  • reviewed update-source operations when lineage is aligned,
  • saving a live policy as a new Team Template,
  • durable block details with cross-Team component evidence.

Source changes never auto-propagate. The live Team and the source revision remain independent until you explicitly compare and reconcile them.

An approval_required edge holds one typed attempt before its side effect. The queue lets you filter history, inspect the path, policy revisions, expiration, sensitive payload, and audit events, then Approve once or Deny. The CLI also supports cancellation.

Approval revalidates current membership/policy and dispatches at most once. It does not create a multi-stage workflow.

For worked examples of held communication, trigger failures, Attention, and reviewed lessons, see Daily operations.

Durable editors protect unsaved Team context, Team memory, Agent-template, and Team-policy changes before selection switches or internal navigation can discard them. You can stay and keep editing or explicitly discard the draft.

Archive, delete, disconnect, credential removal, and similar actions use named confirmation dialogs that explain the target and consequences, keep failures visible, and return keyboard focus to the invoking control. Blank secret fields preserve the stored credential; removal is a separate action.

Agents, Teams, Approvals, members, and trigger history switch from wide tables to task-focused cards on narrow screens. Navigation keeps text labels, menus support keyboard operation, status changes use live regions, and dialogs trap and restore focus. Both themes meet the same contrast target, and decorative motion follows the operating system’s reduced-motion preference.

/skills imports and manages prompt-only Agent skills from a local OpenClaw install, a server directory, or a zip. Skills show their source and metadata and can be attached by an Agent template or directly to one live Agent.

Provider setup starts with search and groups the catalog as Configured, Recommended starting points, Local models, and More providers. Each provider shows readable credential labels, status, model curation, and a real connection test while retaining technical keys as supporting detail.

The rest of the setup area covers:

  • /config — providers, model curation, ChatGPT OAuth, and Browser Automation,
  • /config/services — non-LLM service credentials and URLs,
  • /config/mcp — stdio, Streamable-HTTP, and SSE MCP servers,
  • /config/integrations/telegram — credentials, preflight, and access control,
  • /config/tokens — additional API/client tokens.

When BAZILION_BASH_APPROVAL=dangerous is active, classified shell commands appear inline in chat with approve and deny controls. These ephemeral shell decisions are intentionally separate from the durable communication queue at /approvals.