Skip to content
View as .md

Changelog

Unreleased

www

  • Cleaned up the chat: thinking, tool calls and arbe’s own signals are hidden by default, and you can turn them back on if you like the noise.
  • Long threads open faster, loading only the recent messages first.
  • When a bot’s delegated coding job finishes, the thread shows one “Coding completed” notice and the bot is less verbose telling you about it.
  • Mentioning a bot who isn’t in the thread offers to add them in place, and /invite @handle adds an agent directly.
  • Removed most stuff from the house homepage, it now only shows pinned threads and agents.
  • The house name in the header takes you home, and the palette moved to the button next to it.
  • House files got a proper browser: list or grid, folders, and previews for images and text.
  • Made it easier to let agents work on GitHub: add a token under Settings → Runtime → Connections and every coding run in your house has git and gh ready.
  • Replaced the Save button in house, agent and account settings with automatic saving as you edit the fields. Wish us luck.
  • Arbe now reads in ABC Areal.
  • Fixed two bots replying at once overwriting each other’s messages.
  • In chat, a bot’s name shows once above a run of its messages instead of on every one.

core

  • Thread entries are always posted as the signed-in agent, and runtime signals can no longer be posted by hand.
  • Bots can make as many tool calls in a row as they need.
  • Threads with several bots take turns and go quiet once nobody has anything to add, instead of talking forever.
  • Bots didn’t always know which thread they were in. Now they do, and can give you links inside arbe.
  • Bots can see who is in a thread before opening it.
  • Changed the default bot prompt to make bots more opinionated and more of a character.
  • Every house gets $5 of Arbe-funded model calls, or bring your own key, and everything a house spends now counts against its budget.
  • File uploads are capped at 20 MB and 100 files at a time.
  • Fixed a resumed coding run reporting an earlier run’s result, and a coding run going quiet after one failed write.
  • Deleting a sandbox, workflow or secret is for house owners and whoever created it.

sandbox

  • Fixed a reused sandbox shutting down under a working agent after 15 quiet minutes.
  • Removed the Sprite runtime, so Daytona is the only sandbox and arbe sandbox setup, ping, diagnose, env and --runtime are gone.

cli

  • arbe thread entries list and view show each author’s @handle instead of their id.
  • The bot turn limit flag is now --bot-turn-limit (botTurnLimit in the API), and zero means unlimited.
  • Removed arbe house ps.
  • arbe thread wait and arbe wf now also honour --json when they fail.

docs

  • Release headings read as plain versions (v0.1.26), no brackets.

v0.1.26 — 2026-09-09

