Repository navigation
Releases
Releases · cvelasquez/agent-workbench
v1.0.1
Fixed
- OpenCode 2.2.7 sessions can start and resume, with history, questions, images,
queued messages and activity updates. OpenCode 1 remains supported. - CLI startup failures now suggest checking CLI and Agent Workbench updates,
with the original error, copying, retrying and update instructions.
v1.0.0
Added
- Native voice controls in the message box. Dictation with Claude Code,
live conversation with Codex, and both dictation and live conversation with
Antigravity CLI, depending on the installed CLI version. Hold the dictation
button or Space for a second to dictate. Dictated text returns to the message
box for review and sending. Audio is handled by the CLI on its computer. - Locate a project after moving its folder or changing PCs. Pick the new
folder, preview the conversations that will appear together, and save a local
association. Conversations in subfolders follow the project too. Old history
stays intact and can continue in a new session in the new folder, including
with the same CLI. Available on the host computer only. - File attachments in notes. Add files alongside images, download them, and
put the note and its attachments in the message box. Shift+Enter continues
numbered and bulleted lists in notes too. - Android app 1.0.0: share files from other apps to a note on your computer,
and download note attachments to a location you choose on your phone. - More Codex menus as cards in the conversation: command approvals, file
edits, terminal input, MCP tools, plan choices and questions. Recognition
handles wrapped lines and narrow terminals, including the phone layout. - More Antigravity CLI features: image attachments and images in history,
question cards, plans and Markdown artifacts, running subagents, and token
counts read from conversation history. - More terminal keys on phones: Enter and 1, 2, 3 for CLI menus, plus more
navigation, editing and control keys in the console.
Changed
- Continuing with another CLI leaves the continuation editable in the message
box so you can add instructions and choose the model before sending. The
continuation asks the agent to preserve completed work, referenced plans and
pending approvals; switching CLI does not approve a plan.
Conversations kept only in the backup can continue with the same CLI too. - Compact appears when hovering over or focusing the context meter, even
below 70%; from 70% it stays visible. - With no saved panel preference, Memory is visible by default when more
than one CLI is available. - The README in all nine languages describes the new features and links to the
official YouTube channel.
Fixed
- Codex permission changes can be requested during a session, with feedback
until the CLI confirms them. The initial model is not assumed before the
session reports it. - Codex completion is detected in background tabs. Unrecognized open menus
count as waiting so a message cannot land inside them. - Resizing the terminal no longer leaves stale text beyond the current width,
which could prevent Codex menus from being recognized. - Codex session Markdown documents and links with spaces open correctly.
- The message box shows Stop only while the agent is working or waiting.
v0.9.1
Added
- Move an open conversation to a separate branch with Claude Code, Codex or
OpenCode, keeping its context. Start from the conversation toolbar or its
row in the project sidebar. - See Claude Code's suggested next message in the empty message box and accept
it with Tab or the button on a phone. - Codex conversations gain controls for models and permissions, plans,
recognized questions and approvals, and improvements to queued messages and
input recovery. Available controls depend on the installed Codex version. - Collapse the conversation toolbar while keeping the context and plan meters
visible. Each view remembers its own setting.
Changed
- A message sent to an idle CLI appears immediately in the conversation while
it is being delivered. Long conversation histories load more promptly. - Changes shows the last known state while refreshing after switching tabs.
Fixed
- Claude Code's existing input is set aside before the app sends a message or
command, so the two do not get joined together. - Codex's permission selector follows the options supported by the CLI.
v0.9.0
Added
- Schedule a message. The clock in the message box sends what you wrote on
its own at the time you pick (in an hour, tomorrow at 9 AM, or a day and a
time up to 30 days ahead), in the same conversation, with its context. With
Claude Code, Codex, OpenCode, Pi and, once its status line is set up,
Antigravity CLI. It's off by default: turn on Schedule messages in
Settings.- If the agent is working at that time, the message waits for it to finish;
if the tab is asleep, the app opens the CLI and sends it. Until then it
waits at the end of the conversation with Send now and Cancel
sending, which puts the text back in the message box, and the tab shows
a small clock. - More than an hour late (the app was closed, the computer asleep), it isn't
sent on its own: it says it wasn't sent, with Send now. Two copies of
the app open at once never send it twice. Turning the setting off pauses
what's scheduled, and closing the tab cancels it, after asking. - The CLIs that don't say when they're ready get it once the app sees them
idle with an empty input box, and it counts as sent when it shows up in the
conversation; if it doesn't, the app says it can't tell whether it arrived
and doesn't send it again. OpenCode gets it through its server, with the
conversation's agent and model. - Text only: a message with images or files can't be scheduled.
- If the agent is working at that time, the message waits for it to finish;
- Copy a request for your agent, in the status line dialog of Claude Code
and Antigravity CLI, copies a short request for an AI agent to add the line
to the CLI's settings for you, without touching the rest of the file. With
scheduled messages on, Settings names the CLI that still needs its status
line for the clock, with Configure. - To message box on a note puts its text and images in the message box of
the active tab, to add to it and send it to the conversation you're in. The
note stays. On the phone, the view switches to the chat. - The Android app 0.9.0 (on Google Play when this version is out):
- Share → Agent Workbench from any app saves images (PNG, JPEG, GIF or
WebP) and text to a note on your computer, a new one or one you pick, with
a comment if you like, and goes back to the app you were in. The phone
keeps no copy, and nothing waits on it if the computer doesn't answer. - Settings → Change address: if your computer's IP address changes, type
the new one instead of pairing again. It's saved only if your computer
answers there, with its fingerprint. When the app can't find your computer,
the connection screen offers it.
- Share → Agent Workbench from any app saves images (PNG, JPEG, GIF or
Changed
- The Android app is built with R8, as Google Play asks from February 2027:
its code goes from 10.5 MB to 0.7 MB.
Fixed
- A question card in a tab whose CLI isn't open (asleep or ended) no longer
takes your click, says "Answered" and then that the CLI didn't confirm: its
options are off, and the card says why. - A question left open when its CLI closed is no longer answered by typing into
the CLI opened later, which doesn't show that menu again and got a "1" at its
prompt: the card says "The CLI closed with this question open". - A Claude Code CLI killed abruptly no longer leaves its tab looking idle: the
status file it leaves behind counts only while its process is alive.
v0.8.1
Added
- Remove a separate branch and lose the new files it has left. When all
that's uncommitted in a branch is new files (screenshots, test scripts, a
build), the remove dialog says how many there are and how much they weigh,
and offers Remove and lose these files. Only what the dialog showed is
deleted: if anything changed in the meantime, nothing is. It isn't offered
with a git repository inside, more than 20,000 files, or a file copied from
the main folder that the branch doesn't ignore, and the dialog says why. A
changed tracked file still holds the removal back.- Ask the agent to commit them no longer asks it whether something should
be discarded: what doesn't belong in the repository stays as it is, and the
agent says which and why.
- Ask the agent to commit them no longer asks it whether something should
- The remove dialog names the program that has the folder open, on Windows:
its name, its executable and its PID, instead of just "another program". - A folder the agent names in the conversation opens in the system's file
explorer with one click, the way a file opens in the Files tab. Not from a
paired device, where it would open on the host's desktop.
Fixed
- Removing a separate branch with paths over 260 characters, on Windows, no
longer leaves it half-deleted: git now runs with long paths on, and if it
lets go of the branch without finishing, the app deletes what's left. A
branch already left like that shows up again in Changes, and removing it
finishes the job. - Switching tabs no longer leaves the conversation above the end when its last
messages have screenshots that load late, and a tab that notified you while
you were in another one opens at the end.
v0.8.0
Added
- Separate branches: several agents on one project without stepping on each
other. New session on a separate branch, from a git project in the
sidebar or from the Changes panel, opens the project on a new branch (or an
existing one) in its own folder next to it,<project>.worktrees/, with its
own tab. The dialog shows the folder and the git command before creating
anything. It's optional: nothing changes until you open one.- The ignored files the branch needs are copied in: what the project's
.worktreeincludeasks for and, with a box ticked by default, the ignored
instructions and memory (CLAUDE.md,AGENTS.md,.agents/memory/).
Never a CLI's configuration. - Its sessions show inside its project in the sidebar, and its tab is marked
with the branch. - The Changes panel lists every branch: what isn't committed yet, how many
commits aren't merged, and whether it's merged. - Remove takes its folder away with
git worktree remove, never with
--force. The notes that changed in the branch go back to the main folder;
if a note changed on both sides, the two versions are merged the way git
merges code, and you only choose where both changed the same lines. The
dialog has a single main button: when something is in the way, the button
is what clears it. - A removed branch's conversation can be reopened (Reopen the branch
opens it again in its own folder, and creates the branch again at its last
commit if it was deleted) or continued in the main folder, with the same
CLI or another one. - A branch the app created whose folder was removed stays listed, with
Delete branch (git branch -d, so only once it's merged).
- The ignored files the branch needs are copied in: what the project's
- Working as a team on those branches. For each branch, Changes says how
far its base has moved on, whether merging it would conflict, and which other
branch touches the same files.- See changes shows its commits and files against the base.
- Ask for a review opens another CLI in the branch's folder, read-only
when that CLI has a way to be (Claude Code's plan mode, Codex's read-only
sandbox, Antigravity's plan mode, Pi without its edit tools), and the row
shows its verdict. Send to the branch and Catch up leave the request
in the branch agent's message box, without sending it. - Merge into the base runs
git merge --ff-onlyin the base's folder:
no commit is created, and git refuses if the base has moved on. Merging
into the main folder brings the branch's notes back too.
- Your plan's usage limits, next to the context meter. How much of each
window you've used (5 hours, the week, or the month on Codex's free plan) and
when each one resets, in red from 90%. Codex needs nothing; Claude Code and
Antigravity CLI publish them through their status line. For Claude Code,
Configure gives you the line to paste into~/.claude/settings.json, and
it only works with a subscription plan. OpenCode and Pi don't publish their
limits. - Compact. From 70% of the context, a button in the meter's row sends
/compactto the CLI, without touching what you're writing. - Edit a queued message. Each queued message has Edit, and ↑ in the
empty message box does the same, as in the CLI: the queue comes out of the
CLI and back to the box to fix, and it's queued again when you send it. All
queued messages come out together, because no CLI takes out just one. With
Claude Code, Antigravity CLI and, on Windows, Pi; OpenCode has already stored
the message by then. - The agent's question shows up before you answer it. Claude Code often
writes a question to its history only once it's answered, so the card didn't
show until then. Now the app reads the menu from the CLI's screen while it
waits, and you answer it from the conversation. Before sending any answer,
also from a card further up, the screen is read again: if the question
changed or the menu was touched in the CLI tab, nothing is written and the
card says so.
Changed
- The app now runs git commands that write, only for separate branches:
git worktree add,git worktree remove,git branch -d(only for a branch
the app created and that is merged) andgit merge --ff-only, each after a
dialog that shows it. It still never commits, pushes or rewrites history. - "Continue with…" in the conversation is now an icon of two arrows, with "CLI"
next to it. - Opening a new session from the projects sidebar (the +, a new project or a
separate branch) hides the sidebar; opening one from the history doesn't. - The console at the bottom no longer opens a terminal by itself when you open
or switch tabs: only when you expand it, or with its + and its link. - Checked with the CLIs' latest versions: Claude Code 2.1.309, Codex 0.164,
OpenCode 1.19.4, Antigravity CLI 1.4.6 and Pi 1.4.0.
Fixed
- After compacting, from the button or from the CLI's terminal, the meter
says "not measured" until the next response, instead of the size from before
compacting (or 0 with Codex). Claude Code 2.1.305 and Antigravity CLI 1.4.3
write/compactas one of your messages: it no longer shows as a card, and
"Context compacted" shows in its place. - A Claude Code session that is idle while a command keeps running in the
background (a dev server, a watch loop) no longer shows as working, and no
longer holds back the notification that it finished. - In Antigravity CLI, a first message sent while the CLI asks whether to trust
the folder is no longer lost: nothing is written, the app says why, and the
text goes back to the box. - In a multiple-choice question, a typed answer is turned down with a notice
instead of being sent: the CLI took it as ticking a box, and another option
got picked.
v0.7.0
Added
- Edit a file from the Files tab. A text file open in the viewer, a
.env
for instance, has Edit: change it, and Save (or Ctrl+S) writes it
back with its own line endings. Cancel asks before discarding changes, and Esc
never discards anything.- If the agent changed the file while you were editing, nothing is
overwritten. You discard your changes, or move them to the new version:
it loads in the editor with the lines you changed listed above it, and you
carry them over and save. No copy is saved anywhere, so a.envwith keys
can't end up in a commit by accident. - What you're writing survives switching documents or tabs, a document with
unsaved changes isn't closed by the × or by the limit of open documents, and
reloading the page asks first. - Only files that already exist inside the project: nothing is created,
renamed or deleted. A file over 512 KB, one that isn't plain UTF-8 text, or
a read-only one can be viewed but not saved. - It works from the phone and from a paired computer too.
- Next to ⟳, the viewer also has the button that puts the file's path in your
message.
- If the agent changed the file while you were editing, nothing is
- A message you send while the agent works shows in the conversation. It
waits at the end, marked as queued, until the CLI delivers it: Claude Code
and OpenCode from their history, Pi and Antigravity from what the app sent.
Codex doesn't queue: it reads the message right away.- Force send now makes the agent read it at once: Ctrl+X Ctrl+S in Claude
Code, Alt+M in Antigravity, and in Pi a stop and resend. OpenCode shows the
queue without the button.
- Force send now makes the agent read it at once: Ctrl+X Ctrl+S in Claude
- Fix a message you just sent, with Claude Code. A message you stop before
the agent does anything leaves the conversation and comes back to the message
box, as in the CLI.- ↩ on a message goes back to before it. A dialog offers to undo the
conversation and the code, or only the conversation; the app drives the
CLI's rewind menu, checking its screen at every step, and the message comes
back to the box to edit. - The conversation follows the branches Claude Code leaves when you go back,
and a message stopped and sent again no longer shows twice.
- ↩ on a message goes back to before it. A dialog offers to undo the
- Shift+Enter continues a list in the message box: numbered, lettered or
bulleted.
Changed
- The Files tab no longer shows any CLI's folder. A project opened in your
home folder has~/.claudeinside it: the tree listed it, and the viewer
could open what was in it. Now those folders aren't listed or searched, and
nothing in them is opened, not even through a link or a junction. - The Antigravity model picker offers only the six models Antigravity CLI 1.3.6
has.
Fixed
- Codex sessions compressed by the Codex desktop app show again in the
sidebar. The desktop app compresses old sessions to.jsonl.zst, and the
sidebar lost every Codex session; they're read decompressed in memory now, and
a tab follows Codex whencodex resumereplaces the compressed file. - A failed command in Codex 0.162 no longer shows as successful.
- A new Codex session no longer stays "untitled" in the sidebar, and its date
keeps up while Codex writes.
v0.6.0
Added
- Pi is the fifth CLI. If you have Pi installed and
logged in, it gets what the others have: tabs, its past sessions in the
sidebar, the conversation as cards, the tab dot, the context meter, backup,
search and "Continue with…" in both directions. The conversation follows the
active branch of Pi's session tree, and a tab follows Pi when/new,
/forkor/resumemoves it to another session.- Model and thinking-level pickers. The models are the ones of your Pi
account; Pi has no permission modes. - Pasted images. Pi doesn't attach what you paste, so an image travels as
a file path that the model opens itself. - The app doesn't run
pito find it: it reads the version from Pi's
package. That works with npm and with the pi.dev installer; a standalone
pibinary isn't recognized. - Pi's "Trust project folder?" question is never answered for you. While
it's open, the tab says the CLI is waiting and the message box doesn't
send: the message's Enter would accept it. Answer it in the CLI tab. - A queued message isn't lost when you interrupt. If you interrupt Pi
before it delivers a message you sent while it was working, Pi puts that
message back in its own editor. The app clears it there and returns the
text to the message box, unsent, so the next message doesn't go out glued
to it. - Shared memory reaches Pi through
AGENTS.md.
- Model and thinking-level pickers. The models are the ones of your Pi
- A file the agent names opens with a click. When the agent mentions a
file of the project in its answer —docs/guide.md,src/app.ts:12— the
mention is a link: it opens the file in the Files tab, in its own document
tab. Only what exists in the project becomes a link; a branch name or a
version stays as plain code. - Plans puts a document's path in your message. Each row has the same
button as the rows of the file tree, so you can ask the agent about a plan
without looking for it in Files.
Changed
- The README says what the CLIs do on their own. Agent Workbench sends
nothing anywhere and doesn't change any CLI's settings; a CLI may still check
for updates or send its own usage data, as it would if you opened it by hand. - With no CLI installed, the notice also names Pi. And
~/.pino longer shows
in the "New project" folder picker, installed or not. - Closing a project's last console tab leaves it closed. Another one used
to open at once, so the only way to have no terminal in a project was hiding
the whole console, which closes the terminals of every project. The empty
console offers to open one, and folding and unfolding it opens one again. - Code inside bold text is drawn as code: a file listed as bold with backticks
no longer shows the backticks.
Fixed
- Changing the effort or the model no longer erases the message you were
writing. Picking another effort with a half-written message in the box
emptied the box, in every window. - The copy button of a message is no longer covered by the "Go to your
previous message" arrow. While a message sits under the arrow, its buttons
move to the left of it. - A long message no longer shows
<pasted_content …>tags in the
conversation (Claude Code). Recent versions of the CLI wrap what you paste
in those tags when they save it, and a long message sent from the message
box reaches the CLI as a paste.
v0.5.4
Added
- The tab of an agent that finishes, or stops to wait for you, pulses
twice. It lights up like the selected tab —framed in its project's
color— in two short pulses, at the same moment the notification sounds. With
several projects open, the sound tells you someone finished and the pulse
tells you who. It works with the sound and the system notifications off,
and comes from the same CLIs: the ones that publish their status.
Fixed
- The effort picker shows the effort the CLI is really using after you
reopen it (Claude Code). A CLI that is opened again —the next day, or
after restarting the app— starts with the effort saved in its settings, not
with the last one of the previous run: "max" only lasts for the session. The
picker kept showing "Max", so you couldn't choose it again without going to
the CLI. It now shows the configured effort until the first reply confirms
it; for a resumed session, that's the effort saved for the model the
session uses. - Switching tabs keeps your place in the conversation. If you had scrolled
up to read or copy something, coming back to that tab leaves the
conversation where you left it instead of jumping to the end. The "Jump to
the end" button pulses twice and shows its label, so you notice the end
isn't in view, and counts the messages that arrived in the meantime. A tab
you left at the end still opens at the end.
v0.5.3
Changed
- "Create a folder here" in the "New project" dialog is a button, with
the same look as the rest of the app's buttons, and so is "Create".
Fixed
- What you type in the message box shows up in every open window as you
type: the computer you use over remote access, the one running the app
and the phone. Before, another window only picked it up when it connected,
and the phone kept the text it had when it opened until the app was closed.
Sending from one window also clears the box in the others. - The OneDrive folder shows in the "New project" dialog (Windows). It was
missing, and with it everything stored there, because Windows reports it
as a special kind of folder. Real shortcuts and links to other folders
still don't show.