agent-workbench 0.7.0 → 0.8.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
@@ -38,10 +38,10 @@ 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. 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. |
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, and **Edit** (or ↑ in the empty box) brings it back to the box to fix it. |
42
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
- | **Context meter** | How much of the model's context window the conversation is using. Tokens, never money. |
44
- | **Changes** | The branch, the changed files and their diff. **Read-only**: no commit or push buttons. |
43
+ | **Context meter** | How much of the model's context window the conversation is using. Tokens, never money. From 70%, **Compact** asks the CLI to compact the conversation. Next to it, with Claude Code, Codex and Antigravity CLI, how much of your plan's usage limits you've used and when they reset. |
44
+ | **Changes** | The branch, the changed files and their diff. **Orchestrates agents in parallel**: open the project on a new branch, in its own folder, and several agents work at once without stepping on each other's changes. Changes shows every branch: what isn't committed yet, how many commits it has and whether it's merged. Another CLI reviews a branch without touching it, and you merge it into main with one click. |
45
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
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. |
@@ -53,7 +53,8 @@ CLI.
53
53
  | **Theme** | Light, dark or the system's. The terminal stays dark by default, so the CLIs' colors stay readable. |
54
54
 
55
55
  Optional, and off by default: [shared memory](#shared-memory-between-clis)
56
- between CLIs, a [backup](#backup-of-your-history) of your history,
56
+ between CLIs, a [backup](#backup-of-your-history) of your history, Claude
57
+ Code's [plan usage limits](#claude-code-plan-usage-limits),
57
58
  [remote access](#remote-access-over-ssh) from another computer or a phone, and
58
59
  an [Android app](#the-android-app).
59
60
 
@@ -235,12 +236,35 @@ run from the source code ([below](#from-source)) and **write nothing without
235
236
 
236
237
  </details>
237
238
 
239
+ ### Claude Code: plan usage limits
240
+
241
+ Claude Code only tells how much of your plan's usage limits you've used (the
242
+ 5-hour window and the week) through its *status line*. To see them next to the
243
+ context meter:
244
+
245
+ 1. Open a Claude Code tab and click **Configure**, next to the meter.
246
+ 2. Copy the line it shows and add it to what `~/.claude/settings.json` already
247
+ has. The app doesn't edit that file: you do.
248
+ 3. Within a couple of seconds, or with **Check**, the dialog says
249
+ **Configured**. The limits show up with the next response.
250
+
251
+ Claude Code allows a single status line, so this one replaces any other you
252
+ have, and with it the CLI stops showing some hints at its bottom, such as "esc
253
+ to interrupt". The line runs a small script kept in the app's own folder: it
254
+ saves only the two limits and the session's id, and prints them as a short line
255
+ at the bottom of the CLI. It runs on **every** `claude` session, including the
256
+ ones you open outside the app, and it needs `node` in the `PATH`. Claude Code
257
+ publishes these limits only with a subscription plan, not with an API key.
258
+
259
+ Codex needs nothing: it writes its limits in its own history. Antigravity CLI
260
+ shows them with its status line, below. OpenCode and Pi don't publish them.
261
+
238
262
  ### Antigravity CLI: status and context meter
239
263
 
240
- Antigravity CLI only tells whether it's working or waiting for you, and how
241
- many tokens it has used, through its *status line*. Without it, its tabs work
242
- normally, but the tab's dot says the status is unknown and the meter stays
243
- empty. To turn it on:
264
+ Antigravity CLI only tells whether it's working or waiting for you, how many
265
+ tokens it has used and how much of your quota is left through its *status
266
+ line*. Without it, its tabs work normally, but the tab's dot says the status is
267
+ unknown and the meters stay empty. To turn it on:
244
268
 
245
269
  1. Open an Antigravity tab and click **Configure**, next to the meter.
246
270
  2. Copy the line it shows and add it to what
@@ -250,9 +274,10 @@ empty. To turn it on:
250
274
  **Configured**.
251
275
 
252
276
  The line runs a small script kept in the app's own folder. It saves only each
253
- conversation's status, mode, model and tokens —not your email, quota, plan or
254
- cost, which the CLI also passes to it— and prints nothing, so the CLI's own
255
- status line stays as it was. Once set, it runs on **every** `agy` session,
277
+ conversation's status, mode, model and tokens, and from your quota only how
278
+ much is left and when it resets. It doesn't save your email, plan or cost,
279
+ which the CLI also passes to it, and it prints nothing, so the CLI's own status
280
+ line stays as it was. Once set, it runs on **every** `agy` session,
256
281
  including the ones you open outside the app, and it needs `node` in the
257
282
  `PATH`.
258
283
 
@@ -405,21 +430,27 @@ app keeps on the phone and the permissions it asks for are in
405
430
  you to log in, you do it in its own terminal, and the app doesn't even notice.
406
431
  - **It reads the CLIs' history and writes nothing in their folders.** The table
407
432
  below lists what it reads and what it never opens.
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.
433
+ - **It writes only in its own folders**, plus three things in your projects:
434
+ the shared memory, only if you confirm it; a file you edit and save yourself
435
+ in the Files tab; and the separate branches you open, each in its own folder
436
+ next to the project, with the notes that go back to the main folder when you
437
+ remove or merge one.
411
438
  - **The server listens only on your computer** (`127.0.0.1`), on a random port,
412
439
  with a new random token on every start, and it rejects requests coming from
413
440
  other web pages. Remote access doesn't change that: the port becomes a fixed
414
441
  one, still on `127.0.0.1`, and SSH —which you turn on and control— does the
415
442
  rest.
416
- - **The Changes panel is read-only.** No commit, stage or push: with an agent
417
- editing files, a button that writes history is exactly the kind of thing
418
- where, later, nobody knows who pressed it.
443
+ - **Git: the app never commits, pushes or rewrites history.** It runs four git
444
+ commands that write, each after a confirmation that shows it:
445
+ `git worktree add` to open a branch in its own folder, `git worktree remove`
446
+ (never with `--force`), `git branch -d` (only for a branch the app created
447
+ and that is already merged) and `git merge --ff-only` to merge a branch into
448
+ main without creating a commit. The agents make the commits, in their
449
+ terminal.
419
450
 
420
451
  | CLI | What it reads | What it never opens |
421
452
  |---|---|---|
422
- | Claude Code | From `~/.claude/`: `projects/` (the history, and each project's memory, to import it), `sessions/` (whether the CLI is waiting for you) and `plans/`. For the Plans tab, also the `.md` files the conversation wrote in the project or in that session's temp folder — **only the ones named by the conversation you're viewing**, without browsing any folder | `.credentials.json` or any token |
453
+ | Claude Code | From `~/.claude/`: `projects/` (the history, and each project's memory, to import it), `sessions/` (whether the CLI is waiting for you) and `plans/`; from `settings.json`, only the model and the status line. For the Plans tab, also the `.md` files the conversation wrote in the project or in that session's temp folder — **only the ones named by the conversation you're viewing**, without browsing any folder | `.credentials.json` or any token |
423
454
  | Codex | From `~/.codex/` (or `CODEX_HOME`): `sessions/` and `archived_sessions/` | `auth.json`, `config.toml` or its `*.sqlite` databases |
424
455
  | 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 |
425
456
  | 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 |
@@ -466,21 +497,29 @@ Pi's settings, or the `PI_TELEMETRY=0` environment variable.
466
497
  **What the app writes:**
467
498
 
468
499
  - **In its own configuration folder:** the open tabs, the index cache, the
469
- notes, the archived sessions, unsent messages, the Antigravity status line
470
- script and, if you turn it on, the backup (or in the folder you choose). With
500
+ notes, the archived sessions, unsent messages, the status line scripts of
501
+ Claude Code and Antigravity with what they save, the separate branches it
502
+ created with a copy of each text note it copied into them (to merge the
503
+ notes later) and, if you turn it on, the backup (or in the folder you
504
+ choose). With
471
505
  remote access on, also the list of paired devices: a name, two dates and a
472
506
  hash of each one's credential — never the credential itself.
473
507
  - **In the temp folder:** the images and files you paste or attach; each
474
508
  Antigravity tab's log, which contains your messages, readable only by you and
475
509
  deleted on the first start after it's 24 hours old; and the transcript of a
476
510
  conversation you continue with another CLI, deleted when you close that tab
477
- or after 24 hours.
478
- - **In your projects, two things only:** the shared memory, only if you
511
+ or after 24 hours. To check whether a separate branch would conflict, git
512
+ writes its objects in a temporary folder instead of your repository, and the
513
+ folder is deleted right after.
514
+ - **In your projects, three things only:** the shared memory, only if you
479
515
  confirm, limited to `.agents/memory/`, to what's between its markers in
480
516
  `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.
517
+ a file you edit in the Files tab, when you save it, which only replaces the
518
+ contents of a file that already exists (nothing is created, renamed or
519
+ deleted, and nothing is written in a CLI's folder); and the notes of a
520
+ separate branch, which go back to the main folder when you remove or merge
521
+ the branch. If a note changed on both sides, the two versions are merged the
522
+ way git merges code, and you only choose where both changed the same lines.
484
523
 
485
524
  </details>
486
525
 
@@ -519,6 +558,11 @@ if it doesn't start there either, the problem is that OpenCode installation.
519
558
  **An OpenCode tab says the server closed.** **Relaunch**, in the same bar,
520
559
  starts another server and reconnects the tab to the same session.
521
560
 
561
+ **Claude Code's plan limits don't show.** If the meter offers **Configure**,
562
+ follow [these steps](#claude-code-plan-usage-limits). If it says **no data**,
563
+ the status line is set but hasn't published them yet: they come with each
564
+ session's first response, and only with a subscription plan.
565
+
522
566
  **An Antigravity tab doesn't show its status or the meter.** Look at the
523
567
  `Status line` entry when the app starts, under the CLI. If it says it isn't
524
568
  configured, or that there's another one, follow