Environment instructions

Tune how BusyBro behaves per surface — iOS, Web, Telegram, bmc — from a dashboard editor, with no code change. Empty uses the built-in default; an override replaces it for that surface only.

BusyBro shows up in several places — the dashboard chat panel, your iPhone, the @busybrobot Telegram bot, and the bmc CLI at your terminal. Each of those is a different environment, and BusyBro should behave a little differently in each: concise and tap-by-tap on a phone, link-friendly on the dashboard, short and skimmable on Telegram, command-oriented in a terminal.

That per-environment behaviour ships with a sensible built-in default — and you can tune it from the dashboard, without a code change.

Where to edit it

Open the dashboard at Settings → BusyBro → Settings, and choose the Environment instructions group in the sidebar. You'll see a four-tab editor — one tab per surface:

  • iOS — BusyBro inside the BusymateHelper app on a phone.
  • Web — the dashboard chat panel on a desktop.
  • Telegram — the @busybrobot chat.
  • bmc — BusyBro helping someone at the bmc CLI.

Each tab is one instruction box that shapes how BusyBro talks and acts on that surface.

iOSWebTelegrambmcinstruction for the selected surfaceBusyBro brain(that surface)

Empty means "use the built-in default"

You don't have to write anything. An empty box means BusyBro uses its built-in default for that surface — the box even shows that default as faded placeholder text so you can read what BusyBro would do, and a tab on the default is marked "using default".

  • iOS and bmc ship with a real built-in block (iOS knows the in-app setup flow, the CA-trust step, and the Network tab; bmc knows it's a terminal and never tells you to install a VPN or certificate).
  • Web and Telegram have no built-in environment block by default — BusyBro relies on its general behaviour there until you add one.

When you do type something, your text replaces the built-in block for that surface — your instruction becomes the authoritative voice there, so there's no double messaging. Clear it back to empty to return to the default. Two buttons help: Load default to edit copies the built-in text into the box so you can adapt it, and Reset to default clears the box back to empty.

Tip: A box is capped at 6,000 characters, with a live counter — plenty for detailed guidance, while keeping a stray paste from bloating the prompt.

What it changes (and what it can't)

These instructions tune how BusyBro behaves — its tone, what it leads with, what it points you to — per environment. Editing the iOS box, for example, lets you make BusyBro on the phone even more tap-by-tap, or steer it toward a particular setup nuance, without touching the dashboard or Telegram behaviour.

What they don't change:

  • They never widen what BusyBro is allowed to do. Your role's permissions, the confirm prompts, and ownership checks all still apply — an instruction can't grant a capability.
  • They're not message formatting. BusyBro still uses Markdown on the dashboard and iOS and Telegram-HTML on Telegram automatically; the environment instruction sets behaviour and voice, not markup.

Each surface is independent: editing one tab only affects that surface.

When a change takes effect

BusyBro reads these settings on a short refresh cycle, so a save takes effect within about 10 minutes across every surface at once. The editor reminds you of this. (There's nothing to deploy — it's a settings change, not a code change.)

Who can edit

Changing environment instructions is admin-only — the editor mirrors the same users:edit permission that gates BusyBro's other settings. Someone with read access sees the tabs and the resolved text but can't change them. Saving asks for a confirmation that names exactly what's changing.

The same settings over MCP

Because this lives in BusyBro's settings, it's reachable over MCP too: get_busybro_settings returns the per-surface instructions, and set_busybro_settings can change them (admin + confirm), so an external agent sees and edits the identical configuration. See LLM providers for the other settings that live alongside it.

See also