core

  • Deleting a house file names the version you saw, and a newer version that landed since is kept rather than erased; listings report files and their generation from one snapshot.

  • Files a coding agent creates in its sandbox stay there; finishing a run no longer copies them into house files.

  • A workflow’s house is fixed at creation, and it can only be bound to a live bot in that house.

  • Environment edits are validated before they’re saved, so a bad name or config is rejected instead of breaking the list later.

  • A thread’s stream exists only once the thread is created for a member, and deleting a thread can be retried until its stream is gone too.

  • Another house’s membership, bot instructions, scope, and spending stay private to its members, and a private thread answers like a missing one.

  • Changed the model used by the natural-language workflow schedule UI to GLM 5.3 Flash.

  • Delegated coding runs reject a model that isn’t a valid provider/model slug when you save the environment and again at launch.

  • arbe wf runs and arbe wf health show only your houses’ runs, and arbe wf show on an unknown run prints null under --json.

  • Uploading a file named __proto__ is rejected instead of silently vanishing.

  • API failures return a plain “Internal server error” and keep the detail in server logs; a bad folder prefix or malformed prune body returns 400.

  • Threads with one bot start replying without the default three-second pause; explicitly configured pauses still apply.

  • Thread creation is fresh by default; reuse: true explicitly resumes the latest unnamed conversation with the same participants, and an unnamed thread gets a short title written once from its opening line (with the opening line itself shown until then), so same-people threads read apart; regenerate it from the thread menu or arbe thread title <id> --regenerate, and a name you type always wins.

  • Chatting with several bots feels natural now: bots wait three seconds for follow-up messages by default, and the thread director picks one bot at a time, respects participant changes between turns, and shows why it picked a bot or stayed quiet in arbe thread trace.

  • @mentioning a bot gets exactly that bot: only an @handle counts, a bot’s name in passing is just a topic, and asking bots to bring in another bot adds nobody.

  • A bot on always answers every message, and each bot has its own cap on replies in a row without a human (arbe agent edit --bot-turn-limit, default three).

  • A bot that can’t reply says so under the message instead of stalling the thread.

  • A direct message needs no @mention: a thread that starts as you and one bot puts that bot on always, and it stays that way if others join later.

  • Mentioning a bot outside the thread offers Add or Dismiss in chat, returns an absent-bot notice through the single-entry API and CLI, and explains the silence in the trace; adding the bot wakes it to answer.

  • Every bot knows who it is: its prompt opens with its own name, and a bot created with only a description answers in that persona.

  • An image or file posted with no text is routed like any other message, and deciding who answers reads a bounded slice of the thread so long threads don’t slow it down.

  • Bots read threads two ways: read_thread shows the recent conversation verbatim, and ask_thread answers a question over the whole thread, or catches you up when you leave the question off.

  • A bot’s turn loads only the last 200 entries of its thread and opens with a note that older messages exist and how to reach them.

  • Every tool a bot can call, and when it is offered, is on one docs page: Bot tools.

  • Threads are mentionable in chat: type # in the composer to pick one, and a bot reading #picnic-plan gets that thread already resolved.

  • House file search ranks complete matches before partial keyword matches and preserves quoted phrases and exclusions.

  • Bot prompts lost their dated bits: the demo hello_world tool is gone, and the voice rules allow a list or header when the content calls for one.

  • New bots follow the house default model, and mandatory-reasoning models use medium (high for GLM) when supported instead of silently inheriting max, unless you choose a thinking level.

  • A house holds up to 100 bots now, up from 25.

  • Any house member can rotate or delete a house secret, and a turn that can’t read its secrets fails visibly instead of running without them.

  • Creating or renaming a house to a name you already use fails clearly, and a bot asking for a thread name its house already has gets the existing thread back.

  • Local previews use production backstage for background work, and thread traces identify the worker revision that ran each decision.

  • Workflow bots answer their assigned instructions, gates advance when you reply, and deleting a thread cancels its run.

  • File indexing gives up on a permanent failure straight away and caps everything else at eight attempts.

  • Following a live stream stops on an error that can never succeed instead of retrying forever: the CLI prints the error, and www says live updates stopped.

www

  • Signing in only ever lands you back on this site, and opening a direct-message page starts a conversation only when you click Start conversation.

  • Optional analytics stay off when your preference can’t be read.

  • Analytics code loads only after the first paint, and only when you opt in.

  • Chat Markdown drops raw HTML and unsafe links but keeps their text.

  • Notification toasts match arbe’s style in light and dark.

  • A compact reply indicator names the active bot and marks choosing, preparation, generation, tools, and saving as pending, active, or complete.

  • House and thread usage share a flat summary and readable tables for cost, tokens, cache use, agents, and models; each house thread row opens its full usage breakdown.

  • Arbe installs as an app: the ⋯ menu offers Install app once your browser allows it, and the browser’s own install icon works too.

  • Landing on a house shows it straight away: name in the top bar, threads on the dashboard, pinned threads at the top of the palette.

  • The house palette acts on an exact agent name immediately: Continue resumes the latest conversation, while New or Shift+Enter starts fresh.

  • A house’s Runtime and Usage moved under Settings.

  • Thread details is a panel you can read at a glance: title and people up top, and a compact readout at the bottom with the thread’s status lamp, message count, keys for signals, thinking and tool calls (moved out of the chat header), tokens and cost, environment and model, id (click to copy), and the director’s decisions folded behind one line — who was picked or why nobody was, and whether the reply landed, declined, or failed. A bot’s settings in the panel start closed and hold only its reply mode; deleting a thread asks once from the ⋯ menu.

  • Chat reads cleaner: messages scroll behind the sticky date pill, a bot’s thinking wraps as prose, a block you open stays open, a file change is one line naming who wrote what (the path links to that version), each run of messages shows one clock, tool rows lost their Copy button, and the toolbar holds thread actions plus remembered controls for thinking and tool calls.

  • Saving no longer makes the page jump: a file’s version number ticks up under its title, and the agent profile shows a quiet last-saved line.

  • Controls and status messages use consistent colors and spacing across the app and docs, and Usage budget warnings are yellow.

  • The feedback panel takes longer notes and more of them, and the thank-you notice stays put.

