Comments become tasks,
agents finish them.
Make a task from a comment on the canvas or in the code and start it. A coding agent works on it in a sandbox with its own dev server, and the task waits for your review. Nothing is pushed until someone approves.
From a comment
to a reviewed branch.
A thread on a page or on lines of code becomes a task in one step. Start it, and Bud makes a sandbox on a new dev/ branch, starts its dev server and hands the agent the task.
- Make taskThe thread’s text, a screenshot with the point marked and its source line.
- StartA fresh checkout, its dev server and the agent, on its own branch.
- Approve & pushOnly approval pushes, and only the task’s branch.
The factory
Every step is a column on the board
Watch it work,
in the chat or its terminal.
Agent view puts the run’s live preview beside the agent. Read its whole session as a chat, or switch to the real terminal in its sandbox.
- ChatPrompts, replies, tool calls and edits with their diffs, live. Send text and images, or Stop.
- TerminalThe agent’s own interface, the dev server’s output and a shell in the checkout.
- Live previewPick an element on the run’s preview and say what should change.
Agent view
Give the home headline more room
$ pnpm dev --port 41873 VITE v8.3.5 ready in 412 ms ➜ Local: http://127.0.0.1:41873/ 12:04:31 [vite] hmr update /app/home.tsx 12:04:58 [vite] hmr update /app/home.tsx
Know who’s waiting,
at a glance.
The Agents screen lists every session, the ones waiting for someone first: a question, a review or a failure. Start new work from one message, and with herdr in each sandbox, see live whether an agent works, needs input or is done.
- Every sessionWaiting first, then working, then ended, with search.
- New work in one messageWhat should the agent do? A task, and its run, in one step.
- Live statusWorking, Needs input or Done, within a second of a change.
Sessions
5 sessions · 3 waiting
Your machine,
or a fresh one.
Agents work where your sandbox plugin puts them. local() makes a Git worktree for each run on your machine, for trying the factory with tasks you trust. boat() gives each run its own Ubuntu machine on boat.dev, asleep while it waits for you.
bud.config.ts
import { defineConfig } from '@bud.sh/app'
import { boat, opencode } from '@bud.sh/app/plugins'
export default defineConfig({
routes: ['/'],
plugins: [boat(), opencode()],
factory: {
setup: 'pnpm install',
dev: { command: 'pnpm dev --port $PORT', port: 5173 },
herdr: true,
},
})Your checkout stays put
Each run has its own checkout and branch.
OpenCode by default
Any model OpenCode supports, or a harness of your own.
Credentials stay home
The push token never reaches the agent.
Shown once it’s set up
Until then, bud doctor says what’s missing.
Give your next change
a little Bud.
Add Bud to Vite, pick a few pages and start the conversation. Free, and one npm install away.