1. a quick kiss on the cheek :*
2. a brisk north wind
3. a terminal where your agents ship while you think
01 · philosophy
a day with agents feels empty.
you shipped more than ever. so why does it feel like you did nothing?
you spent the day watching progress bars. answering "v1 or v2?". switching tabs. reading what an agent did while you looked away. by evening a lot got merged, and you made none of it. you feel slow, a bit useless, and strangely out of control. you gave away the fun part, and got nothing back.
it's not you. it's the interruptions. every agent pulls you out of your head, every few minutes. and flow, the state where you think clearly and the hours disappear, needs quiet to start. with agents tapping your shoulder all day, you never get there.
bise preserves your flow.
you stay in your head. the agents work around you, quietly, in the same folder. the obvious questions get answered without you. what reaches you is only what's really yours, and it waits until you're ready.
built for humans piloting hundreds of robots, from a distance.
a bise is a little kiss, and a cold north wind. that's the whole idea: a light touch on the shoulder when something needs you, and the rest of the time, a breeze that keeps everything moving while you think.
what we believe
- flow is the product. everything else is plumbing.
- the human has the ideas. the tech keeps up, then gets out of the way.
- more agents should mean more done, not more to watch.
- a calm screen is a feature. attention is the scarcest thing we handle.
- trust comes from honesty: say what happened, say what isn't built, never pretend.
02 · values
five things we never trade away.
you never wait on a turn. say it, keep talking. the work runs in the background and bise is always listening.
you decide. bise answers the obvious questions itself, shows why, and brings you only the real decisions.
no project management, no vocabulary to learn, no worktrees to merge. many hands, light work.
color means attention. agents talk to each other quietly; what's for you stands out, the rest stays dim.
no silent failure, no hidden limit, no feature we pretend to have. the history never lies: it only grows, in order.
03 · name and mark
bise :*
the name is always lowercase, like a command you type: bise. four letters, easy to type a hundred times a day.
the mark is :*, the kiss you type on a keyboard. it works in any terminal and any font, and looks typed by a human. inside the product it marks main's voice.
say it: beez. in english the word is rare, so we explain it wherever a stranger meets it first (site hero, README, launch posts), with a dictionary entry: bise /beez/ · french, n. 1. a quick kiss on the cheek. 2. a brisk north wind. 3. a terminal where your agents ship while you think. short form, one line: bise (say: beez): french for a kiss. also a wind. not inside the product: there, the :* says it.
standalone. bise is its own brand: no borrowed colors, no parent logo.
taglines
| where | line |
|---|---|
| site, headline | kiss your backlog goodbye. |
| site, subline | ramble. interrupt. change your mind. i run the agents. you stay in flow. |
| inside the product | ideas in. little kisses out. also pull requests. |
| in reserve | you, but with way more hands. · your team is as big as your ideas. |
retired, don't bring them back: "built for engineers who think faster than they type." (not strong enough) · "all the agents. none of the overhead." · "code like a team of ten." (a number is a cap) · "all your ideas. none of the juggling." (sounds like an LLM)
04 · voice and tone
a human, typing fast.
lowercase, always
no capital letter at the start of a word, anywhere: site, UI, messages. it reads like someone typing, not a company talking.
- proper nouns keep their capitals: GitHub, Claude Code, Ghostty.
- acronyms stay in caps: API, MCP, PR. "cli" in lowercase is fine.
- ALL CAPS to shout: allowed, extremely rarely.
- our name stays lowercase: bise.
no period at the end of a title
a stack of titles that all end with a period sounds like a list of verdicts. so titles drop their last period: sections, features, lists, UI labels. all your MCPs. all your skills. always on: the periods in the middle stay, only the last one goes. the numbered meanings of the gloss (1. a quick kiss on the cheek) drop it too.
- keep it only on the headline and on real punchlines, where the period is the timing of the joke:
kiss your backlog goodbye.,one thread. a whole team.,no yaml was harmed.one per screen, at most. - body text keeps its periods.
who speaks
inside the product, bise says "i", and "you" is always the user. on the site, we talk to the reader as "you".
four words, no more
the user meets you, main, agents, cards. never "task", "sub-agent", "orchestrator", "hub" or "hands" in the UI.
do / don't
say it and keep talking. the work runs in the background, i'm always here.
docs asked v1 or v2; the brief says v2, so i answered.
glm-5 can't read images. pick a model that can, or describe the screen in words.
Welcome! Unleash the power of seamless multi-agent orchestration.
Task #3 (docs) has been resolved by the Orchestrator.
Error 400: invalid_request_error: image_url not supported.
- short sentences. show the moment, don't name the feeling.
- warm, a bit cheeky, never cute at the expense of clear.
- no promise with a number. the real limits are tokens, cost and provider speed: say so.
- no polished LLM patterns: "X. none of the Y.", "seamless", "supercharge", "unleash".
05 · visual identity
terminal brut, with the soul of a bise.
raw terminal credibility: monospace, calm, the product is the visual. plus one warm human touch: the pale pink accent, the :*, a heart for "done".
the background is yours
in the terminal we never paint the background: your terminal's color, transparency and blur show through. we only choose the colors of the text. two themes, light and dark, picked from your terminal's background at start. try the switch in the menu: this whole page follows it.
palette · dark
- color means attention. only "needs you" and errors get a hue. the accent is pink, not red, so "needs you" never looks like an error.
- every text you read is at least 4.5:1 on white, cream, black and a typical dark grey. faint is for rails and borders only.
type
JetBrains Mono for the site and screenshots. in the terminal, the font is yours.
motion
only four things move: the working breeze ∿, the cursor , the typed welcome, and the :* pop. nothing bounces, nothing slides.
06 · symbols
one glyph per thing.
status is a symbol, not a word and not a color. learn them once, read a screen of 30 agents at a glance.
entities
agent status
marks
07 · ux principles
seven rules for every screen.
| 1 | you stay in control, the screen stays calm. agents work quietly; only what needs you gets color. |
| 2 | everything is readable. prose never wider than a novel line; contrast ≥ 4.5:1. |
| 3 | progressive disclosure. one line per step, details one key away. scripts are the exception: always in full. |
| 4 | one symbol per thing. |
| 5 | the history never lies. it only grows, in arrival order. |
| 6 | no new vocabulary. you, main, agents, cards. |
| 7 | honest. no silent failure, no hidden limit, nothing we pretend to have. |
08 · the screen
one conversation, all your agents.
| header | bise :*, then only the non-zero counts. the pink one is the one that needs you. |
| feed | the conversation. prose ≤ 88 columns, in a 91-column reading column; extra width goes to the margin. |
| agents | one row each: number, status, name, age and context. ⌥ + number jumps to it; numbers never change while an agent lives. hidden under 70 columns. |
| divider | who you're talking to (you → main, the name in pink) and, on the right, what they're doing. |
| composer | everything under the divider is slightly raised, like the bottom of an app. your text sits behind a thin bar (faint while empty, pink once you type), at least 2 rows; it grows with you. |
| key bar | right under the composer: keys in the text color, what they do dim, a tip on the right when you're idle. in an agent's view it starts with esc back to main. |
the first run
09 · three levels
what's for you, and what isn't.
everything on screen belongs to one of three levels. the level decides the look, never the other way round.
- level 1 gets the pink bar and stays until you answer.
- levels 2 and 3 differ by brightness and the rail, never by color.
- traffic between agents is always there, so the story stays readable. main's next line is the summary for you.
10 · the history
it only grows. in order.
the history is append-only, in arrival order. nothing is grouped by agent, nothing moves later. what changes over time (status, age, open cards) lives outside it: the panel, the header, the card box.
- content is frozen; small marks are not. the only change on an existing line is its status mark, like ✓ becoming ✓✓.
- only the tail can grow. more than 3 messages between agents fold into one dim line. only the last run, at the bottom, still grows; a line for you closes it forever.
- time marks after a pause: a faint · 14:31 · after 5 minutes of silence.
11 · reading
a novel line, not a wall.
prose wraps at 88 columns, whatever the terminal width. code goes up to 100, then wraps with a faint ».
scripts in full
bash and TypeScript scripts are always shown whole, with colors. you should never wonder what an agent actually ran.
async function main() { const issues = await tools.github.search_issues({ query: "safari login", limit: 5 }); // only the open ones return issues.filter((i) => i.state === "open"); }
tables
no frame, no bars. two spaces between columns, a bold header, and a faint rule with one segment per column. numbers align right. too wide for the screen: the widest column wraps; still too wide: one block per row, key and value.
endpoint owner status tests coverage
──────── ────────── ─────── ───── ────────
/users ep-users done 21 94%
/orgs ep-orgs done 17 91%
/keys ep-keys working 9 62%
/billing ep-billing waitingprogressive disclosure
| item | by default | open |
|---|---|---|
| thinking | ∴ thought for 14s ▸ | the full text |
| bash, typescript | always in full | — |
| output | ▸ output · 42 lines · 1 failed | the output |
| file edit | ± edit session.ts ✓ +3 −1 ▸ | the diff |
| report | ✓ bench is done. ▸ report | the report |
| brief | ◇ brief ▸ | the brief |
| agent traffic | ▸ 12 messages between 8 agents | the messages, in order |
12 · cards
only the decisions that are yours.
main answers the obvious questions itself. what's left arrives as a card: a pink bar, who needs you, the question, the choices.
| ? | a question, or an agent blocked |
| ✗ | an agent failed |
| ↻ | a restart failed, rolled back |
| – | confirm dropping an agent |
| ⇄ | two agents changed the same file |
| ✓ | done |
ctrl+f opens a long card full screen, pgup / pgdn scroll it.
13 · talking to agents
just talk. that's the whole interface.
to main
say what you want, as many things as you want, one after the other. main says who takes what.
to one agent
@name sends a direct message without leaving main. ⌥ + number or ⏎ on an agent takes you inside it; esc brings you back.
did it get my message?
while an agent works, what you send waits for its turn. the marks at the end of your line tell you where it is, like a text message.
changing your mind
you just say it, like you would to a person. main tells the agent, plainly, and confirms.
14 · images
show it, don't describe it.
drag a screenshot into the terminal, paste one with ctrl+v, or pick one with @. an image is one pink chip in your text; delete the chip, the image is gone.
the attachments sit in their own small box, under the divider and above your message: attached in its top border, one row per chip. the chips stay in your text, wherever you put them, with the same number.
a model that can't read images says so in plain words, with a way out:
⚠ drawing the picture itself in the terminal comes later.
15 · onboarding
hi, i'm bise :*
six short steps, one choice each: the welcome, your theme, your model, your folder (and one honest thing), how it works in three lines, then the real thing. after that, no tour: each hint shows once, next to the thing, the first time it happens.
click inside, then press enter to go on.
16 · live
ten agents, one calm screen.
an 80-second simulation of a real session: you ask, main starts ten agents, they talk, one needs you, you answer. type your own messages in it at any time.
every screen, one by one: all the screens
17 · keys
few keys, all shown where they're used.
| keys | does |
|---|---|
⏎ | send to the agent in view; during a turn, steer it |
@name | a direct message from main |
⌥ + 0…9 | go to main or agent n |
ctrl+k ctrl+j | select the next / previous agent; ⏎ enters it, space previews it |
esc | back to main |
ctrl+c | interrupt; again to quit (agents keep running) |
alt+r ctrl+x ctrl+f | answer a card · later · full screen |
ctrl+g ctrl+n ctrl+p | show the cards · next · previous |
ctrl+o | open or close everything folded: thinking, outputs, diffs, agent traffic |
ctrl+v | paste an image |
ctrl+r | voice |
ctrl+` | a shell in the folder |
/ | commands |
18 · copy deck
the words, exactly.
every string the UI shows. when a string isn't here, write it in the same voice and add it.
| where | text |
|---|---|
| header | no agents yet · ∿ 3 working · … 1 waiting · ? 1 needs you · ✓ 1 done |
| panel | agents · ⌥ + number · + 21 more · ▸ 4 archived |
| first run | what's on your mind? · say it and keep talking. the work runs in the background, i'm always here. |
| inside an agent | you're talking to auth-fix directly. main isn't in the loop. esc back to main. |
| composer | ⏎ send · @ agent · / commands · ⏎ steer · ctrl+c interrupt |
| history | ▸ 12 messages between 8 agents · ∴ thought for 14s · ▸ output · 42 lines · ✓ turn done · 2m 10s |
| cards | ? docs needs you · alt+r answer with text · ctrl+x later · ctrl+f full screen |
| direct | @ auth-fix to you: … |
| not delivered | ✗ not delivered: auth-fix stopped. ⏎ send again · esc drop |
| provider down | ✗ the model provider answered 503. retrying in 8s (2 of 5). · auth-fix and release are waiting on it; nothing is lost. |
| onboarding | hi, i'm bise :* · ideas in. little kisses out. also pull requests. · press enter ↵ |
19 · resources
everything else.
| screens | every screen of the product, one by one |
| live | the live simulation; type your own messages |
| onboarding | the first launch |
| bise.dev | the landing page |
| in the repo | the full book with the spec and the implementation plan: projects/switchboard/docs/brand/bise-book.md, and the work issue by issue: bise-issues.md |