Shape the office to the terminal it's in.
The same floor runs in a widescreen and in an ssh session half that wide. Layouts set the geometry, themes set the paint, and the power governor decides how hard the office renders when nothing on it is moving.
Normal is the floor plan. Everything else is a slash command.
Out of the box the office boots into the normal layout: the full sidebar with spelled-out tab names and the full-height composer. This is the reference everything else narrows, widens or hides.

/compact on narrows the sidebar to 30 columns, swaps the tab labels for short letters and drops the input to two rows — for narrow windows and side-by-side terminals. It holds for this session; if you want it to stick, /mode compact is the same choice persisted to brain.json (/mode normal walks back).

/wide <n> sets the sidebar width directly — 26 to 100 columns, 0 restores the default of 80 — and persists. /zen goes the other way: fullscreen floor, minimal chrome, the sidebar entirely out of the way, any key exits. /focus floor is its alias.

Five paints, previewed before you commit.
The office ships five themes. Pick one at launch with --theme noir|paper|mono|dracula|solarized, or in-app with /theme <name> — either way the choice persists to ~/.config/theboringfloor/theme. /themes lists them without leaving the chat.
The pleasant part is the try-on: arrowing through the slash popover's /theme matches applies each one as a live preview while you pass it. enter commits what you land on. You never switch a theme blind.

The office goes cheap when nothing moves.
/power auto|performance|saver sets the render cadence and writes back to brain.json. Auto is the default and the one most people should keep: it reads whether anything is live — streaming, pending replies, walkers, open modals, ambient bubbles — and slows the tick the moment the floor goes quiet.
| mode | busy | idle | drift (1 min quiet) |
|---|---|---|---|
| auto (default) | 180ms ticks | 1s | 3s |
| performance | 150ms flat | — | — |
| saver | 400ms | 2s | — |
What saver actually slows is the cadence the ambience rides: walk cycles, tea-machine steam, server LEDs, the typing pulse. It never drops events and never slows the boss — the backend keeps its own pace regardless. Underneath all three modes the renders are memoized (a frame digest on the app; (size, planGen, tick, renderRev) on the floor), and the agentmemory board poll backs off 2× after five quiet syncs, capped at 4× and reset on change. Battery on a laptop is a render problem, and performance is 150ms flat for when it isn't.
What this doesn't do yet.
- /compact narrows the sidebar, not the floor. The office floor's own plan is fixed — resizing the building is not a command yet.
- /zen is a view, not a screensaver. Any key exits, so it will not stay parked on your second monitor.
- Saver changes cadence, not capability. The floor animates slower; the work behind it does not.