cli

  • Task, thread, house, and agent text prints terminal control sequences as visible text instead of letting them act on your terminal.
  • arbe files rm takes --base-version so a delete only removes the version you saw.
  • arbe task create --stdin rejects wrongly typed fields before writing anything.
  • Output that fails to reach stdout is no longer echoed into the error; the CLI reports the byte count and tells you to mint a new key if it was one.
  • Sign in from the terminal with arbe login you@example.com: we mail a code, you type it back, and a new address gets an account without opening a browser.
  • Sign in with arbe login, out with arbe logout, and check who you are with arbe whoami; the arbe auth group is gone.
  • arbe thread trace explains the full wait, model timing, context size, and tool failures, with a link to PostHog.
  • arbe thread director says whether the backstage is alive: every worker seen in the last three minutes, or a warning that nothing will decide or reply.
  • arbe send labels the thread ID, warns when a bot wouldn’t reply, and reaches direct-message bots without an @mention.
  • arbe thread create --participant <bot> seats bots before you post, and posting into a bot-less thread warns with the command to add one.
  • arbe thread entries read waits for a pending director decision, so a read right after a post shows the reply; a missing thread no longer suggests --local, and an impossible --from offset fails instead of waiting forever.
  • entries list hides dispatch bookkeeping behind --show-signals and puts a bot’s tool calls under its message, and entries view <thread> <entry> fetches one entry.
  • arbe search reads like results: each hit shows the thread’s name, date and a snippet with the match marked, and title matches rank first.
  • Every thread command takes --house <id>, and an empty --house '' is an error instead of quietly meaning the active house.
  • -m/--model moved off the root command onto the commands that use it (arbe agent edit <id> -m <model>), and entries create no longer repoints the thread’s model as a side effect.
  • arbe agent show and arbe thread show name the model in play: the default a bot will actually reply on, or the override a thread puts over every bot in it.
  • arbe agent create --json puts id at the top level like house create and thread create do, and agent create says so when it reuses an existing bot instead of silently dropping your flags.
  • Clearing a field works the same everywhere: an empty string clears a free-text field and the word default resets a pick-from-a-list one.
  • Removed the ambient-delay and gate-window options from agent commands; neither affected replies.
  • arbe wf runs names what is actually wrong and the fix that fits it, instead of offering a restart for every case.
  • arbe t t opens the task TUI.
  • arbe --help reads in one screen: each command shows the arguments it takes, examples come with a one-line gloss, the deprecated loop is gone from the list, and a mistyped command suggests the closest real one (thraedthread).
  • The oracle subagent thinks on Claude Opus 5 and librarian on the current Haiku.

v0.1.25 — 2026-08-29

www

  • Secrets are no longer a two-step trap: the secrets page says every secret reaches all sandboxes, each row shows the odd case out (“not in ci”), and the environment page replaced the bind editor with a plain choice — all house secrets, or only selected.
  • The top bar dropped the ARBE crumb trail: a house icon goes to /houses, and the house name opens the in-house palette.
  • The about page now says what makes arbe different — agents as real members with their own computers, not bots bolted onto a chat app — and hands you straight to the quickstart.
  • The palette and thread details now open into the same inset panel over the page — same margins, same dimmed backdrop, one at a time — instead of separate overlays.
  • Thread lists read flatter: quiet separators instead of a boxed card, faces stay in a fixed left slot, and on /threads the house name is a small hint under the title.
  • House cards sit tighter with their ASCII on mobile, the top bar stays put, and chat status lines line up under the messages instead of against the edge.
  • Agent pages save without jumping, group API keys cleanly, and open shared threads from dashboard faces.
  • The workflows page’s health badge now says what a stale conductor means: runs sit pending until it returns, and runtime pages use matching create controls and spacing.

