agent-workbench 0.5.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,8 +8,8 @@
8
8
  **English** · [Español](https://github.com/cvelasquez/agent-workbench/blob/main/README.es.md) · [简体中文](https://github.com/cvelasquez/agent-workbench/blob/main/README.zh-CN.md) · [日本語](https://github.com/cvelasquez/agent-workbench/blob/main/README.ja.md) · [Português (Brasil)](https://github.com/cvelasquez/agent-workbench/blob/main/README.pt-BR.md) · [Русский](https://github.com/cvelasquez/agent-workbench/blob/main/README.ru.md) · [한국어](https://github.com/cvelasquez/agent-workbench/blob/main/README.ko.md) · [Français](https://github.com/cvelasquez/agent-workbench/blob/main/README.fr.md) · [Deutsch](https://github.com/cvelasquez/agent-workbench/blob/main/README.de.md)
9
9
 
10
10
  **A visual workbench for the coding agents you already use: the Claude Code,
11
- Codex, OpenCode and Antigravity CLIs.** It runs on your computer and opens in
12
- your browser. It uses the CLIs you already have installed and logged in, never
11
+ Codex, OpenCode, Antigravity and Pi CLIs.** It runs on your computer and opens
12
+ in your browser. It uses the CLIs you already have installed and logged in, never
13
13
  touches your credentials, and makes no network calls of its own.
14
14
 
15
15
  ```bash
@@ -21,8 +21,8 @@ npx agent-workbench
21
21
  ## How it works
22
22
 
23
23
  Agent Workbench doesn't talk to any AI service. It starts the CLI you already
24
- have —`claude`, `codex`, `opencode` or `agy`— inside a real terminal, and adds
25
- around it what a terminal alone doesn't give you: tabs, your past
24
+ have —`claude`, `codex`, `opencode`, `agy` or `pi`— inside a real terminal, and
25
+ adds around it what a terminal alone doesn't give you: tabs, your past
26
26
  conversations, the conversation as easy-to-read cards, a context meter, the
27
27
  files that changed and a file tree.
28
28
 
@@ -38,12 +38,12 @@ CLI.
38
38
  | **Tabs** | Several agents at once, from any CLI, each in its own folder. A dot on each tab tells you whether the agent is working, idle or waiting for you. Reloading the page doesn't stop anything: the CLIs run on the server, not in the browser. |
39
39
  | **Fast start** | When you open the app, your tabs come back **asleep**: you can read them in full, and no CLI starts until you click **Open CLI**. |
40
40
  | **History** | Your projects and past conversations in the sidebar, from every CLI, with a filter. Click one to pick it up where you left it, with its CLI. Archive old sessions or a whole project to tidy up: nothing is deleted, and it can be undone. |
41
- | **Conversation** | The messages as cards, live, with tool calls folded. Older messages load as you scroll up. Search, copy any message or code block, and jump back to your previous message (↑) or to the end (↓). A row at the bottom says when your message reached the CLI and whether the agent is still working. Depending on the CLI, you can answer the agent's questions right there. |
42
- | **Message box** | Room to write, paste images, attach files, and long pasted text kept as a tidy chip. What you're typing survives closing the app, and shows up live in every open window. |
41
+ | **Conversation** | The messages as cards, live, with tool calls folded. Older messages load as you scroll up. Search, copy any message or code block, and jump back to your previous message (↑) or to the end (↓). A row at the bottom says when your message reached the CLI and whether the agent is still working. Depending on the CLI, you can answer the agent's questions right there. A file of the project that the agent names opens in the Files tab with one click. With Claude Code, a message you stop before the agent starts comes back to the box so you can fix it, and **↩** on a message goes back to before it: the conversation and, if you want, the code. A message you send while the agent works waits at the end, marked as queued; depending on the CLI, **Force send now** makes the agent read it right away. |
42
+ | **Message box** | Room to write, paste images, attach files, and long pasted text kept as a tidy chip. What you're typing survives closing the app, and shows up live in every open window. Shift+Enter continues a numbered or bulleted list. |
43
43
  | **Context meter** | How much of the model's context window the conversation is using. Tokens, never money. |
44
44
  | **Changes** | The branch, the changed files and their diff. **Read-only**: no commit or push buttons. |
45
- | **Files** | The project's file tree, with search and a preview with syntax highlighting. Open several files at once, each in its own tab; Markdown files open formatted. One click puts a file's path in your message. |
46
- | **Plans** | The plans and `.md` documents the conversation wrote, rendered. |
45
+ | **Files** | The project's file tree, with search and a preview with syntax highlighting. Open several files at once, each in its own tab; Markdown files open formatted. One click puts a file's path in your message. Edit a text file, a `.env` for instance, and save it right there: if the agent changed it while you were editing, nothing is overwritten, and you move your changes to the new version. |
46
+ | **Plans** | The plans and `.md` documents the conversation wrote, rendered. One click puts a document's path in your message. |
47
47
  | **Notes** | A scratchpad next to the conversation, images included. With Claude Code, one click sends a note to a new conversation. |
48
48
  | **Console** | Your system's terminal at the bottom, in the project's folder: PowerShell, cmd or Git Bash on Windows; bash or zsh on macOS and Linux. |
49
49
  | **Continue with…** | With more than one CLI, continue a conversation with another one in the same folder. The new agent starts from a transcript of the last turns. |
@@ -68,20 +68,20 @@ Each session and each tab shows a small badge with its CLI, and the `+` for a
68
68
  new tab lets you pick which one to open. With a single CLI you see none of
69
69
  this.
70
70
 
71
- <img src="https://raw.githubusercontent.com/cvelasquez/agent-workbench/main/assets/captura-clis.png" width="45%" alt="The projects sidebar with sessions from several CLIs, each with its badge, and the + menu with the four CLIs and their versions">
71
+ <img src="https://raw.githubusercontent.com/cvelasquez/agent-workbench/main/assets/captura-clis.png" width="45%" alt="The projects sidebar with sessions from several CLIs, each with its badge, and the + menu with the five CLIs and their versions">
72
72
 
73
73
  **Not every CLI shares the same information**, so a few features depend on the
74
74
  CLI:
75
75
 
76
- | | Claude Code | Codex | OpenCode | Antigravity CLI |
77
- |---|:---:|:---:|:---:|:---:|
78
- | Tab dot: working, idle, waiting for you | ✓ | — | ✓ ¹ | ✓ ² |
79
- | Answer the agent's questions from the conversation | ✓ | — | ✓ ¹ | — |
80
- | Context meter | ✓ | ✓ | ✓ | ✓ ² |
81
- | Mode and model pickers | ✓ | — | — | ✓ |
82
- | Paste images | ✓ | ✓ | ✓ | — |
83
- | Plans tab | ✓ | — | — | — |
84
- | Send a note to a new conversation | ✓ | — | — | — |
76
+ | | Claude Code | Codex | OpenCode | Antigravity CLI | Pi |
77
+ |---|:---:|:---:|:---:|:---:|:---:|
78
+ | Tab dot: working, idle, waiting for you | ✓ | — | ✓ ¹ | ✓ ² | ✓ |
79
+ | Answer the agent's questions from the conversation | ✓ | — | ✓ ¹ | — | — |
80
+ | Context meter | ✓ | ✓ | ✓ | ✓ ² | ✓ |
81
+ | Mode and model pickers | ✓ | — | — | ✓ | ✓ ³ |
82
+ | Paste images | ✓ | ✓ | ✓ | — | ✓ ³ |
83
+ | Plans tab | ✓ | — | — | — | — |
84
+ | Send a note to a new conversation | ✓ | — | — | — | — |
85
85
 
86
86
  The CLI's own terminal is always there for the rest: where there's a "—",
87
87
  questions, for example, are answered in it.
@@ -90,6 +90,9 @@ questions, for example, are answered in it.
90
90
  ([details](#your-data-and-security)).
91
91
  ² Only if you set up its status line
92
92
  ([how](#antigravity-cli-status-and-context-meter)).
93
+ ³ Pi has no permission modes: its pickers are the model and the thinking level.
94
+ And it doesn't attach what you paste: an image travels as a file path that the
95
+ model opens itself.
93
96
 
94
97
  ---
95
98
 
@@ -107,6 +110,7 @@ questions, for example, are answered in it.
107
110
  | Codex | `codex` | [guide](https://learn.chatgpt.com/docs/codex/cli) |
108
111
  | OpenCode | `opencode` | [documentation](https://opencode.ai/docs/) |
109
112
  | Antigravity CLI | `agy` | [guide](https://antigravity.google/docs/cli/getting-started) |
113
+ | Pi | `pi` | [pi.dev](https://pi.dev) |
110
114
 
111
115
  Agent Workbench doesn't include or download any CLI: it finds the ones in your
112
116
  `PATH`. If there are none, it tells you so and doesn't open sessions.
@@ -172,7 +176,7 @@ as in Windows Terminal.
172
176
  ### Shared memory between CLIs
173
177
 
174
178
  Each CLI keeps what it learns about a project in its own place, and the others
175
- can't see it. The **Memory** tab sets up one memory for all four: notes in the
179
+ can't see it. The **Memory** tab sets up one memory for all of them: notes in the
176
180
  project's `.agents/memory/` folder, which every CLI reads and writes —from here
177
181
  or from its own terminal— through `AGENTS.md` and `CLAUDE.md`. The tab is hidden
178
182
  at first: show it from ⚙ Settings.
@@ -182,7 +186,7 @@ touched until you confirm. Setting it up imports the memory Claude Code already
182
186
  had for that project. The app doesn't edit each CLI's global settings: it gives
183
187
  you the snippet to paste yourself.
184
188
 
185
- <img src="https://raw.githubusercontent.com/cvelasquez/agent-workbench/main/assets/captura-memoria.png" width="70%" alt="The Memory tab with the bridge installed for the four CLIs and the imported notes">
189
+ <img src="https://raw.githubusercontent.com/cvelasquez/agent-workbench/main/assets/captura-memoria.png" width="70%" alt="The Memory tab with the bridge installed for the five CLIs and the imported notes">
186
190
 
187
191
  ### Backup of your history
188
192
 
@@ -390,15 +394,20 @@ app keeps on the phone and the permissions it asks for are in
390
394
 
391
395
  ## Your data and security
392
396
 
393
- - **Nothing leaves your computer.** No telemetry, no analytics, no network calls
394
- of its own. Only the CLIs talk to their AI provider, just as they would if you
395
- opened them by hand. The Android app talks only to your computer.
397
+ - **Agent Workbench sends nothing anywhere.** No telemetry, no analytics, no
398
+ network calls of its own. The Android app talks only to your computer.
399
+ - **Each CLI still does on its own what it would do if you opened it by hand:**
400
+ it talks to its AI provider, and it may check for updates or send its own
401
+ usage data. Agent Workbench doesn't add anything to that, and it doesn't turn
402
+ it off either: it doesn't change any CLI's settings. What each CLI sends is
403
+ in its own documentation.
396
404
  - **It never touches your credentials.** There's no login screen: if a CLI asks
397
405
  you to log in, you do it in its own terminal, and the app doesn't even notice.
398
406
  - **It reads the CLIs' history and writes nothing in their folders.** The table
399
407
  below lists what it reads and what it never opens.
400
- - **It writes only in its own folders**, plus one thing in your projects, and
401
- only if you confirm it: the shared memory.
408
+ - **It writes only in its own folders**, plus two things in your projects: the
409
+ shared memory, only if you confirm it, and a file you edit and save yourself
410
+ in the Files tab.
402
411
  - **The server listens only on your computer** (`127.0.0.1`), on a random port,
403
412
  with a new random token on every start, and it rejects requests coming from
404
413
  other web pages. Remote access doesn't change that: the port becomes a fixed
@@ -414,6 +423,7 @@ app keeps on the phone and the permissions it asks for are in
414
423
  | Codex | From `~/.codex/` (or `CODEX_HOME`): `sessions/` and `archived_sessions/` | `auth.json`, `config.toml` or its `*.sqlite` databases |
415
424
  | OpenCode | Its `opencode.db` database, opened read-only, and from it only the sessions, messages and parts; and its model catalog, for the context window size | `auth.json`, `opencode.json`, or the accounts, credentials, permissions and shared-sessions tables |
416
425
  | Antigravity CLI | From `~/.gemini/antigravity-cli/`: each conversation's transcripts, `history.jsonl`, the last conversation of each folder, the model and status line from `settings.json`, and a temporary **copy** of its conversation index; from `~/.gemini/config/projects/`, each project's folder | Its MCP configuration, its entry in the system keychain, the contents of `conversations/`, and `~/.gemini/antigravity/`, which is its IDE |
426
+ | Pi | From `~/.pi/agent/` (or `PI_CODING_AGENT_DIR`): the sessions in `sessions/`, and `models-store.json`, its model catalog, for the context window size and the model picker. From the installed Pi package: its `package.json`, to know the version without running Pi, and its built-in model list | `auth.json`, `models.json`, `settings.json` or its MCP configuration |
417
427
 
418
428
  The [backup importers](#backup-of-your-history), when you run them, also read
419
429
  what their section says. The full list, file by file, is in
@@ -448,6 +458,11 @@ password, and it doesn't reach any tab: each OpenCode tab gets it on its command
448
458
  line (`attach --password`), where other programs running as your user can see
449
459
  it. It only works for that server and stops working when you close the app.
450
460
 
461
+ **What Pi sends on its own.** When it starts, Pi checks pi.dev for its latest
462
+ version and its model catalog, and it reports each install and update there.
463
+ You turn that report off in Pi, not here: `enableInstallTelemetry: false` in
464
+ Pi's settings, or the `PI_TELEMETRY=0` environment variable.
465
+
451
466
  **What the app writes:**
452
467
 
453
468
  - **In its own configuration folder:** the open tabs, the index cache, the
@@ -460,9 +475,12 @@ it. It only works for that server and stops working when you close the app.
460
475
  deleted on the first start after it's 24 hours old; and the transcript of a
461
476
  conversation you continue with another CLI, deleted when you close that tab
462
477
  or after 24 hours.
463
- - **In your projects, one thing only, and only if you confirm:** the shared
464
- memory. It's limited to `.agents/memory/`, to what's between its markers in
465
- `AGENTS.md` and `CLAUDE.md`, and to a few lines at the end of `.gitignore`.
478
+ - **In your projects, two things only:** the shared memory, only if you
479
+ confirm, limited to `.agents/memory/`, to what's between its markers in
480
+ `AGENTS.md` and `CLAUDE.md`, and to a few lines at the end of `.gitignore`;
481
+ and a file you edit in the Files tab, when you save it. That only replaces the
482
+ contents of a file that already exists: nothing is created, renamed or
483
+ deleted, and nothing is written in a CLI's folder.
466
484
 
467
485
  </details>
468
486
 
@@ -473,10 +491,20 @@ it. It only works for that server and stops working when you close the app.
473
491
  ## Troubleshooting
474
492
 
475
493
  **"The "claude" command wasn't found in the PATH", followed by "Also works
476
- with: …"** — the app didn't find any of the four CLIs. Check with
494
+ with: …"** — the app didn't find any of the CLIs. Check with
477
495
  `where claude` on Windows (`which claude` elsewhere), and the same with `codex`,
478
- `opencode` or `agy`. CLIs are looked up at startup: if you installed one while
479
- the app was open, restart it.
496
+ `opencode`, `agy` or `pi`. CLIs are looked up at startup: if you installed one
497
+ while the app was open, restart it.
498
+
499
+ **Pi is installed, but the app doesn't see it.** The app doesn't run `pi` to
500
+ find it: it reads the version from Pi's package, next to the command. That
501
+ works when Pi was installed with npm or with the pi.dev installer; a standalone
502
+ `pi` binary isn't recognized. And if another program called `pi` comes first
503
+ in your `PATH`, the app ignores it and says so in its console.
504
+
505
+ **In a Pi tab, the message box says the CLI is waiting for an answer.** Pi is
506
+ asking whether to trust the project folder. Answer it in the **CLI** tab: the
507
+ app never answers that for you.
480
508
 
481
509
  **OpenCode's history doesn't show up.** Look at the `History` line when the app
482
510
  starts. If it says that Node version doesn't include `node:sqlite`, update Node
@@ -607,5 +635,5 @@ once per version, in a strip you can close, and never again until the next one.
607
635
  MIT. See [`LICENSE`](LICENSE).
608
636
 
609
637
  Agent Workbench is an independent project. It works with the Claude Code,
610
- Codex, OpenCode and Antigravity CLIs, but it is not affiliated with or endorsed
611
- by Anthropic, OpenAI, the OpenCode authors or Google.
638
+ Codex, OpenCode, Antigravity and Pi CLIs, but it is not affiliated with or
639
+ endorsed by Anthropic, OpenAI, the OpenCode authors, Google or Earendil.