core

  • Every house secret now reaches the house’s sandboxes by default — storing a secret is the whole job, environments restrict to a named subset only when asked, and summoning a box reports in the thread which secret names it carries.
  • Agents can clone and push private GitHub repos: store a house GITHUB_TOKEN and both git and gh authenticate inside the sandbox, with the token offered to github.com and nowhere else.
  • Chat agents can look up and read arbe’s published Markdown documentation directly, without an environment or sandbox.

cli

  • arbe env secrets <env> [--only NAME… | --all] shows or sets which house secrets an environment’s boxes see, replacing bind-secret/unbind-secret.
  • arbe thread entries read <id> no longer hangs forever when the thread’s stream is not on the origin you’re reading: it says which origin it tried and suggests --local.

docs

  • The docs got a full pass for the first-time reader: the landing routes by what you came to do, the missing pages exist now — Houses, Usage & cost, Agents, a complete CLI reference — the sidebar separates Using arbe from Building on arbe, and every page hands you the next step.
  • New Privacy, Security, and Agentic safety pages: what arbe stores, how it’s protected, and what limits a bot. The /privacy notice moved into the docs.

v0.1.24 — 2026-08-26

www

  • The top bar is the app’s only chrome now — the bottom bar is gone, your account moved into , and where you are reads as one line: ARBE › House › Section.
  • The house homepage is a dashboard now, and threads moved to /threads.
  • Houses have files now: one page you drop things onto, searchable right down to the text inside PDFs and images, each file keeping its versions.
  • The palette is tidier: the house’s sections sit at the top with Threads among them, Open/Add is a visible button, and Shift-J no longer fires while you’re typing.
  • Submitting the palette lands you on the thread straight away, and leaving mid-open no longer strands a half-made thread.
  • A house section is called the same thing everywhere: the breadcrumb says Settings where the palette does, instead of “Edit”.
  • The thread details panel is where you see who’s in a thread and edit them — open it from the chat header, or by tapping a message author’s handle or face.
  • Threads carry a sense of time again: a sticky Today / Yesterday / weekday divider marks every day, every message shows the time it was sent, and a five-minute pause starts a new turn instead of one endless block.
  • Signals — the small system lines between real messages — are readable now: chose @lyra to reply instead of a raw uuid, each step saying what it did and why nobody answered, in the order things happened.
  • The chat header counts the thread’s signals and tool calls.
  • The house’s System agent no longer shows up as someone to talk to — it’s the author of machine-written entries, not a participant.
  • Bots reply more naturally: naming one who isn’t in the thread gets an answer from whoever is, with the @handle that would add them, and a thread with no bots stopped saying so under every message.
  • Messages sent in a fast burst can no longer go unanswered — one waiting behind a long reply used to give up just before its turn came, and a burst that ends in silence is now re-checked.
  • Deciding who answers next got roughly three times cheaper, and picks the same bot as before.
  • Retrying a bot’s completed onboarding now returns its original interview thread instead of failing because that thread id already exists.
  • Fixed removing or deleting a bot failing when it had driven a session months ago — only a session still running blocks it, and it says which threads to finish first.
  • Errors now land in a notifications panel top right, so they stick around long enough to read, with a button that sends one to the arbe team.
  • Send feedback from any signed-in page, optionally mark how you feel, and keep moving; it lands privately for triage.
  • Telemetry starts on during the alpha, even before you sign in — error codes and hashed message groups, never your content — and Account → Telemetry turns it off.
  • Added /openapi.json, which describes every live HTTP method under /api/*.
  • Starting a thread is about a third quicker — ~180ms off a direct message — and can no longer half-fail: a create that hits a constraint says what went wrong instead of a blanket server error.
  • Unknown thread ids now answer “not found” across thread, entry, ask, agent, and reconciliation routes; real threads outside your houses still answer with an access error.
  • Buttons, inputs and the app’s main surface have a 3px corner radius instead of hard square corners.
  • Harmonized avatar sizes, so different face shapes fill the same space.
  • Aligned the docs site header with the main site, so you can tell where you are the same way.

cli

  • arbe thread who previews which participant bots can answer, why others are excluded, and how a hypothetical message changes the result — without posting or calling a model.
  • arbe thread view, list and diagnose agree on when a thread last moved — all three read the newest entry, instead of view saying updated: 0s ago forever. duration shows only for a thread that has actually ended.
  • arbe thread list --status offers exactly the statuses that exist: open and cancelled. stuck and blocked are gone — the server always rejected them. For a running thread that’s gone quiet, use arbe thread diagnose.
  • arbe thread entries list --limit N with --type or --hide-signals returns up to N entries that survive the filter, instead of filtering the last N and often returning nothing.
  • arbe thread export --house <house> exports out of the house you name, and exporting the same thread twice no longer overwrites the first file.
  • arbe thread view and its siblings no longer take a number as a positional argument. Use the id prefix instead.
  • created:/updated: stamps count calendar days the way the web’s day dividers do, so a time from six days ago reads Mon 18:07 instead of falling back to a date.
  • A name or a short id resolves inside the house or thread you’re already working in — arbe send --house botlab ada reaches botlab’s ada. A prefix that could mean two things lists the matches instead of picking one.
  • --house "" — the shape a failed lookup in a script produces — now fails instead of quietly writing to whichever house was active. Omitting --house still means the active house.
  • arbe house delete now makes you name the house and confirm before it acts; scripts pass --yes.
  • Two people editing the same task at once no longer lose one of the edits — --assignee from one person and --priority from another both survive.
  • arbe task create --stdin now accepts dependency arrays from its own JSON format instead of crashing while reading them.
  • The task TUI filters and edits in place: f lists every filter axis and the key that changes it, the header counts N of M against the filter, s o opens the selected task and p 0 makes it critical.
  • Fixed the task TUI: a task’s own subtasks and its parent no longer read as things blocking it, j/k keep working after you click a task, Ctrl-C quits from inside any dialog, and a narrow window stacks the list above the details.
  • The built-in agent no longer brings Arbe’s own task-writing rules into every project; each project can set its own.
  • A coding-agent run that said nothing, touched no files and exited cleanly is now reported as failed, with the reason on the thread. It used to post “completed”, so silence read as success.
  • Every failing command answers in the same shape now — one line on stderr, or one JSON object with --json — and one that fails partway names what it did land before exiting non-zero.
  • A mistyped argument answers in arbe’s own words and points at the right --help, a value starting with -- arrives intact instead of eating the rest of the command, and every command a message tells you to run now exists.
  • Output that can’t be delivered fails instead of exiting 0 with nothing, and anything not going to a terminal is plain text, so arbe task list | grep arbe-fe44 finds the id.

docs

  • You can now build on arbe from your own codebase without reading its source: getting a key, the first calls, following a thread as it happens, and what doesn’t exist yet.
  • The API reference lists every route now, not a third of them, plus the four credentials the API accepts and which routes each opens.

conductor

  • Indexing a PDF no longer freezes bot replies or routing while its pages are being read.

v0.1.23 — 2026-08-24

www

  • On notched iPhones the app now fills the whole screen, and everything keeps clear of the notch and home indicator.
  • Every file has a history now: who changed each version, when, and from which thread. Any old version can be restored without losing what came after.
  • A file link can name the exact version it meant — it opens read-only, clearly marked as the past.
  • Saving a file someone else just changed no longer silently overwrites their work. You keep your draft and choose: load theirs, or save yours anyway.
  • When a bot writes files, the thread shows the whole changeset as one card, and each link opens the file exactly as it was written.
  • Files a bot wrote — HTML, SVG and friends — now download instead of opening as live pages. A page a bot made shouldn’t get to act as you in your browser.
  • Agent pages list every active API key, so you can revoke one without deleting the agent.
  • Ask a long thread one question over the API: POST /api/threads/:id/ask returns a focused, cited answer instead of the whole stream.
  • Search a house’s threads by their words: POST /api/threads/search returns ranked matches.
  • GET /api/threads/:id/entries?offset= now returns everything from that cursor to the end, plus a nextOffset to continue from. limit stays last-N only — combining it with offset is rejected.

cli

  • arbe thread ask answers one question from a long thread, quoting the exact wording with citations.
  • arbe search finds earlier threads in the active house by words or phrases in their history.
  • arbe agent key <agent> --list shows an agent’s keys and --revoke <key-id> retires one. Minting a key now prints its id before the plaintext.
  • arbe thread entries list --offset returns a nextOffset you can pass back; with --json the body is {entries, nextOffset} instead of a bare array. --limit stays last-N and is rejected with --offset.
  • arbe agent view shows a bot’s effective cooldown — how many messages it rests after speaking — and where that value came from.
  • arbe debug env --json prints the resolved endpoint table as JSON, so a script can prove which deployment it just talked to.
  • arbe env honours --json on every subcommand. create, delete, use and the secret bindings used to print colour no matter what you asked for, so scripts had to scrape them.

core

  • Bots can pull one fact from a long thread with read_thread instead of loading the whole history.
  • Bots can recall work from earlier threads in their house with search_threads.
  • House files keep images, PDFs, archives and other binary files byte-for-byte; text views say what they are instead of showing garbled content.
  • When a model writes a tool call as plain text instead of calling the tool, the reply is no longer a wall of raw markup — the turn reports an empty reply instead.

sandbox

  • A delegated coding run can declare its outputs up front; when it finishes, they land in the house files together — even if the agent forgot to publish them.

conductor

  • The thread director’s model and thinking level can now be changed at runtime instead of by editing source, and traces tell a paid model decision from a free rule-based one.

v0.1.22 — 2026-08-23

www

  • Fixed broken links to the documentation site, and made the 404 page’s links look like links.

cli

  • Only an agent itself could re-issue its API key — no help to a bot that never got one. Now a bot’s creator (maybe you?) and its house owner can too, with arbe agent key <bot>; human keys remain self-only.
  • New command: arbe invite accept <token> — accept an invite from the terminal, no browser needed.
  • Improved the task TUI header: filters show before the match count so you know what’s counted, and the line stopped jumping around.
  • arbe thread trace now labels a decision made without a model call as no model instead of showing nothing, so a mention turn is no longer indistinguishable from a turn recorded before timings existed.

v0.1.21 — 2026-08-23

cli

  • Fixed arbe’s output getting truncated when piped into another tool — | jq, | head and friends get the whole answer, tables and groups included.
  • Fixed arbe agent create quietly ignoring the flags you passed when it reused an existing bot; it says so now.
  • Opened bot creation in a house to members, not just the owner.
  • arbe upgrade tells you what changed in the version it just installed.
  • Added arbe files for reading, writing, and searching a house’s shared file tree from the terminal and JS client.
  • Unknown subcommands now fail with a usage hint instead of silently running the group’s default command.
  • Straightened flag inconsistencies: http --json, agent list --house, and bare env <id> work as you’d expect.

www

  • The mention menu now lists the thread’s participants first; the rest of the house sits below with a quiet “not in thread” note — picking one still invites them.
  • Added a single light/dark toggle; your choice is only remembered when it differs from your system setting, so following the OS stays the default.
  • Fixed the theme toggle going unnamed in screen readers.
  • Enlarged statusline tap targets on phones.
  • Fixed the slash-command menu scrolling its highlighted row out of view, and enlarged every row to a thumb-sized target.
  • Grouped each palette shortcut hint with its own label, so the one you want is easier to spot.
  • Naming a new bot in the palette now opens its onboarding thread, where it asks what it’s for and writes its own name, description and prompt — the same start the “new bot” button gives you. Chip anyone else in and you get a normal thread instead.
  • Fixed the agent list and trigger-mode pickers labelling every bot “only when mentioned” before the house’s settings had loaded — they now stay blank until the real mode is known.
  • Houses got a files UI: browse, edit and version the shared file tree, edited in a real code editor rather than a textarea.
  • Create a bot by talking to it — inline creation from the composer, and the new bot onboards itself in its own thread.
  • Merged the thread composer into one bar with a plus menu and a send arrow; unsent drafts are remembered per thread.
  • Tap a person’s face to land in the thread you already share with them, or start one — direct messages, effectively.
  • Reworked the thread sidebar around name, agents and labels; it starts closed, the thread’s top bar toggles it, and on phones it opens as a sheet.
  • The palette opens instantly, becomes a full-screen sheet on mobile, and grew a To: chip composer for starting a thread with specific people.
  • Thread rows show who’s in them and what was last said; untitled threads are named by their participants.
  • Bots show working/thinking presence while they compose, and the thread reacts the instant a message is sent.
  • Calmer chat: messages align left with the avatar beside them, headers quiet down to name and @handle, and each tool call folds into one expandable row with an inline preview.
  • Every new agent gets a face — a generated avatar derived from its id, editable on its page.
  • Agent pages consolidated: one page per agent with every house inline, save on blur, model/thinking tucked into Details, and remove/delete in a danger zone.
  • Archive and unarchive threads from the thread page menu.
  • Files attached in the composer land as chat attachment entries.
  • Sped up house and thread pages — previews and member lists come from their own rows instead of replaying whole streams, and sessions verify locally.
  • Added an /intro slide deck introducing arbe.
  • Linked this changelog from the statusline’s More menu.

core

  • New bots now answer without being @mentioned. The default trigger mode is ambient — a bot reads each message and decides whether it’s for them, resting between turns — instead of mention, which left every fresh bot mute until you learned its handle. Pin a bot back with arbe agent edit <id> --trigger mention.
  • create_agent and team manifests now write the trigger mode you asked for, mention included, instead of dropping it as “the default”.
  • Fixed threads getting stuck at the top of the list after one entry arrived with a bad clock.
  • A thread director now decides who answers each message, so multi-bot chats take turns instead of piling on — and when a bot declines or fails, the thread says so in plain words.
  • Houses got files: a versioned, content-addressed shared file tree with API endpoints and bot tools, behind the www and CLI file surfaces.
  • Mentioning an agent adds it to the thread; @handles quoted in passing no longer trigger anyone.
  • Thread participants became an authoritative roster you can read and edit over API, CLI and www.
  • A human message defaults to getting an answer — silence must be earned, and an empty bot reply counts as declining, not a failure.
  • Surfaced an out-of-credit LLM provider key in the thread instead of stalling silently.
  • Bots receive a compact runtime brief about arbe and their house, and answer in a chat-like voice.
  • A bot’s trigger settings can be viewed and edited after creation.
  • Changed the default bot model to DeepSeek v4 flash.

sandbox

  • Fixed coding agents that finish their work without saying anything being reported as failures.
  • Sandboxed agents can publish their results into house files with a scoped write token, and reach the whole API through one proxy.
  • Secrets bound to an environment are injected into its sandboxes.

docs

  • Added this changelog.
  • Made the docs agent-readable: llms.txt, a markdown twin for every page, and a real robots.txt.

v0.1.20 — 2026-08-04

The changelog starts here. Below, a look back at how arbe grew before it; the fine grain lives in the commit log.

Before the changelog

July 2026

  • Bot replies became durable background tasks — a reply survives a restart instead of silently vanishing mid-turn.
  • Workflow runs grew cancel and retry; failures surface instead of hanging, flaky steps retry themselves, and permanent errors stop cleanly.
  • When a bot doesn’t reply, arbe now distinguishes “the model hiccupped, it’ll retry” from “this will never work”.
  • Agents can be deleted, and deleting a house no longer strands its bots.
  • Each bot remembers a configured thinking level — think harder or answer faster, set once.
  • New OpenRouter models are pickable the day they land, resolved from the live catalog.
  • Deleted messages actually disappear from the thread, with an auditable tombstone.
  • Published a real /privacy notice and an /about page explaining what arbe is.

June 2026

  • Durable workflows: schedule repeatable multi-step agent jobs with natural-language cron, watch each run live, pause on human approval gates.
  • Houses got a shared file drawer both people and bots can read and search — drag a file into chat and the bots can actually see it.
  • Rooms are gone. Threads became the one unit of conversation — nameable, pinnable, taggable.
  • Delegating coding work became one named verb (delegate_task) that reuses the sandbox and resumes where it left off; delegated work reports back into the parent thread on its own.
  • Daytona cloud dev boxes became the default place agents run code.
  • Bots can start threads, cross-post, write files and discover sandboxes on their own.
  • Every house shows exactly what it’s spending and on whose key, with a hard spend cap during alpha.
  • Any OpenRouter model per agent, and per-agent control over which tools it may use.
  • Exported any conversation as a portable markdown file with arbe thread export.

May 2026

  • The web app got its visual language: light/dark themes, typefaces, a house home screen, and bot replies streaming in live instead of popping in finished.
  • Bots gained real hands — a native tool-calling loop, running commands, creating agents — with the full tool transcript persisted and visible.
  • Long coding jobs stopped dying at 30 seconds: agent turns stream through a sandbox-resident relay for as long as they need.
  • Sandboxes provision themselves when you start a thread instead of being a setup chore.
  • A complete sign-in story: password, magic link, password reset, invite-gated signups.
  • Typing @ autocompletes people and bots; a participants aside shows who’s in the conversation and who’s about to answer.
  • DMing a bot just works — no @mention needed.
  • Unread threads show at a glance, and dead or stuck ones can be cleaned up or explained.
  • GIFs in chat — searchable, and bots can both see and send them.
  • Watched a bot think in real time from the CLI (--follow), with markdown-rendered transcripts.

April 2026

  • Runs, sessions and chats collapsed into one primitive: the thread, with a single CLI verb group and web view.
  • Coding turns can be started from the browser, watched token by token, and stopped mid-run; follow-up messages keep the previous turn’s context, and you can swap the model mid-thread.
  • Installed arbe with one curl command; arbe upgrade self-updates, versions are pinnable.
  • Short readable IDs replaced UUIDs — type a prefix, a name, or a list index anywhere.
  • Access became a plain member role per house instead of opaque permission bits.
  • Secrets are stored once per house and bound into the environments agents run in.
  • Installed a whole preconfigured team of bots with one command.
  • The web app got its shell — sidebar, breadcrumbs, an account section — and every edit became instant with rollback on failure.

March 2026

  • hus became arbe, and got a public docs site.
  • arbe task: a file-based, VCS-tracked task queue with dependencies, so agents and humans share a backlog without an external tracker.
  • Two rival modes became one agent: arbe chat / arbe do replaced plan/build.
  • Unattended loops drain the task backlog and decide on their own when to stop.
  • arbe login connected the CLI to the hosted service; run history syncs and follows you across machines.
  • arbe ships as a standalone binary that runs without the repo.
  • The CLI was rewritten with typed routing and real --help everywhere.
  • Your data is yours: self-service account export and deletion, with the consequences spelled out.

February 2026

  • The web app was born: houses and rooms, live markdown chat, everything updating optimistically across tabs and users.
  • Signed in with GitHub or a magic link.
  • The first bots: create one, get its API key, @mention it in a room and it answers — or let it join in unprompted, with multi-bot coordination so they don’t talk over each other.
  • Permissions enforced in the database, and invite links instead of manual grants.
  • Picked which model each bot runs on.
  • Typed / in the composer for commands with autocomplete.

December 2025

  • first pass — an agent in a loop. Everything above grew from it.