aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/agent-automation.mdx (renamed from website/src/content/docs/agent-automation.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/agent-skill.mdx (renamed from website/src/content/docs/agent-skill.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/agents.mdx (renamed from website/src/content/docs/agents.mdx)12
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/cli-reference.mdx (renamed from website/src/content/docs/cli-reference.mdx)13
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/concepts.mdx (renamed from website/src/content/docs/concepts.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/config-reference.mdx (renamed from website/src/content/docs/config-reference.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/configuration.mdx (renamed from website/src/content/docs/configuration.mdx)11
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/how-to-work.mdx (renamed from website/src/content/docs/how-to-work.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/index.mdx (renamed from website/src/content/docs/index.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/install.mdx (renamed from website/src/content/docs/install.mdx)4
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/integrations.mdx (renamed from website/src/content/docs/integrations.mdx)48
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/agent-automation.mdx (renamed from website/src/content/docs/ja/agent-automation.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/agent-skill.mdx (renamed from website/src/content/docs/ja/agent-skill.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/agents.mdx (renamed from website/src/content/docs/ja/agents.mdx)12
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/cli-reference.mdx (renamed from website/src/content/docs/ja/cli-reference.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/concepts.mdx (renamed from website/src/content/docs/ja/concepts.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/config-reference.mdx (renamed from website/src/content/docs/ja/config-reference.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/configuration.mdx (renamed from website/src/content/docs/ja/configuration.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/how-to-work.mdx (renamed from website/src/content/docs/ja/how-to-work.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/index.mdx (renamed from website/src/content/docs/ja/index.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/install.mdx (renamed from website/src/content/docs/ja/install.mdx)4
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/integrations.mdx (renamed from website/src/content/docs/ja/integrations.mdx)46
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/keyboard.mdx (renamed from website/src/content/docs/ja/keyboard.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/marketplace.mdx (renamed from website/src/content/docs/ja/marketplace.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/persistence-remote.mdx (renamed from website/src/content/docs/ja/persistence-remote.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/plugins.mdx (renamed from website/src/content/docs/ja/plugins.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/quick-start.mdx (renamed from website/src/content/docs/ja/quick-start.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/session-state.mdx (renamed from website/src/content/docs/ja/session-state.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/socket-api.mdx (renamed from website/src/content/docs/ja/socket-api.mdx)6
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/troubleshooting.mdx (renamed from website/src/content/docs/ja/troubleshooting.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/ja/windows-beta.mdx (renamed from website/src/content/docs/ja/windows-beta.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/keyboard.mdx (renamed from website/src/content/docs/keyboard.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/marketplace.mdx (renamed from website/src/content/docs/marketplace.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/persistence-remote.mdx (renamed from website/src/content/docs/persistence-remote.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/plugins.mdx (renamed from website/src/content/docs/plugins.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/quick-start.mdx (renamed from website/src/content/docs/quick-start.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/session-state.mdx (renamed from website/src/content/docs/session-state.mdx)4
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/socket-api.mdx (renamed from website/src/content/docs/socket-api.mdx)6
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/troubleshooting.mdx (renamed from website/src/content/docs/troubleshooting.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/windows-beta.mdx (renamed from website/src/content/docs/windows-beta.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/agent-automation.mdx (renamed from website/src/content/docs/zh-cn/agent-automation.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/agent-skill.mdx (renamed from website/src/content/docs/zh-cn/agent-skill.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/agents.mdx (renamed from website/src/content/docs/zh-cn/agents.mdx)12
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/cli-reference.mdx (renamed from website/src/content/docs/zh-cn/cli-reference.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/concepts.mdx (renamed from website/src/content/docs/zh-cn/concepts.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/config-reference.mdx (renamed from website/src/content/docs/zh-cn/config-reference.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/configuration.mdx (renamed from website/src/content/docs/zh-cn/configuration.mdx)8
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/how-to-work.mdx (renamed from website/src/content/docs/zh-cn/how-to-work.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/index.mdx (renamed from website/src/content/docs/zh-cn/index.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/install.mdx (renamed from website/src/content/docs/zh-cn/install.mdx)4
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/integrations.mdx (renamed from website/src/content/docs/zh-cn/integrations.mdx)46
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/keyboard.mdx (renamed from website/src/content/docs/zh-cn/keyboard.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/marketplace.mdx (renamed from website/src/content/docs/zh-cn/marketplace.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/persistence-remote.mdx (renamed from website/src/content/docs/zh-cn/persistence-remote.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/plugins.mdx (renamed from website/src/content/docs/zh-cn/plugins.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/quick-start.mdx (renamed from website/src/content/docs/zh-cn/quick-start.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/session-state.mdx (renamed from website/src/content/docs/zh-cn/session-state.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/socket-api.mdx (renamed from website/src/content/docs/zh-cn/socket-api.mdx)6
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/troubleshooting.mdx (renamed from website/src/content/docs/zh-cn/troubleshooting.mdx)0
-rw-r--r--docs/versions/0.8.0/website/src/content/docs/zh-cn/windows-beta.mdx (renamed from website/src/content/docs/zh-cn/windows-beta.mdx)2
-rw-r--r--docs/versions/0.8.0/website/src/data/config-reference.json (renamed from website/src/data/config-reference.json)22
-rw-r--r--docs/versions/manifest.json10
-rw-r--r--website/latest.json24
63 files changed, 270 insertions, 98 deletions
diff --git a/website/src/content/docs/agent-automation.mdx b/docs/versions/0.8.0/website/src/content/docs/agent-automation.mdx
index c3b1525e..07847ed1 100644
--- a/website/src/content/docs/agent-automation.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/agent-automation.mdx
@@ -81,13 +81,13 @@ Pane input addresses the terminal regardless of its current occupant. Agent inpu
At the CLI, both `pane read` and `agent read` print terminal text directly. The default is UTF-8 text with ANSI escapes stripped; use `--format ansi` or `--ansi` to preserve terminal escapes where the source exposes them. The `detection` source is always plain text. For recent sources, `--lines N` selects the last N rendered terminal rows before optional unwrapping; without it, reads default to 80 rows. For `visible` and `detection`, omitting `--lines` returns the full snapshot, while specifying it keeps the last N newline-delimited lines. The socket API returns the text at `.result.read.text`.
-## Known caveat: alternate-screen output
+## Alternate-screen history reads
-Full-screen agents such as Claude Code and OpenCode may render in the terminal's alternate screen. Alternate-screen rows do not enter Herdr's host scrollback. `--lines` can only request more rows from the pane's available screen and host scrollback; it cannot create missing history. If increasing `--lines` returns no additional response text, the pane is probably using the alternate screen and those response rows are no longer retained. A larger font or smaller pane makes this more likely.
+Full-screen agents such as Claude Code and OpenCode render transcript history in the terminal's alternate screen instead of Herdr's host scrollback. For an idle, recognized agent at the bottom of its transcript, text reads from `recent` or `recent-unwrapped` automatically use the agent's mouse-scroll interface when `--lines` requests more than the visible screen. Herdr collects overlapping pages and returns the viewport to the bottom before completing the read. The same behavior applies to `pane read` when the pane contains that agent; it requires no additional option.
-Ask the agent for concise responses, enlarge the pane or use a smaller font, or use the agent's own transcript and scrolling controls. After scrolling inside the agent, use `--source visible` to read the page it currently renders.
+Other reads remain passive. Herdr does not move the application viewport for `visible`, `detection`, or ANSI reads, output waits and subscriptions, a manually scrolled agent, a direct attachment, or an application that does not report mouse-wheel input. An explicit `agent read --lines N` that needs alternate-screen history returns `agent_not_idle` while the agent is working, blocked, or unknown; wait for idle and retry, or use `--source visible`. Other recent reads return the available screen and host scrollback as before.
-After that failed read, ask the agent to write its complete response as Markdown in a temporary directory and reply only with the file path, then read the file directly. Use this only as a fallback; do not request file output in the initial prompt.
+If a full response is still unavailable, ask the agent to write it as Markdown in a temporary directory and reply only with the file path, then read the file directly.
Successful `agent start`, `agent prompt`, and `agent wait` commands return the current agent at `.result.agent`. `pane wait-output` returns `.result.pane_id`, `.result.matched_line`, and the matched snapshot at `.result.read`.
diff --git a/website/src/content/docs/agent-skill.mdx b/docs/versions/0.8.0/website/src/content/docs/agent-skill.mdx
index d6fe6a14..d9c0f162 100644
--- a/website/src/content/docs/agent-skill.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/agent-skill.mdx
@@ -21,7 +21,7 @@ With the skill installed, an agent can:
- wait for servers, tests, or another agent to finish
- start helper agents in sibling panes
-The skill is not a separate app or service. It is a markdown instruction file for agents.
+The skill is not a separate app or service. It is a markdown instruction file for agents. If Herdr is already installed, run `herdr --skill` to print the release-matched copy bundled with that binary.
## Install it
diff --git a/website/src/content/docs/agents.mdx b/docs/versions/0.8.0/website/src/content/docs/agents.mdx
index ee275d19..2bab31a5 100644
--- a/website/src/content/docs/agents.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/agents.mdx
@@ -14,11 +14,11 @@ Automatic detection works out of the box for common coding agents. The important
| Agent | State authority | Integration role |
| --- | --- | --- |
| Pi | lifecycle hooks when installed; otherwise screen manifest | state and session |
-| OMP | lifecycle hooks when installed | state |
+| OMP | lifecycle hooks when installed | state and session |
| GitHub Copilot CLI | screen manifest | session |
| Devin CLI | screen manifest | session |
| Kimi Code CLI | lifecycle hooks when installed; otherwise screen manifest | state and session |
-| Hermes Agent | lifecycle hooks when installed; otherwise screen manifest | state and session |
+| Hermes Agent | screen manifest | session |
| Qoder CLI | screen manifest | session |
| Droid | screen manifest | session |
| OpenCode | lifecycle plugin when installed; otherwise screen manifest | state and session |
@@ -28,8 +28,8 @@ Automatic detection works out of the box for common coding agents. The important
| Codex | screen manifest | session |
| Cursor Agent CLI | screen manifest | session |
| Amp | screen manifest | none |
-| Grok CLI | screen manifest | none |
-| Antigravity CLI | screen manifest | none |
+| Grok CLI | screen manifest | session |
+| Antigravity CLI | screen manifest | session |
| Kiro CLI | screen manifest | none |
| Maki | screen manifest | none |
@@ -45,12 +45,14 @@ For agents without complete lifecycle hooks, Herdr identifies the foreground pro
The screen snapshot comes from the recent bottom of the pane buffer, not the scrolled viewport. If you scroll back in Herdr, detection still follows the live agent UI at the bottom.
-Claude Code, Codex, GitHub Copilot CLI, Droid, Qoder CLI, and Cursor Agent CLI integrations are intentionally not lifecycle authorities. They provide native session identity for restore, but their hooks do not cover the whole lifecycle. They can miss permission approval results, escape interrupts, or other transitions. For those agents, Herdr still uses screen manifest detection.
+Integrations marked `session` in the table above are intentionally not lifecycle authorities. They provide native session identity for restore, but their hooks do not cover the whole lifecycle. They can miss permission approval results, escape interrupts, or other transitions. For those agents, Herdr still uses screen manifest detection.
## VMs and sandbox wrappers
On Linux and macOS, a host-visible wrapper can hide the real agent process from Herdr. Set `HERDR_AGENT=<agent>` on the wrapper command to tell Herdr which existing agent screen manifest to use. For example, run `HERDR_AGENT=claude fence -- claude` on Linux or `HERDR_AGENT=claude nono run --profile claude-code -- claude` on macOS. The hint is scoped to that foreground process; setting it only inside a VM or container is not visible to Herdr, and you should avoid exporting it globally unless every inherited foreground process should be treated as that agent.
+Some restricted Linux runtimes do not expose a terminal foreground process group. Start the Herdr server with `HERDR_PROCESS_DETECTION=child-groups` to opt into direct child-process-group inference when native detection is unavailable. Native detection remains preferred, and the default `native` mode never performs this inference. The opt-in mode is best effort: a newer background job can be mistaken for the foreground job. The variable is read by the server and requires a restart; set it in the remote server environment rather than on an attaching client.
+
## Blocked state
Blocked detection is deliberately strict for screen-manifest agents. Herdr only marks `blocked` when the live bottom-buffer snapshot matches known visible approval, question, or permission UI. If no manifest rule matches for a known agent, Herdr falls back to `idle` and labels that fallback as `default_known_agent_idle_fallback` in explain output.
diff --git a/website/src/content/docs/cli-reference.mdx b/docs/versions/0.8.0/website/src/content/docs/cli-reference.mdx
index b9f2dc2c..d0f1509a 100644
--- a/website/src/content/docs/cli-reference.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/cli-reference.mdx
@@ -135,10 +135,10 @@ A workspace is the top-level project or work context. Creating one also creates
## Worktrees
```bash
-herdr worktree list [--workspace ID | --cwd PATH] [--json]
-herdr worktree create [--workspace ID | --cwd PATH] [--branch NAME] [--base REF] [--path PATH] [--label TEXT] [--focus] [--no-focus] [--json]
-herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) [--label TEXT] [--focus] [--no-focus] [--json]
-herdr worktree remove --workspace ID [--force] [--json]
+herdr worktree list [--workspace ID | --cwd PATH]
+herdr worktree create [--workspace ID | --cwd PATH] [--branch NAME] [--base REF] [--path PATH] [--label TEXT] [--focus] [--no-focus]
+herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) [--label TEXT] [--focus] [--no-focus]
+herdr worktree remove --workspace ID [--force]
```
Worktrees are normal Herdr workspaces with Git checkout provenance. `worktree create` creates a Git worktree checkout, opens it as a workspace, and groups it with the parent repo workspace. If `--branch` names an existing local branch, Herdr checks it out; otherwise it creates the branch from `--base` or `HEAD`. Without `--path`, Herdr creates the checkout under `<worktrees.directory>/<repo>/<branch-slug>`.
@@ -156,7 +156,7 @@ herdr tab rename <tab_id> <label>
herdr tab close <tab_id>
```
-A tab is another terminal layout inside a workspace. Without `--workspace`, `tab create` uses the active workspace and fails if none exists. Its JSON response exposes `.result.tab.tab_id` and `.result.root_pane.pane_id`.
+A tab is another terminal layout inside a workspace. Without `--workspace`, `tab create` uses the active workspace and fails if none exists. Its JSON response exposes `.result.tab.tab_id` and `.result.root_pane.pane_id`. Closing a workspace's last tab also closes the workspace, matching the TUI close-tab action; when `confirm_close` is enabled and that would also close a whole worktree group, `tab close` returns a `confirmation_required` error instead.
Workspace and tab creation, and pane splitting, leave focus unchanged by default. `--focus` selects the new layout; `--no-focus` states the default explicitly. Without `--cwd`, new terminals follow the configured `terminal.new_cwd` policy, which follows the source pane or workspace by default. Each `--env KEY=VALUE` adds or replaces that variable in the new root shell.
@@ -367,6 +367,7 @@ herdr integration install hermes
herdr integration install qodercli
herdr integration install cursor
herdr integration install mastracode
+herdr integration install grok
herdr integration uninstall pi
herdr integration uninstall omp
herdr integration uninstall claude
@@ -381,6 +382,7 @@ herdr integration uninstall hermes
herdr integration uninstall qodercli
herdr integration uninstall cursor
herdr integration uninstall mastracode
+herdr integration uninstall grok
herdr integration status [--outdated-only]
```
@@ -477,6 +479,7 @@ These meanings apply to reads. For `pane wait-output` only, both `recent` and `r
| `HERDR_CONFIG_PATH` | Override the config file path. |
| `HERDR_SESSION` | Select a named session for CLI commands. |
| `HERDR_SOCKET_PATH` | Low-level socket path override. |
+| `HERDR_PROCESS_DETECTION` | Linux process detection strategy: `native` (default) or opt-in `child-groups`. |
| `HERDR_ENV` | Set to `1` inside Herdr-managed pane processes. |
| `HERDR_PANE_ID` | Public pane id for the running pane process. |
| `HERDR_TAB_ID` | Public tab id for the running pane process. |
diff --git a/website/src/content/docs/concepts.mdx b/docs/versions/0.8.0/website/src/content/docs/concepts.mdx
index 2ac32cc9..2ac32cc9 100644
--- a/website/src/content/docs/concepts.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/concepts.mdx
diff --git a/website/src/content/docs/config-reference.mdx b/docs/versions/0.8.0/website/src/content/docs/config-reference.mdx
index 499ee390..499ee390 100644
--- a/website/src/content/docs/config-reference.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/config-reference.mdx
diff --git a/website/src/content/docs/configuration.mdx b/docs/versions/0.8.0/website/src/content/docs/configuration.mdx
index a5591880..92f5efa0 100644
--- a/website/src/content/docs/configuration.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/configuration.mdx
@@ -256,6 +256,8 @@ Color values accept hex, named colors, `rgb(r,g,b)`, or reset aliases like `rese
The sidebar is the main Herdr dashboard. Search `ui.` in the [Config reference](/docs/config-reference/) for sizing, collapsed mode, Agent panel ordering, mouse behavior, pane borders, and other presentation settings.
+Set `tab_bar_position = "bottom"` under `[ui]` to place the desktop tab row below the terminal panes. Prefix, Navigate, Copy, and Resize mode bars temporarily replace the bottom tab row while active. The default is `"top"`.
+
### Sidebar row layouts
The expanded desktop sidebar renders each inner array in `rows` as one line. These are the complete default layouts:
@@ -432,14 +434,18 @@ Restricting `cjk_ime_agents` avoids showing an extra hardware cursor in unrelate
## Prefix input source switching
-On macOS, Herdr can temporarily switch to the system ASCII-capable input source while prefix commands and prefix-launched modes are active:
+On macOS and Windows, Herdr can temporarily switch to an ASCII-capable input source while prefix commands and prefix-launched modes are active:
```toml
[experimental]
switch_ascii_input_source_in_prefix = true
```
-Herdr restores the previous input source when returning to terminal input or entering a text field. This setting has no effect on other platforms.
+On macOS this switches to the current ASCII-capable keyboard layout; on Windows it switches the IME to English (ASCII) input. Herdr restores the previous input source when returning to terminal input or entering a text field. This setting has no effect on other platforms.
+
+:::caution[Windows support is Korean IME only]
+On Windows, support is currently limited to the Korean IME. With an IME for any other language, this setting leaves the input source unchanged.
+:::
## Environment variables
@@ -448,6 +454,7 @@ Herdr restores the previous input source when returning to terminal input or ent
| `HERDR_CONFIG_PATH` | Override the config file path. |
| `HERDR_SESSION` | Select a named session for CLI commands. |
| `HERDR_SOCKET_PATH` | Low-level socket path override. |
+| `HERDR_PROCESS_DETECTION` | Linux process detection strategy: `native` (default) or opt-in `child-groups`. |
| `HERDR_LOG` | Set log filtering, for example `HERDR_LOG=herdr=debug`. |
| `HERDR_DISABLE_SOUND` | Disable sound playback even when `[ui.sound] enabled = true`. |
diff --git a/website/src/content/docs/how-to-work.mdx b/docs/versions/0.8.0/website/src/content/docs/how-to-work.mdx
index 812aae9f..812aae9f 100644
--- a/website/src/content/docs/how-to-work.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/how-to-work.mdx
diff --git a/website/src/content/docs/index.mdx b/docs/versions/0.8.0/website/src/content/docs/index.mdx
index 1502462d..1502462d 100644
--- a/website/src/content/docs/index.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/index.mdx
diff --git a/website/src/content/docs/install.mdx b/docs/versions/0.8.0/website/src/content/docs/install.mdx
index 19a38e57..54e5a694 100644
--- a/website/src/content/docs/install.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/install.mdx
@@ -96,7 +96,9 @@ Windows binaries are published only on preview releases while native Windows sup
| System | Asset |
| --- | --- |
-| Windows x86_64 beta | `herdr-windows-x86_64.exe` |
+| Windows x86_64 beta | `herdr-windows-x86_64.zip` |
+
+The archive contains `herdr.exe` and its app-local ConPTY runtime. Keep the extracted directory together; do not copy only `herdr.exe`.
## Verify
diff --git a/website/src/content/docs/integrations.mdx b/docs/versions/0.8.0/website/src/content/docs/integrations.mdx
index ea26b892..254612e0 100644
--- a/website/src/content/docs/integrations.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/integrations.mdx
@@ -1,11 +1,11 @@
---
title: Integrations
-description: Install Herdr integrations for Pi, OMP, Claude Code, Codex, GitHub Copilot CLI, Devin CLI, Droid, Kimi Code CLI, OpenCode, Kilo Code CLI, Hermes Agent, Qoder CLI, Cursor Agent CLI, and MastraCode.
+description: Install Herdr integrations for Pi, OMP, Claude Code, Codex, GitHub Copilot CLI, Devin CLI, Droid, Kimi Code CLI, OpenCode, Kilo Code CLI, Hermes Agent, Qoder CLI, Cursor Agent CLI, MastraCode, Antigravity CLI, and Grok CLI.
---
Herdr detects supported agents automatically. Official integrations can add native session identity for restore, lifecycle state reports, or both.
-Use integrations when you want native agent session restore from Claude Code/Codex/Copilot/Devin-style hooks, direct lifecycle reports from Pi/OMP/Kimi/OpenCode/Kilo/Hermes-style hooks or plugins, or both. See [Agents](/docs/agents/) for the full status authority model.
+Use integrations when you want native agent session restore, direct lifecycle reports, or both. See [Agents](/docs/agents/) for the full status authority model.
## Install integrations
@@ -26,6 +26,8 @@ herdr integration install hermes
herdr integration install qodercli
herdr integration install cursor
herdr integration install mastracode
+herdr integration install antigravity-cli
+herdr integration install grok
```
## Uninstall integrations
@@ -45,6 +47,8 @@ herdr integration uninstall hermes
herdr integration uninstall qodercli
herdr integration uninstall cursor
herdr integration uninstall mastracode
+herdr integration uninstall antigravity-cli
+herdr integration uninstall grok
```
## How Herdr uses integrations
@@ -53,14 +57,14 @@ Herdr uses integrations in two different ways:
| Integration type | Agents | Effect |
| --- | --- | --- |
-| Lifecycle authority | Pi, OMP, Kimi Code CLI, OpenCode, Kilo Code CLI, Hermes Agent, MastraCode | When installed and actively reporting for the pane, hook or plugin events author `idle`, `working`, and `blocked`. Herdr does not also use screen manifest fallback for that same lifecycle authority. |
-| Session identity | Claude Code, Codex, GitHub Copilot CLI, Devin CLI, Droid, Qoder CLI, Cursor Agent CLI | The integration reports native session references for restore. State still comes from Herdr's screen manifest detection. |
+| Lifecycle authority | Pi, OMP, Kimi Code CLI, OpenCode, Kilo Code CLI, MastraCode | When installed and actively reporting for the pane, hook or plugin events author `idle`, `working`, and `blocked`. Herdr does not also use screen manifest fallback for that same lifecycle authority. |
+| Session identity | Claude Code, Codex, GitHub Copilot CLI, Devin CLI, Droid, Qoder CLI, Cursor Agent CLI, Hermes Agent, Antigravity CLI, Grok CLI | The integration reports native session references for restore. State still comes from Herdr's screen manifest detection. |
Custom socket integrations can also report state when they define state that is not visible in the native terminal UI.
-Some integrations report native agent session references. Herdr uses official session references to resume Claude Code, Codex, Devin CLI, Droid, Kimi Code CLI, Qoder CLI, Cursor Agent CLI, GitHub Copilot CLI, Pi, OMP, Hermes Agent, OpenCode, Kilo Code CLI, and MastraCode panes after a Herdr server restart unless `[session] resume_agents_on_restore = false` disables it.
+Some integrations report native agent session references. Herdr uses official session references to resume Claude Code, Codex, Devin CLI, Droid, Kimi Code CLI, Qoder CLI, Cursor Agent CLI, Grok CLI, GitHub Copilot CLI, Pi, OMP, Hermes Agent, OpenCode, Kilo Code CLI, MastraCode, and Antigravity CLI panes after a Herdr server restart unless `[session] resume_agents_on_restore = false` disables it.
-Native session restore requires current Herdr integrations: Pi integration version `2`, OMP version `3`, Claude Code version `6`, Codex version `5`, GitHub Copilot CLI version `2`, Devin CLI version `2`, Droid version `2`, Kimi Code CLI version `3`, Qoder CLI version `2`, Cursor Agent CLI version `1`, OpenCode version `5`, Kilo Code CLI version `1`, Hermes Agent version `2`, or MastraCode version `1`. Check installed versions with `herdr integration status`.
+Native session restore requires current Herdr integrations: Pi integration version `2`, OMP version `3`, Claude Code version `6`, Codex version `5`, GitHub Copilot CLI version `2`, Devin CLI version `2`, Droid version `2`, Kimi Code CLI version `3`, Qoder CLI version `2`, Cursor Agent CLI version `1`, Grok CLI version `1`, OpenCode version `5`, Kilo Code CLI version `1`, Hermes Agent version `2`, MastraCode version `1`, or Antigravity CLI version `1`. Check installed versions with `herdr integration status`.
## Pi
@@ -92,7 +96,7 @@ Herdr writes the bundled extension to:
~/.omp/agent/extensions/herdr-omp-agent-state.ts
```
-If `PI_CODING_AGENT_DIR` is set, Herdr writes to `$PI_CODING_AGENT_DIR/extensions/herdr-omp-agent-state.ts` instead. Herdr creates the extensions directory when the OMP agent directory already exists. Uninstall removes only that extension file.
+Herdr uses `PI_CODING_AGENT_DIR` as the complete agent directory when set. Otherwise, it uses `$HOME/$PI_CONFIG_DIR/agent` when `PI_CONFIG_DIR` is set, falling back to `~/.omp/agent`. If Pi and OMP resolve to the same extension directory, Herdr refuses the OMP install so the OMP extension cannot be loaded by Pi. Configure separate agent directories before installing both integrations. Herdr creates the extensions directory when the resolved OMP agent directory already exists. Uninstall removes only that extension file.
The OMP integration reports `omp` as the agent label, lifecycle state, and native session identity through Herdr's socket API. It does not require native process detection for the `omp` executable, and Herdr can resume an OMP pane with `omp --resume=<session>` after a server restart.
@@ -210,7 +214,7 @@ herdr integration install hermes
Herdr writes `~/.hermes/plugins/herdr-agent-state/` and enables `herdr-agent-state` in `~/.hermes/config.yaml`. The Hermes config directory must already exist. Restart Hermes after installing so the plugin loads. Uninstall removes the plugin directory and removes `herdr-agent-state` from `plugins.enabled`.
-The plugin reports lifecycle, tool, approval state, and session id while Hermes runs inside a Herdr pane. Herdr can use the reported session id to resume the pane with `hermes --resume <id>`. Native screen manifest detection remains available when the plugin is not installed.
+The plugin reports the resumable session id while Hermes runs inside a Herdr pane. Herdr uses screen manifest detection for `working`, `idle`, and `blocked`, and can use the reported session id to resume the pane with `hermes --resume <id>`.
## Qoder CLI
@@ -256,6 +260,34 @@ Herdr uses `~/.mastracode`. Install writes `hooks/herdr-agent-state.sh` and adds
Herdr resumes stored MastraCode threads with `mastracode --thread <id>`.
+## Antigravity CLI
+
+Install the Antigravity CLI hook:
+
+```bash
+herdr integration install antigravity-cli
+```
+
+Herdr uses `~/.gemini/config/` by default, or `ANTIGRAVITY_CLI_CONFIG_DIR` when set. This is the directory Antigravity CLI reads global customizations from, and it must already exist. Install writes `hooks/herdr-agent-state.sh` (or `herdr-agent-state.ps1` on Windows) and adds a Herdr-owned `herdr` block to `hooks.json`. Antigravity CLI keys `hooks.json` by hook name, so install rewrites only that block and leaves other named hooks untouched. Uninstall removes the `herdr` block and deletes the hook script.
+
+This integration is session-only. It reports the conversation the pane is running and does not report agent state, so Herdr keeps deriving working, idle, and blocked from what Antigravity CLI draws on screen.
+
+The hook runs on `PreInvocation`, so Herdr learns the conversation once the first prompt is sent. From then on Herdr can resume the pane with `agy --conversation <id>` after a Herdr server restart.
+
+## Grok CLI
+
+Install the Grok CLI hook:
+
+```bash
+herdr integration install grok
+```
+
+The hook reports session identity through Grok's `SessionStart` hook while Grok CLI runs inside a Herdr pane. Grok state comes from Herdr's screen manifest detection.
+
+Herdr uses `~/.grok` by default, or `GROK_HOME` when set. The Grok config directory must already exist. Grok merges every `hooks/*.json` file in that directory, so install writes a self-contained `hooks/herdr.json` with the Herdr `SessionStart` entry next to the `hooks/herdr-agent-state.sh` script, and never edits other hook files. Uninstall removes exactly those two Herdr-owned files.
+
+After Grok emits a session start event, Herdr can use the reported session id to resume the pane with `grok --resume <id>`.
+
## Custom status labels
Integrations report lifecycle state as semantic state only. For example, report an agent as `working` without adding display fields to the lifecycle report.
diff --git a/website/src/content/docs/ja/agent-automation.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/agent-automation.mdx
index 2b9a9d30..666d039d 100644
--- a/website/src/content/docs/ja/agent-automation.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/agent-automation.mdx
@@ -81,13 +81,13 @@ herdr agent rename w1:p2 reviewer
CLI では、`pane read` と `agent read` のどちらもターミナルテキストを直接出力します。デフォルトは ANSI エスケープを除去した UTF-8 テキストです。ソースに装飾が含まれる場合、`--format ansi` または `--ansi` でエスケープを残します。`detection` ソースは常にプレーンテキストです。recent 系ソースでは、`--lines N` は折り返し解除の前に末尾の N 描画行を選び、省略時は 80 行です。`visible` と `detection` では、省略時にスナップショット全体を返し、指定時は改行で区切られた末尾 N 行を返します。socket API ではテキストを `.result.read.text` に返します。
-## 既知の注意点: 代替画面の出力
+## 代替画面の履歴読み取り
-Claude Code や OpenCode などの全画面エージェントは、ターミナルの代替画面に描画することがあります。代替画面の行は Herdr のホスト側スクロールバックには入りません。`--lines` で取得できるのは、ペインの現在の画面とホスト側スクロールバックに存在する行だけであり、失われた履歴を作り出すことはできません。`--lines` を増やしても応答テキストが増えない場合、そのペインは代替画面を使っている可能性が高く、応答の行はすでに保持されていません。フォントが大きい場合やペインが小さい場合は、より起こりやすくなります。
+Claude Code や OpenCode などの全画面エージェントは、トランスクリプト履歴を Herdr のホスト側スクロールバックではなく、ターミナルの代替画面に描画します。認識済みのエージェントが idle でトランスクリプトの末尾にあり、`--lines` が表示画面より多い行を要求した場合、`recent` または `recent-unwrapped` のテキスト読み取りはエージェントのマウススクロール操作を自動的に使います。Herdr は重なり合うページを収集し、読み取りが完了する前にビューポートを末尾へ戻します。そのペインに対象エージェントがいる場合、`pane read` にも同じ動作が追加オプションなしで適用されます。
-エージェントに簡潔な応答を求めるか、ペインを広げる、フォントを小さくする、またはエージェント自身のトランスクリプトやスクロール操作を使ってください。エージェント内でスクロールした後、`--source visible` を使うと、現在描画されているページを読み取れます。
+その他の読み取りは受動的なままです。`visible`、`detection`、ANSI 読み取り、出力待機と購読、手動でスクロールされたエージェント、直接アタッチ中のペイン、マウスホイール入力を報告しないアプリケーションでは、Herdr はアプリケーションのビューポートを動かしません。明示的な `agent read --lines N` が代替画面の履歴を必要とする場合、エージェントが working、blocked、または unknown の間は `agent_not_idle` を返します。idle になるまで待って再試行するか、`--source visible` を使ってください。その他の recent 読み取りは従来どおり、利用可能な画面とホスト側スクロールバックを返します。
-その読み取りに失敗した後、エージェントに完全な応答を一時ディレクトリ内へ Markdown 形式で書き込み、ファイルパスだけを返すよう依頼してから、そのファイルを直接読み取ってください。これはフォールバックとしてのみ使い、最初のプロンプトではファイル出力を求めないでください。
+完全な応答を取得できない場合は、一時ディレクトリの Markdown ファイルに応答を書き込み、ファイルパスだけを返すようエージェントに依頼して、そのファイルを直接読み取ってください。
成功した `agent start`、`agent prompt`、`agent wait` は現在のエージェントを `.result.agent` に返します。`pane wait-output` は `.result.pane_id`、`.result.matched_line`、一致したスナップショット `.result.read` を返します。
diff --git a/website/src/content/docs/ja/agent-skill.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/agent-skill.mdx
index ea86f9e6..15120dfa 100644
--- a/website/src/content/docs/ja/agent-skill.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/agent-skill.mdx
@@ -21,7 +21,7 @@ Herdr は別の用途向けに [`herdr.dev/agent-guide.md`](https://herdr.dev/ag
- サーバー、テスト、別のエージェントの完了を待つ
- 隣のペインでヘルパーエージェントを起動する
-このスキルは独立したアプリやサービスではありません。エージェント向けの markdown 指示ファイルです。
+このスキルは独立したアプリやサービスではありません。エージェント向けの markdown 指示ファイルです。Herdr がすでにインストールされている場合は、`herdr --skill` を実行すると、そのバイナリのリリースと一致する同梱コピーを表示できます。
## インストールする
diff --git a/website/src/content/docs/ja/agents.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/agents.mdx
index 4b08da69..1432434e 100644
--- a/website/src/content/docs/ja/agents.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/agents.mdx
@@ -14,11 +14,11 @@ Herdr は複数のコーディングエージェントを同時に動かすたã‚
| エージェント | 状態の権威 | インテグレーションの役割 |
| --- | --- | --- |
| Pi | インストール時はライフサイクルフック。それ以外はスクリーンマニフェスト | 状態とセッション |
-| OMP | インストール時はライフサイクルフック | 状態 |
+| OMP | インストール時はライフサイクルフック | 状態とセッション |
| GitHub Copilot CLI | スクリーンマニフェスト | セッション |
| Devin CLI | スクリーンマニフェスト | セッション |
| Kimi Code CLI | インストール時はライフサイクルフック。それ以外はスクリーンマニフェスト | 状態とセッション |
-| Hermes Agent | インストール時はライフサイクルフック。それ以外はスクリーンマニフェスト | 状態とセッション |
+| Hermes Agent | スクリーンマニフェスト | セッション |
| Qoder CLI | スクリーンマニフェスト | セッション |
| Droid | スクリーンマニフェスト | セッション |
| OpenCode | インストール時はライフサイクルプラグイン。それ以外はスクリーンマニフェスト | 状態とセッション |
@@ -28,8 +28,8 @@ Herdr は複数のコーディングエージェントを同時に動かすたã‚
| Codex | スクリーンマニフェスト | セッション |
| Cursor Agent CLI | スクリーンマニフェスト | セッション |
| Amp | スクリーンマニフェスト | なし |
-| Grok CLI | スクリーンマニフェスト | なし |
-| Antigravity CLI | スクリーンマニフェスト | なし |
+| Grok CLI | スクリーンマニフェスト | セッション |
+| Antigravity CLI | スクリーンマニフェスト | セッション |
| Kiro CLI | スクリーンマニフェスト | なし |
| Maki | スクリーンマニフェスト | なし |
@@ -45,12 +45,14 @@ Herdr はまず各ペインのフォアグラウンドプロセスを検出しã�
スクリーンスナップショットは、スクロールされたビューポートではなく、ペインバッファの直近の下部から取得されます。Herdr でスクロールバックしても、検出は下部のライブなエージェント UI を追い続けます。
-Claude Code、Codex、GitHub Copilot CLI、Droid、Qoder CLI、Cursor Agent CLI のインテグレーションは、意図的にライフサイクル権威にしていません。これらは復元のためのネイティブセッション識別を提供しますが、フックがライフサイクル全体をカバーしていません。許可承認の結果、Esc による中断、その他の遷移を見逃すことがあります。これらのエージェントでは、Herdr は引き続きスクリーンマニフェスト検出を使います。
+上の表で「セッション」と記載されたインテグレーションは、意図的にライフサイクル権威にしていません。これらは復元のためのネイティブセッション識別を提供しますが、フックがライフサイクル全体をカバーしていません。許可承認の結果、Esc による中断、その他の遷移を見逃すことがあります。これらのエージェントでは、Herdr は引き続きスクリーンマニフェスト検出を使います。
## VM とサンドボックスラッパー
Linux と macOS では、ホストから見えるラッパーが実際のエージェントプロセスを Herdr から隠すことがあります。ラッパーのコマンドに `HERDR_AGENT=<agent>` を設定して、どの既存エージェントのスクリーンマニフェストを使うべきか Herdr に伝えてください。たとえば、Linux では `HERDR_AGENT=claude fence -- claude`、macOS では `HERDR_AGENT=claude nono run --profile claude-code -- claude` を実行します。このヒントはそのフォアグラウンドプロセスにスコープされます。VM やコンテナの内部だけで設定しても Herdr からは見えません。また、継承されるすべてのフォアグラウンドプロセスをそのエージェントとして扱いたいのでない限り、グローバルな export は避けてください。
+一部の制限された Linux ランタイムでは、ターミナルのフォアグラウンドプロセスグループが公開されません。ネイティブ検出が利用できない場合に直接の子プロセスグループ推論を有効にするには、Herdr サーバーを `HERDR_PROCESS_DETECTION=child-groups` 付きで起動します。ネイティブ検出が引き続き優先され、デフォルトの `native` モードではこの推論を行いません。このオプトインモードはベストエフォートで、新しいバックグラウンドジョブをフォアグラウンドと誤認する可能性があります。この変数はサーバーが読み取るため再起動が必要です。アタッチするクライアントではなく、リモートサーバーの環境に設定してください。
+
## blocked 状態
スクリーンマニフェスト方式のエージェントでは、blocked の検出は意図的に厳格です。Herdr が `blocked` と判定するのは、ライブの下部バッファスナップショットが既知の承認・質問・許可 UI にマッチしたときだけです。既知のエージェントでどのマニフェストルールにもマッチしない場合、Herdr は `idle` にフォールバックし、explain の出力ではそのフォールバックに `default_known_agent_idle_fallback` というラベルを付けます。
diff --git a/website/src/content/docs/ja/cli-reference.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/cli-reference.mdx
index 3b96247e..3cc1e13b 100644
--- a/website/src/content/docs/ja/cli-reference.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/cli-reference.mdx
@@ -131,10 +131,10 @@ herdr workspace create --cwd ~/project --label api --no-focus
## Worktree
```bash
-herdr worktree list [--workspace ID | --cwd PATH] [--json]
-herdr worktree create [--workspace ID | --cwd PATH] [--branch NAME] [--base REF] [--path PATH] [--label TEXT] [--focus] [--no-focus] [--json]
-herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) [--label TEXT] [--focus] [--no-focus] [--json]
-herdr worktree remove --workspace ID [--force] [--json]
+herdr worktree list [--workspace ID | --cwd PATH]
+herdr worktree create [--workspace ID | --cwd PATH] [--branch NAME] [--base REF] [--path PATH] [--label TEXT] [--focus] [--no-focus]
+herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) [--label TEXT] [--focus] [--no-focus]
+herdr worktree remove --workspace ID [--force]
```
worktree は、Git チェックアウトの出自情報を持つ通常の Herdr ワークスペースです。`worktree create` は Git worktree のチェックアウトを作成し、ワークスペースとして開き、親リポジトリのワークスペースとグループ化します。`--branch` が既存のローカルブランチを指す場合はそれをチェックアウトし、そうでなければ `--base` または `HEAD` からブランチを作成します。`--path` がない場合、チェックアウトは `<worktrees.directory>/<repo>/<branch-slug>` の下に作成されます。
diff --git a/website/src/content/docs/ja/concepts.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/concepts.mdx
index 640ba8a4..640ba8a4 100644
--- a/website/src/content/docs/ja/concepts.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/concepts.mdx
diff --git a/website/src/content/docs/ja/config-reference.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/config-reference.mdx
index 7bbb60aa..7bbb60aa 100644
--- a/website/src/content/docs/ja/config-reference.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/config-reference.mdx
diff --git a/website/src/content/docs/ja/configuration.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/configuration.mdx
index 0eba298d..e2b5ea5e 100644
--- a/website/src/content/docs/ja/configuration.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/configuration.mdx
@@ -428,14 +428,18 @@ cjk_ime_agents = ["claude", "pi", "codex"]
## プレフィックス入力ソースの切り替え
-macOS では、プレフィックスコマンドとプレフィックスから起動したモードがアクティブな間、Herdr がシステムの ASCII 対応入力ソースへ一時的に切り替えるようにできます:
+macOS と Windows では、プレフィックスコマンドとプレフィックスから起動したモードがアクティブな間、Herdr が ASCII 対応の入力ソースへ一時的に切り替えるようにできます:
```toml
[experimental]
switch_ascii_input_source_in_prefix = true
```
-ターミナル入力に戻るかテキストフィールドに入ると、Herdr は以前の入力ソースを復元します。この設定は他のプラットフォームには影響しません。
+macOS ではその時点の ASCII 対応キーボードレイアウトへ切り替えます。Windows では IME を英語(ASCII)入力へ切り替えます。ターミナル入力に戻るかテキストフィールドに入ると、Herdr は以前の入力ソースを復元します。この設定は他のプラットフォームには影響しません。
+
+:::caution[Windows では韓国語 IME のみ対応]
+Windows でのサポートは現時点で韓国語 IME に限定されています。それ以外の言語の IME を使用している場合、この設定は入力ソースを変更しません。
+:::
## 環境変数
diff --git a/website/src/content/docs/ja/how-to-work.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/how-to-work.mdx
index 0365df0b..0365df0b 100644
--- a/website/src/content/docs/ja/how-to-work.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/how-to-work.mdx
diff --git a/website/src/content/docs/ja/index.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/index.mdx
index ce26d5fb..ce26d5fb 100644
--- a/website/src/content/docs/ja/index.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/index.mdx
diff --git a/website/src/content/docs/ja/install.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/install.mdx
index 30753259..b894c132 100644
--- a/website/src/content/docs/ja/install.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/install.mdx
@@ -96,7 +96,9 @@ mv herdr-linux-x86_64 ~/.local/bin/herdr
| システム | アセット |
| --- | --- |
-| Windows x86_64 ベータ | `herdr-windows-x86_64.exe` |
+| Windows x86_64 ベータ | `herdr-windows-x86_64.zip` |
+
+アーカイブには `herdr.exe` とアプリローカルの ConPTY ランタイムが含まれます。展開したディレクトリをまとめて保持し、`herdr.exe` だけをコピーしないでください。
## 動作確認
diff --git a/website/src/content/docs/ja/integrations.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/integrations.mdx
index fe4e41b1..3283a808 100644
--- a/website/src/content/docs/ja/integrations.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/integrations.mdx
@@ -1,11 +1,11 @@
---
title: インテグレーション
-description: Pi、OMP、Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Kimi Code CLI、OpenCode、Kilo Code CLI、Hermes Agent、Qoder CLI、Cursor Agent CLI、MastraCode 向けの Herdr インテグレーションをインストールします。
+description: Pi、OMP、Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Kimi Code CLI、OpenCode、Kilo Code CLI、Hermes Agent、Qoder CLI、Cursor Agent CLI、MastraCode、Antigravity CLI、Grok CLI 向けの Herdr インテグレーションをインストールします。
---
Herdr は対応エージェントを自動的に検出します。公式インテグレーションは、復元のためのネイティブセッション識別、ライフサイクル状態の報告、またはその両方を追加できます。
-Claude Code/Codex/Copilot/Devin 系のフックによるエージェントネイティブのセッション復元、Pi/OMP/Kimi/OpenCode/Kilo/Hermes/MastraCode 系のフックまたはプラグインによる直接のライフサイクル報告、あるいはその両方が欲しいときにインテグレーションを使ってください。状態権威モデルの全体像は[エージェント](/ja/docs/agents/)を参照してください。
+エージェントネイティブのセッション復元、直接のライフサイクル報告、またはその両方が欲しいときにインテグレーションを使ってください。状態権威モデルの全体像は[エージェント](/ja/docs/agents/)を参照してください。
## インテグレーションをインストールする
@@ -26,6 +26,8 @@ herdr integration install hermes
herdr integration install mastracode
herdr integration install qodercli
herdr integration install cursor
+herdr integration install antigravity-cli
+herdr integration install grok
```
## インテグレーションをアンインストールする
@@ -45,6 +47,8 @@ herdr integration uninstall hermes
herdr integration uninstall mastracode
herdr integration uninstall qodercli
herdr integration uninstall cursor
+herdr integration uninstall antigravity-cli
+herdr integration uninstall grok
```
## Herdr がインテグレーションをどう使うか
@@ -53,14 +57,14 @@ Herdr はインテグレーションを 2 つの異なる方法で使います:
| インテグレーションの種類 | エージェント | 効果 |
| --- | --- | --- |
-| ライフサイクル権威 | Pi、OMP、Kimi Code CLI、OpenCode、Kilo Code CLI、Hermes Agent、MastraCode | インストールされ、そのペインについて能動的に報告している間は、フックまたはプラグインのイベントが `idle`、`working`、`blocked` を決定します。同じライフサイクル権威に対して、Herdr はスクリーンマニフェストのフォールバックを併用しません。 |
-| セッション識別 | Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Qoder CLI、Cursor Agent CLI | インテグレーションは復元用のネイティブセッション参照を報告します。状態は引き続き Herdr のスクリーンマニフェスト検出から得られます。 |
+| ライフサイクル権威 | Pi、OMP、Kimi Code CLI、OpenCode、Kilo Code CLI、MastraCode | インストールされ、そのペインについて能動的に報告している間は、フックまたはプラグインのイベントが `idle`、`working`、`blocked` を決定します。同じライフサイクル権威に対して、Herdr はスクリーンマニフェストのフォールバックを併用しません。 |
+| セッション識別 | Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Qoder CLI、Cursor Agent CLI、Hermes Agent、Antigravity CLI、Grok CLI | インテグレーションは復元用のネイティブセッション参照を報告します。状態は引き続き Herdr のスクリーンマニフェスト検出から得られます。 |
カスタムソケットインテグレーションも、ネイティブのターミナル UI では見えない状態を定義する場合に状態を報告できます。
-一部のインテグレーションは、エージェントのネイティブセッション参照を報告します。Herdr は公式のセッション参照を使って、`[session] resume_agents_on_restore = false` で無効化されていない限り、Herdr サーバーの再起動後に Claude Code、Codex、Devin CLI、Droid、Kimi Code CLI、Qoder CLI、Cursor Agent CLI、GitHub Copilot CLI、Pi、OMP、Hermes Agent、OpenCode、Kilo Code CLI、MastraCode のペインを resume します。
+一部のインテグレーションは、エージェントのネイティブセッション参照を報告します。Herdr は公式のセッション参照を使って、`[session] resume_agents_on_restore = false` で無効化されていない限り、Herdr サーバーの再起動後に Claude Code、Codex、Devin CLI、Droid、Kimi Code CLI、Qoder CLI、Cursor Agent CLI、Grok CLI、GitHub Copilot CLI、Pi、OMP、Hermes Agent、OpenCode、Kilo Code CLI、MastraCode、Antigravity CLI のペインを resume します。
-エージェントネイティブのセッション復元には最新の Herdr インテグレーションが必要です: Pi インテグレーションはバージョン `2`、OMP は `3`、Claude Code は `6`、Codex は `5`、GitHub Copilot CLI は `2`、Devin CLI は `2`、Droid は `2`、Kimi Code CLI は `3`、Qoder CLI は `2`、Cursor Agent CLI は `1`、OpenCode は `5`、Kilo Code CLI は `1`、Hermes Agent は `2`、MastraCode は `1` です。インストール済みバージョンは `herdr integration status` で確認してください。
+エージェントネイティブのセッション復元には最新の Herdr インテグレーションが必要です: Pi インテグレーションはバージョン `2`、OMP は `3`、Claude Code は `6`、Codex は `5`、GitHub Copilot CLI は `2`、Devin CLI は `2`、Droid は `2`、Kimi Code CLI は `3`、Qoder CLI は `2`、Cursor Agent CLI は `1`、Grok CLI は `1`、OpenCode は `5`、Kilo Code CLI は `1`、Hermes Agent は `2`、MastraCode は `1`、Antigravity CLI は `1` です。インストール済みバージョンは `herdr integration status` で確認してください。
## Pi
@@ -210,7 +214,7 @@ herdr integration install hermes
Herdr は `~/.hermes/plugins/herdr-agent-state/` を書き込み、`~/.hermes/config.yaml` で `herdr-agent-state` を有効にします。Hermes の設定ディレクトリはあらかじめ存在している必要があります。プラグインを読み込ませるため、インストール後に Hermes を再起動してください。アンインストールはプラグインディレクトリを削除し、`plugins.enabled` から `herdr-agent-state` を削除します。
-このプラグインは、Hermes が Herdr のペイン内で動いている間、ライフサイクル、ツール、承認状態、セッション id を報告します。Herdr は報告されたセッション id を使って `hermes --resume <id>` でペインを resume できます。プラグインがインストールされていないときは、スクリーンマニフェスト検出が引き続き利用できます。
+このプラグインは、Hermes が Herdr のペイン内で動いている間、resume 可能なセッション id を報告します。Herdr は `working`、`idle`、`blocked` にスクリーンマニフェスト検出を使い、報告されたセッション id で `hermes --resume <id>` としてペインを resume できます。
## Qoder CLI
@@ -256,6 +260,34 @@ Herdr は `~/.mastracode` を使います。インストールは `hooks/herdr-a
Herdr は保存された MastraCode スレッドを `mastracode --thread <id>` で resume します。
+## Antigravity CLI
+
+Antigravity CLI フックをインストールします:
+
+```bash
+herdr integration install antigravity-cli
+```
+
+Herdr はデフォルトで `~/.gemini/config/` を使い、`ANTIGRAVITY_CLI_CONFIG_DIR` が設定されていればそちらを使います。これは Antigravity CLI がグローバルカスタマイズを読み込むディレクトリで、あらかじめ存在している必要があります。インストールは `hooks/herdr-agent-state.sh`(Windows では `herdr-agent-state.ps1`)を書き込み、`hooks.json` に Herdr 所有の `herdr` ブロックを追加します。Antigravity CLI は `hooks.json` をフック名で管理するため、インストールはそのブロックだけを書き換え、ほかの名前付きフックには触れません。アンインストールは `herdr` ブロックとフックスクリプトを削除します。
+
+このインテグレーションはセッション専用です。ペインで実行中の会話を報告しますが、エージェント状態は報告しません。そのため、Herdr は Antigravity CLI の画面表示から `working`、`idle`、`blocked` を引き続き判定します。
+
+フックは `PreInvocation` で実行されるため、最初のプロンプト送信後に Herdr が会話を認識します。それ以降、Herdr サーバーの再起動後に `agy --conversation <id>` でペインを resume できます。
+
+## Grok CLI
+
+Grok CLI フックをインストールします:
+
+```bash
+herdr integration install grok
+```
+
+このフックは、Grok CLI が Herdr のペイン内で動いている間、Grok の `SessionStart` フックを通じてセッション識別を報告します。Grok の状態は Herdr のスクリーンマニフェスト検出から得られます。
+
+Herdr はデフォルトで `~/.grok` を使い、`GROK_HOME` が設定されていればそちらを使います。Grok の設定ディレクトリはあらかじめ存在している必要があります。Grok はそのディレクトリ内のすべての `hooks/*.json` ファイルを統合するため、インストールは Herdr の `SessionStart` エントリだけを含む `hooks/herdr.json` と `hooks/herdr-agent-state.sh` を書き込み、ほかのフックファイルには触れません。アンインストールは Herdr 所有のこの 2 ファイルだけを削除します。
+
+Grok がセッション開始イベントを発行した後、Herdr は報告されたセッション id を使って `grok --resume <id>` でペインを resume できます。
+
## カスタムステータスラベル
インテグレーションは、ライフサイクル状態を意味的な状態としてのみ報告します。たとえば、ライフサイクル報告に表示フィールドを加えず、エージェントを `working` として報告します。
diff --git a/website/src/content/docs/ja/keyboard.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/keyboard.mdx
index f9bb4ac8..24b554c8 100644
--- a/website/src/content/docs/ja/keyboard.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/keyboard.mdx
@@ -15,7 +15,7 @@ Herdr はマウスネイティブです。キーバインドをひとつも覚ã�
プレフィックスはこれを解決します。プレフィックスキー (デフォルト `ctrl+b`) を押すと、次のキー入力はターミナルではなく Herdr に送られます。`prefix+c` は「`ctrl+b` を押して離し、次に `c` を押す」という意味です。何十ものキーを予約する代わりに、ひとつだけ予約します。
-いつでも `prefix+?` を押すと、すべての有効なバインドが表示されます。
+いつでも `prefix+?` を押すと、すべての有効なバインドが表示されます。キーバインドヘルプで `/` を押すと、アクションとショートカットを絞り込めます。Backspace でフィルターを編集し、`ctrl+u` でクリアできます。
## まずこの 5 つを覚える
diff --git a/website/src/content/docs/ja/marketplace.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/marketplace.mdx
index 5f0a5c4c..5f0a5c4c 100644
--- a/website/src/content/docs/ja/marketplace.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/marketplace.mdx
diff --git a/website/src/content/docs/ja/persistence-remote.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/persistence-remote.mdx
index f8d3ff02..f8d3ff02 100644
--- a/website/src/content/docs/ja/persistence-remote.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/persistence-remote.mdx
diff --git a/website/src/content/docs/ja/plugins.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/plugins.mdx
index db5342cd..db5342cd 100644
--- a/website/src/content/docs/ja/plugins.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/plugins.mdx
diff --git a/website/src/content/docs/ja/quick-start.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/quick-start.mdx
index 4de15f61..4de15f61 100644
--- a/website/src/content/docs/ja/quick-start.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/quick-start.mdx
diff --git a/website/src/content/docs/ja/session-state.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/session-state.mdx
index 2567fc3f..ed3e73a6 100644
--- a/website/src/content/docs/ja/session-state.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/session-state.mdx
@@ -38,7 +38,7 @@ Herdr サーバーが停止して再起動すると、元のペインのプロã‚
ペイン画面履歴は、サーバーの完全な再起動後に直近のターミナル内容を復元します。復元されるのは Herdr が表示できるものであって、元のプロセスではありません。
-ペイン出力にはシークレット、トークン、プロンプト、コマンド出力が含まれうるため、これはデフォルトで無効です。Settings > Experiments > pane screen history から、または次の設定で有効にします:
+ペイン出力にはシークレット、トークン、プロンプト、コマンド出力が含まれうるため、これはデフォルトで無効です。設定ファイルで有効にします:
```toml
[experimental]
diff --git a/website/src/content/docs/ja/socket-api.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/socket-api.mdx
index 8995dbae..7b9ee4cc 100644
--- a/website/src/content/docs/ja/socket-api.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/socket-api.mdx
@@ -96,7 +96,7 @@ herdr pane read w1:p2 --source recent --lines 50
| 通知 | `notification.show` |
| クライアント | `client.window_title.set`、`client.window_title.clear` |
| セッション | `session.snapshot` |
-| ワークスペース | `workspace.create`、`workspace.list`、`workspace.get`、`workspace.focus`、`workspace.rename`、`workspace.move`、`workspace.report_metadata`、`workspace.close` |
+| ワークスペース | `workspace.create`、`workspace.list`、`workspace.get`、`workspace.focus`、`workspace.rename`、`workspace.move`、`workspace.move_block`、`workspace.report_metadata`、`workspace.close` |
| Worktree | `worktree.list`、`worktree.create`、`worktree.open`、`worktree.remove` |
| タブ | `tab.create`、`tab.list`、`tab.get`、`tab.focus`、`tab.rename`、`tab.move`、`tab.close` |
| ペイン | `pane.split`、`pane.swap`、`pane.move`、`pane.zoom`、`pane.layout`、`pane.process_info`、`pane.neighbor`、`pane.edges`、`pane.focus_direction`、`pane.resize`、`pane.list`、`pane.current`、`pane.get`、`pane.rename`、`pane.send_text`、`pane.send_keys`、`pane.send_input`、`pane.read`、`pane.graphics.info`、`pane.graphics.set`、`pane.graphics.clear`、`pane.graphics.stream`、`pane.report_agent`、`pane.report_agent_session`、`pane.report_metadata`、`pane.clear_agent_authority`、`pane.release_agent`、`pane.close`、`pane.wait_for_output` |
@@ -109,6 +109,8 @@ herdr pane read w1:p2 --source recent --lines 50
`agent.wait` はサーバー所有でイベント駆動です。解決したペイン占有者に固定されるため、置換されたエージェントが待機を満たすことはありません。`agent.prompt` は `until` と `timeout_ms` を持つ省略可能な `wait` オブジェクトを受け付けます。これにより、プロンプト送信と待機開始を 1 つのリクエストで行い、別々の呼び出し間の競合を避けられます。
+`workspace.move_block` は、順序付きの `workspace_ids` を `before_workspace_id` の前へアトミックに移動します。アンカーを省略するとブロックを末尾へ移動します。id は一意である必要があり、アンカーをブロックに含めることはできません。レスポンスにはサーバーが確定した順序付きワークスペース一覧が含まれます。
+
`session.snapshot` は、独自のローカルランタイムキャッシュを持つクライアント向けに、一度限りのブートストラップスナップショットを返します。レスポンスには、バージョン/プロトコルメタデータ、フォーカス中のワークスペース/タブ/ペイン id、ワークスペース、タブ、ペイン、タブレイアウト、エージェントの各レコードが含まれます。これは購読ではありません。取得後はリソースイベントを購読し、そのイベントでローカルキャッシュを更新してください。再接続後やキャッシュが古い可能性がある場合は、`session.snapshot` を再度呼び出します。ワークスペースレコードには、関連付けられた worktree の出自情報も含まれます。リポジトリ全体の worktree 検出には引き続き `worktree.list` を使います。
CLI の `herdr api snapshot` は、クライアントやエージェントが簡単にブートストラップできるよう、現在の `session.snapshot` レスポンスを JSON で出力します。
@@ -635,7 +637,7 @@ workspace の get/list 応答は結果の `tokens` マップを公開し、スãƒ
最初のレスポンスは購読の確認応答です。以降の行はプッシュされるイベントです。
-ワークスペースのイベント購読には `workspace.created`、`workspace.updated`、`workspace.metadata_updated`、`workspace.renamed`、`workspace.moved`、`workspace.closed`、`workspace.focused` があります。`workspace.metadata_updated` はプラグインイベントフックを実行せずにトークン変更と TTL 失効を報告します。その他のワークスペースイベントは Herdr の UI/ランタイムのライフサイクルを記述します。ワークスペースが worktree グループに属している場合、`workspace.created` は任意の `workspace.worktree` 出自情報を含みます。`workspace.moved` は、移動した `workspace_id`、要求された `insert_index`、更新済みの順序付き `workspaces` リストを含みます。削除前に Herdr がまだ識別できる場合、`workspace.closed` は最終的な `workspace` スナップショットを含みます。
+ワークスペースのイベント購読には `workspace.created`、`workspace.updated`、`workspace.metadata_updated`、`workspace.renamed`、`workspace.moved`、`workspace.reordered`、`workspace.closed`、`workspace.focused` があります。`workspace.metadata_updated` はプラグインイベントフックを実行せずにトークン変更と TTL 失効を報告します。その他のワークスペースイベントは Herdr の UI/ランタイムのライフサイクルを記述します。ワークスペースが worktree グループに属している場合、`workspace.created` は任意の `workspace.worktree` 出自情報を含みます。`workspace.moved` は、移動した `workspace_id`、要求された `insert_index`、更新済みの順序付き `workspaces` リストを含みます。`workspace.reordered` は、アトミックに移動した `workspace_ids`、省略可能な `before_workspace_id`、サーバーが確定した順序付き `workspaces` リストを含みます。削除前に Herdr がまだ識別できる場合、`workspace.closed` は最終的な `workspace` スナップショットを含みます。
タブのイベント購読には `tab.created`、`tab.closed`、`tab.focused`、`tab.renamed`、`tab.moved` があります。`tab.moved` は、移動した `tab_id`、`workspace_id`、要求された `insert_index`、そのワークスペースの更新済みの順序付き `tabs` リストを含みます。
ペインのイベント購読には `pane.created`、`pane.updated`、`pane.closed`、`pane.focused`、`pane.moved`、`pane.exited`、`pane.agent_detected`、`pane.output_matched`、`pane.agent_status_changed`、`pane.scroll_changed` があります。ターミナルタイトルの変更は `pane.updated` を発行することがありますが、生のタイトルでスピナーだけが変化し、`terminal_title_stripped` が変わらない場合は発行しません。`pane.scroll_changed` は 1 つの `pane_id` を対象とし、Herdr がスクロールスナップショットの変化を検出するたびに `pane_id`、`workspace_id`、現在の `scroll` 情報を発行します。
レイアウトのイベント購読には `layout.updated` があります。このイベントは 1 つのタブについて更新済みの `PaneLayoutSnapshot` を運びます。`session.snapshot` でブートストラップするクライアントは、同じ `workspace_id` と `tab_id` のキャッシュ済みレイアウトを置き換えてください。
diff --git a/website/src/content/docs/ja/troubleshooting.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/troubleshooting.mdx
index a5b64361..a5b64361 100644
--- a/website/src/content/docs/ja/troubleshooting.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/troubleshooting.mdx
diff --git a/website/src/content/docs/ja/windows-beta.mdx b/docs/versions/0.8.0/website/src/content/docs/ja/windows-beta.mdx
index fa526872..ee0f8567 100644
--- a/website/src/content/docs/ja/windows-beta.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/ja/windows-beta.mdx
@@ -79,6 +79,8 @@ host_cursor = "native"
Windows のターミナルは、修飾キー付きのキーをすべて同じ形で報告するわけではありません。Herdr は Windows Terminal と Windows 上の Alacritty ではマウス報告と `ctrl+j` を保持しますが、`shift+enter` は外側ターミナルが修飾付き Enter として区別して報告する場合にだけ動作します。Windows またはターミナルがそれを通常の Enter として報告する場合、Herdr は通常の Enter を転送します。
+古い Windows 10 ビルドのシステム ConPTY は、Kimi や Pi などのエージェントが使用する Kitty キーボードプロトコルのシーケンスを失うため、プレビューパッケージには Microsoft の最新のアプリローカル ConPTY ランタイムが含まれます。バンドル版ランタイムとの互換性問題を診断する場合に限り、Herdr を起動する前に `HERDR_WINDOWS_CONPTY=system` を設定してください。
+
## コピーと貼り付け
Herdr のペインテキストコピーは Windows ベータで動作します。ペイン内でテキストをドラッグ選択すると Herdr 経由でコピーされます。
diff --git a/website/src/content/docs/keyboard.mdx b/docs/versions/0.8.0/website/src/content/docs/keyboard.mdx
index 599bea3b..22283518 100644
--- a/website/src/content/docs/keyboard.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/keyboard.mdx
@@ -15,7 +15,7 @@ A terminal multiplexer sits between your terminal and the programs running insid
The prefix solves this. Press the prefix key, default `ctrl+b`, and the next keypress goes to Herdr instead of your terminal. `prefix+c` means: press `ctrl+b`, release, then press `c`. One reserved key instead of dozens.
-Press `prefix+?` at any time to see every active binding.
+Press `prefix+?` at any time to see every active binding. Press `/` in the keybind help to filter actions and shortcuts; use Backspace to edit the filter or `ctrl+u` to clear it.
## Learn these five first
diff --git a/website/src/content/docs/marketplace.mdx b/docs/versions/0.8.0/website/src/content/docs/marketplace.mdx
index 09a27b2d..09a27b2d 100644
--- a/website/src/content/docs/marketplace.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/marketplace.mdx
diff --git a/website/src/content/docs/persistence-remote.mdx b/docs/versions/0.8.0/website/src/content/docs/persistence-remote.mdx
index a365ac88..a365ac88 100644
--- a/website/src/content/docs/persistence-remote.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/persistence-remote.mdx
diff --git a/website/src/content/docs/plugins.mdx b/docs/versions/0.8.0/website/src/content/docs/plugins.mdx
index 1d93bedc..1d93bedc 100644
--- a/website/src/content/docs/plugins.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/plugins.mdx
diff --git a/website/src/content/docs/quick-start.mdx b/docs/versions/0.8.0/website/src/content/docs/quick-start.mdx
index a8f95e7c..a8f95e7c 100644
--- a/website/src/content/docs/quick-start.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/quick-start.mdx
diff --git a/website/src/content/docs/session-state.mdx b/docs/versions/0.8.0/website/src/content/docs/session-state.mdx
index 811a346d..468557b4 100644
--- a/website/src/content/docs/session-state.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/session-state.mdx
@@ -38,7 +38,7 @@ Snapshot restore does not preserve running shells, servers, tests, or arbitrary
Pane screen history restores recent terminal contents after a full server restart. It restores what Herdr can show, not the old process.
-This is off by default because pane output can include secrets, tokens, prompts, and command output. Enable it from Settings > Experiments > pane screen history or with:
+This is off by default because pane output can include secrets, tokens, prompts, and command output. Enable it in the config file:
```toml
[experimental]
@@ -67,10 +67,12 @@ Native session restore requires these Herdr integration versions or newer:
| Agent | Minimum Herdr integration version | Resume command |
| --- | --- | --- |
| Pi | `2` | `pi --session <path-or-id>` |
+| Antigravity CLI | `1` | `agy --conversation <id>` |
| OMP | `3` | `omp --resume=<path-or-id>` |
| Claude Code | `6` | `claude --resume <id>` |
| Codex | `5` | `codex resume <id>` |
| Cursor Agent CLI | `1` | `cursor-agent --resume <id>` |
+| Grok CLI | `1` | `grok --resume <id>` |
| GitHub Copilot CLI | `2` | `copilot --resume=<id>` |
| Devin CLI | `2` | `devin --resume <id>` |
| Droid | `2` | `droid --resume <id>` |
diff --git a/website/src/content/docs/socket-api.mdx b/docs/versions/0.8.0/website/src/content/docs/socket-api.mdx
index db62db7f..0e9dd71b 100644
--- a/website/src/content/docs/socket-api.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/socket-api.mdx
@@ -100,7 +100,7 @@ Raw socket method names use dot notation:
| Notification | `notification.show` |
| Client | `client.window_title.set`, `client.window_title.clear` |
| Session | `session.snapshot` |
-| Workspace | `workspace.create`, `workspace.list`, `workspace.get`, `workspace.focus`, `workspace.rename`, `workspace.move`, `workspace.report_metadata`, `workspace.close` |
+| Workspace | `workspace.create`, `workspace.list`, `workspace.get`, `workspace.focus`, `workspace.rename`, `workspace.move`, `workspace.move_block`, `workspace.report_metadata`, `workspace.close` |
| Worktree | `worktree.list`, `worktree.create`, `worktree.open`, `worktree.remove` |
| Tab | `tab.create`, `tab.list`, `tab.get`, `tab.focus`, `tab.rename`, `tab.move`, `tab.close` |
| Pane | `pane.split`, `pane.swap`, `pane.move`, `pane.zoom`, `pane.layout`, `pane.process_info`, `pane.neighbor`, `pane.edges`, `pane.focus_direction`, `pane.resize`, `pane.list`, `pane.current`, `pane.get`, `pane.rename`, `pane.send_text`, `pane.send_keys`, `pane.send_input`, `pane.read`, `pane.graphics.info`, `pane.graphics.set`, `pane.graphics.clear`, `pane.graphics.stream`, `pane.report_agent`, `pane.report_agent_session`, `pane.report_metadata`, `pane.clear_agent_authority`, `pane.release_agent`, `pane.close`, `pane.wait_for_output` |
@@ -113,6 +113,8 @@ Raw socket method names use dot notation:
`agent.wait` is server-owned and event-driven. It pins the resolved pane occupant so a replacement cannot satisfy the wait. `agent.prompt` accepts an optional `wait` object with `until` and `timeout_ms`; this submits the prompt and starts the wait in one request, avoiding a race between separate calls.
+`workspace.move_block` atomically moves the ordered `workspace_ids` before `before_workspace_id`; omit the anchor to move the block to the end. The ids must be unique and the anchor cannot be part of the block. The response contains the authoritative ordered workspace list.
+
`session.snapshot` returns a one-time bootstrap snapshot for clients that keep
their own local runtime cache. The response includes version/protocol metadata,
focused workspace/tab/pane ids, workspace records, tab records, pane records,
@@ -758,7 +760,7 @@ Subscribe to events when you need a long-lived stream:
The first response acknowledges the subscription. Later lines are pushed events.
-Workspace event subscriptions include `workspace.created`, `workspace.updated`, `workspace.metadata_updated`, `workspace.renamed`, `workspace.moved`, `workspace.closed`, and `workspace.focused`. `workspace.metadata_updated` reports token changes and TTL expiry without invoking plugin event hooks. Other workspace events describe Herdr UI/runtime lifecycle. `workspace.created` includes optional `workspace.worktree` provenance when the workspace belongs to a worktree group. `workspace.moved` includes the moved `workspace_id`, requested `insert_index`, and updated ordered `workspaces` list. `workspace.closed` includes a final `workspace` snapshot when Herdr can still identify it before removal.
+Workspace event subscriptions include `workspace.created`, `workspace.updated`, `workspace.metadata_updated`, `workspace.renamed`, `workspace.moved`, `workspace.reordered`, `workspace.closed`, and `workspace.focused`. `workspace.metadata_updated` reports token changes and TTL expiry without invoking plugin event hooks. Other workspace events describe Herdr UI/runtime lifecycle. `workspace.created` includes optional `workspace.worktree` provenance when the workspace belongs to a worktree group. `workspace.moved` includes the moved `workspace_id`, requested `insert_index`, and updated ordered `workspaces` list. `workspace.reordered` includes the atomically moved `workspace_ids`, optional `before_workspace_id`, and authoritative ordered `workspaces` list. `workspace.closed` includes a final `workspace` snapshot when Herdr can still identify it before removal.
Tab event subscriptions include `tab.created`, `tab.closed`, `tab.focused`,
`tab.renamed`, and `tab.moved`. `tab.moved` includes the moved `tab_id`,
`workspace_id`, requested `insert_index`, and updated ordered `tabs` list for
diff --git a/website/src/content/docs/troubleshooting.mdx b/docs/versions/0.8.0/website/src/content/docs/troubleshooting.mdx
index ee094ae5..ee094ae5 100644
--- a/website/src/content/docs/troubleshooting.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/troubleshooting.mdx
diff --git a/website/src/content/docs/windows-beta.mdx b/docs/versions/0.8.0/website/src/content/docs/windows-beta.mdx
index 696a77be..6533ca6f 100644
--- a/website/src/content/docs/windows-beta.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/windows-beta.mdx
@@ -79,6 +79,8 @@ Native mode restores the IME anchor, but it can reintroduce occasional cursor fl
Windows terminals do not all report modified keys in the same shape. Herdr preserves mouse reporting and `ctrl+j` in Windows Terminal and Alacritty on Windows, but `shift+enter` only works when the outer terminal reports it as a distinct modified Enter key. If Windows or the terminal reports it as plain Enter, Herdr forwards plain Enter.
+Preview packages include Microsoft's current app-local ConPTY runtime because the system ConPTY on older Windows 10 builds drops Kitty keyboard protocol sequences used by agents such as Kimi and Pi. Set `HERDR_WINDOWS_CONPTY=system` before starting Herdr only when diagnosing a compatibility problem with the bundled runtime.
+
## Copy and paste
Herdr's pane text copy works on Windows beta. Drag-select text inside a pane to copy through Herdr.
diff --git a/website/src/content/docs/zh-cn/agent-automation.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/agent-automation.mdx
index c8ec6ce9..4bd4f1f4 100644
--- a/website/src/content/docs/zh-cn/agent-automation.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/agent-automation.mdx
@@ -81,13 +81,13 @@ herdr agent rename w1:p2 reviewer
在 CLI 中,`pane read` 和 `agent read` 都直接打印终端文本。默认输出去除 ANSI 转义的 UTF-8 文本;来源包含样式时,使用 `--format ansi` 或 `--ansi` 保留终端转义。`detection` 来源始终是纯文本。对 recent 类来源,`--lines N` 会在可选的取消折行之前选择最后 N 个已渲染终端行;省略时默认读取 80 行。对 `visible` 和 `detection`,省略 `--lines` 会返回完整快照,指定时保留按换行分隔的最后 N 行。socket API 在 `.result.read.text` 返回文本。
-## 已知注意事项:备用屏幕输出
+## 备用屏幕历史读取
-Claude Code 和 OpenCode 等全屏智能体可能会在终端的备用屏幕中绘制。备用屏幕中的行不会进入 Herdr 的主机回滚缓冲区。`--lines` 只能请求窗格当前屏幕和主机回滚缓冲区中现有的更多行,不能生成缺失的历史。如果增大 `--lines` 后仍没有返回更多回复文本,该窗格很可能正在使用备用屏幕,且那些回复行已不再保留。字体较大或窗格较小时更容易遇到此限制。
+Claude Code 和 OpenCode 等全屏智能体会把对话历史绘制在终端的备用屏幕中,而不是写入 Herdr 的主机回滚缓冲区。当已识别的智能体处于 idle、对话位于底部,且 `--lines` 请求的行数超过可见屏幕时,`recent` 或 `recent-unwrapped` 文本读取会自动使用智能体的鼠标滚动界面。Herdr 会收集相互重叠的页面,并在完成读取前把视口恢复到底部。当窗格中包含该智能体时,`pane read` 也会自动采用相同行为,无需额外选项。
-可以要求智能体简洁回复、扩大窗格或使用较小字体,也可以使用智能体自身的记录和滚动控件。在智能体内部滚动后,使用 `--source visible` 读取它当前绘制的页面。
+其他读取仍保持被动。对于 `visible`、`detection` 或 ANSI 读取、输出等待和订阅、已被手动滚动的智能体、直接附加的窗格,以及不报告鼠标滚轮输入的应用,Herdr 不会移动应用视口。当显式的 `agent read --lines N` 需要备用屏幕历史时,如果智能体处于 working、blocked 或 unknown,命令会返回 `agent_not_idle`;请等待 idle 后重试,或使用 `--source visible`。其他 recent 读取仍像以前一样返回可用的屏幕和主机回滚内容。
-在这次读取失败后,可以让智能体把完整回复以 Markdown 格式写入临时目录,只回复文件路径,然后直接读取该文件。仅将此方法用作后备方案;不要在初始提示中要求文件输出。
+如果仍无法取得完整回复,可以让智能体把回复以 Markdown 格式写入临时目录,只回复文件路径,然后直接读取该文件。
成功的 `agent start`、`agent prompt` 和 `agent wait` 会在 `.result.agent` 返回当前智能体。`pane wait-output` 返回 `.result.pane_id`、`.result.matched_line` 以及位于 `.result.read` 的匹配快照。
diff --git a/website/src/content/docs/zh-cn/agent-skill.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/agent-skill.mdx
index 98e5d529..6ce065f4 100644
--- a/website/src/content/docs/zh-cn/agent-skill.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/agent-skill.mdx
@@ -21,7 +21,7 @@ Herdr 还提供了另一份用途不同的指南: [`herdr.dev/agent-guide.md`](h
- 等待服务器、测试或另一个智能体完成
- 在相邻窗格中启动辅助智能体
-这份技能不是独立的应用或服务,它只是一份给智能体看的 markdown 指令文件。
+这份技能不是独立的应用或服务,它只是一份给智能体看的 markdown 指令文件。如果已经安装 Herdr,运行 `herdr --skill` 即可输出与该二进制版本匹配的内置副本。
## 安装
diff --git a/website/src/content/docs/zh-cn/agents.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/agents.mdx
index fb478081..1311e326 100644
--- a/website/src/content/docs/zh-cn/agents.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/agents.mdx
@@ -14,11 +14,11 @@ Herdr 为同时运行多个编程智能体而生。每个智能体都待在一ä¸
| 智能体 | 状态权威 | 集成角色 |
| --- | --- | --- |
| Pi | 安装后为生命周期钩子;否则为屏幕清单 | 状态与会话 |
-| OMP | 安装后为生命周期钩子 | 状态 |
+| OMP | 安装后为生命周期钩子 | 状态与会话 |
| GitHub Copilot CLI | 屏幕清单 | 会话 |
| Devin CLI | 屏幕清单 | 会话 |
| Kimi Code CLI | 安装后为生命周期钩子;否则为屏幕清单 | 状态与会话 |
-| Hermes Agent | 安装后为生命周期钩子;否则为屏幕清单 | 状态与会话 |
+| Hermes Agent | 屏幕清单 | 会话 |
| Qoder CLI | 屏幕清单 | 会话 |
| Droid | 屏幕清单 | 会话 |
| OpenCode | 安装后为生命周期插件;否则为屏幕清单 | 状态与会话 |
@@ -28,8 +28,8 @@ Herdr 为同时运行多个编程智能体而生。每个智能体都待在一ä¸
| Codex | 屏幕清单 | 会话 |
| Cursor Agent CLI | 屏幕清单 | 会话 |
| Amp | 屏幕清单 | 无 |
-| Grok CLI | 屏幕清单 | 无 |
-| Antigravity CLI | 屏幕清单 | 无 |
+| Grok CLI | 屏幕清单 | 会话 |
+| Antigravity CLI | 屏幕清单 | 会话 |
| Kiro CLI | 屏幕清单 | 无 |
| Maki | 屏幕清单 | 无 |
@@ -45,12 +45,14 @@ Herdr 首先检测每个窗格的前台进程。之后,每个窗格有且只有ä
屏幕快照来自窗格缓冲区最近的底部,而不是滚动后的视口。即使你在 Herdr 里向上翻页,检测仍然跟随底部的实时智能体 UI。
-Claude Code、Codex、GitHub Copilot CLI、Droid、Qoder CLI 和 Cursor Agent CLI 的集成有意不作为生命周期权威。它们为恢复提供原生会话身份,但它们的钩子并不覆盖整个生命周期,可能漏掉权限审批结果、Esc 中断或其他状态转换。对这些智能体,Herdr 仍然使用屏幕清单检测。
+上表中标为“会话”的集成有意不作为生命周期权威。它们为恢复提供原生会话身份,但它们的钩子并不覆盖整个生命周期,可能漏掉权限审批结果、Esc 中断或其他状态转换。对这些智能体,Herdr 仍然使用屏幕清单检测。
## 虚拟机与沙箱包装器
在 Linux 和 macOS 上,宿主可见的包装器可能会向 Herdr 隐藏真实的智能体进程。在包装器命令上设置 `HERDR_AGENT=<agent>`,告诉 Herdr 应使用哪个已有智能体的屏幕清单。例如,在 Linux 上运行 `HERDR_AGENT=claude fence -- claude`,或在 macOS 上运行 `HERDR_AGENT=claude nono run --profile claude-code -- claude`。这个提示的作用范围只限于该前台进程;仅在 VM 或容器内部设置时 Herdr 无法看到它,而且除非所有继承的前台进程都应被视为该智能体,否则不要全局 export。
+某些受限的 Linux 运行环境不会公开终端前台进程组。原生检测不可用时,以 `HERDR_PROCESS_DETECTION=child-groups` 启动 Herdr 服务器,即可选择启用直接子进程组推断。原生检测仍然优先,默认的 `native` 模式不会执行此推断。这个选择加入模式属于尽力而为,较新的后台任务可能会被误判为前台任务。该变量由服务器读取且需要重启;请在远程服务器环境中设置,而不是在连接客户端上设置。
+
## blocked 状态
对屏幕清单类智能体,blocked 检测刻意从严。只有当实时底部缓冲区快照匹配已知可见的审批、提问或权限 UI 时,Herdr 才标记 `blocked`。对已知智能体,如果没有任何清单规则匹配,Herdr 会回退到 `idle`,并在 explain 输出中把该回退标记为 `default_known_agent_idle_fallback`。
diff --git a/website/src/content/docs/zh-cn/cli-reference.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/cli-reference.mdx
index 03831dc7..baebfcc8 100644
--- a/website/src/content/docs/zh-cn/cli-reference.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/cli-reference.mdx
@@ -131,10 +131,10 @@ herdr workspace create --cwd ~/project --label api --no-focus
## Worktree
```bash
-herdr worktree list [--workspace ID | --cwd PATH] [--json]
-herdr worktree create [--workspace ID | --cwd PATH] [--branch NAME] [--base REF] [--path PATH] [--label TEXT] [--focus] [--no-focus] [--json]
-herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) [--label TEXT] [--focus] [--no-focus] [--json]
-herdr worktree remove --workspace ID [--force] [--json]
+herdr worktree list [--workspace ID | --cwd PATH]
+herdr worktree create [--workspace ID | --cwd PATH] [--branch NAME] [--base REF] [--path PATH] [--label TEXT] [--focus] [--no-focus]
+herdr worktree open [--workspace ID | --cwd PATH] (--path PATH | --branch NAME) [--label TEXT] [--focus] [--no-focus]
+herdr worktree remove --workspace ID [--force]
```
worktree 是带有 Git 检出来源信息的普通 Herdr 工作区。`worktree create` 创建一个 Git worktree 检出,作为工作区打开,并与父仓库工作区分到一组。如果 `--branch` 指向已有的本地分支,Herdr 检出它;否则从 `--base` 或 `HEAD` 创建分支。没有 `--path` 时,Herdr 在 `<worktrees.directory>/<repo>/<branch-slug>` 下创建检出。
diff --git a/website/src/content/docs/zh-cn/concepts.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/concepts.mdx
index ab950416..ab950416 100644
--- a/website/src/content/docs/zh-cn/concepts.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/concepts.mdx
diff --git a/website/src/content/docs/zh-cn/config-reference.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/config-reference.mdx
index 7f70afa2..7f70afa2 100644
--- a/website/src/content/docs/zh-cn/config-reference.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/config-reference.mdx
diff --git a/website/src/content/docs/zh-cn/configuration.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/configuration.mdx
index bb04da07..8b8f6c4d 100644
--- a/website/src/content/docs/zh-cn/configuration.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/configuration.mdx
@@ -428,14 +428,18 @@ cjk_ime_agents = ["claude", "pi", "codex"]
## 前缀输入源切换
-在 macOS 上,当前缀命令和由前缀启动的模式处于活动状态时,Herdr 可以临时切换到系统中支持 ASCII 的输入源:
+在 macOS 和 Windows 上,当前缀命令和由前缀启动的模式处于活动状态时,Herdr 可以临时切换到支持 ASCII 的输入源:
```toml
[experimental]
switch_ascii_input_source_in_prefix = true
```
-返回终端输入或进入文本字段时,Herdr 会恢复之前的输入源。此设置在其他平台上无效。
+在 macOS 上,会切换到当前支持 ASCII 的键盘布局;在 Windows 上,会将 IME 切换到英文(ASCII)输入。返回终端输入或进入文本字段时,Herdr 会恢复之前的输入源。此设置在其他平台上无效。
+
+:::caution[Windows 上仅支持韩语 IME]
+目前 Windows 上的支持仅限于韩语 IME。使用其他语言的 IME 时,此设置不会改变输入源。
+:::
## 环境变量
diff --git a/website/src/content/docs/zh-cn/how-to-work.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/how-to-work.mdx
index 0df1b87f..0df1b87f 100644
--- a/website/src/content/docs/zh-cn/how-to-work.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/how-to-work.mdx
diff --git a/website/src/content/docs/zh-cn/index.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/index.mdx
index b62a2b02..b62a2b02 100644
--- a/website/src/content/docs/zh-cn/index.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/index.mdx
diff --git a/website/src/content/docs/zh-cn/install.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/install.mdx
index ccab07d6..8305fd7a 100644
--- a/website/src/content/docs/zh-cn/install.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/install.mdx
@@ -96,7 +96,9 @@ mv herdr-linux-x86_64 ~/.local/bin/herdr
| 系统 | 产物 |
| --- | --- |
-| Windows x86_64 测试版 | `herdr-windows-x86_64.exe` |
+| Windows x86_64 测试版 | `herdr-windows-x86_64.zip` |
+
+压缩包包含 `herdr.exe` 及其应用本地 ConPTY 运行时。请保留完整的解压目录,不要只复制 `herdr.exe`。
## 验证
diff --git a/website/src/content/docs/zh-cn/integrations.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/integrations.mdx
index c49f61db..a3baf62f 100644
--- a/website/src/content/docs/zh-cn/integrations.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/integrations.mdx
@@ -1,11 +1,11 @@
---
title: 集成
-description: 为 Pi、OMP、Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Kimi Code CLI、OpenCode、Kilo Code CLI、Hermes Agent、Qoder CLI、Cursor Agent CLI 和 MastraCode 安装 Herdr 集成。
+description: 为 Pi、OMP、Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Kimi Code CLI、OpenCode、Kilo Code CLI、Hermes Agent、Qoder CLI、Cursor Agent CLI、MastraCode、Antigravity CLI 和 Grok CLI 安装 Herdr 集成。
---
Herdr 自动检测受支持的智能体。官方集成可以额外提供用于恢复的原生会话身份、生命周期状态上报,或两者兼有。
-当你想要 Claude Code/Codex/Copilot/Devin 式钩子的智能体原生会话恢复、Pi/OMP/Kimi/OpenCode/Kilo/Hermes/MastraCode 式钩子或插件的直接生命周期上报,或两者都要时,使用集成。完整的状态权威模型见[智能体](/zh-cn/docs/agents/)。
+当你想要智能体原生会话恢复、直接生命周期上报,或两者都要时,使用集成。完整的状态权威模型见[智能体](/zh-cn/docs/agents/)。
## 安装集成
@@ -26,6 +26,8 @@ herdr integration install hermes
herdr integration install mastracode
herdr integration install qodercli
herdr integration install cursor
+herdr integration install antigravity-cli
+herdr integration install grok
```
## 卸载集成
@@ -45,6 +47,8 @@ herdr integration uninstall hermes
herdr integration uninstall mastracode
herdr integration uninstall qodercli
herdr integration uninstall cursor
+herdr integration uninstall antigravity-cli
+herdr integration uninstall grok
```
## Herdr 如何使用集成
@@ -53,14 +57,14 @@ Herdr 以两种不同方式使用集成:
| 集成类型 | 智能体 | 效果 |
| --- | --- | --- |
-| 生命周期权威 | Pi、OMP、Kimi Code CLI、OpenCode、Kilo Code CLI、Hermes Agent、MastraCode | 已安装且在为该窗格主动上报时,由钩子或插件事件决定 `idle`、`working` 和 `blocked`。对同一个生命周期权威,Herdr 不再使用屏幕清单兜底。 |
-| 会话身份 | Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Qoder CLI、Cursor Agent CLI | 集成上报用于恢复的原生会话引用。状态仍来自 Herdr 的屏幕清单检测。 |
+| 生命周期权威 | Pi、OMP、Kimi Code CLI、OpenCode、Kilo Code CLI、MastraCode | 已安装且在为该窗格主动上报时,由钩子或插件事件决定 `idle`、`working` 和 `blocked`。对同一个生命周期权威,Herdr 不再使用屏幕清单兜底。 |
+| 会话身份 | Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Qoder CLI、Cursor Agent CLI、Hermes Agent、Antigravity CLI、Grok CLI | 集成上报用于恢复的原生会话引用。状态仍来自 Herdr 的屏幕清单检测。 |
自定义 socket 集成在定义了原生终端 UI 中不可见的状态时,也可以上报状态。
-一些集成会上报智能体的原生会话引用。除非被 `[session] resume_agents_on_restore = false` 禁用,Herdr 会在服务器重启后使用官方会话引用恢复 Claude Code、Codex、Devin CLI、Droid、Kimi Code CLI、Qoder CLI、Cursor Agent CLI、GitHub Copilot CLI、Pi、OMP、Hermes Agent、OpenCode、Kilo Code CLI 和 MastraCode 的窗格。
+一些集成会上报智能体的原生会话引用。除非被 `[session] resume_agents_on_restore = false` 禁用,Herdr 会在服务器重启后使用官方会话引用恢复 Claude Code、Codex、Devin CLI、Droid、Kimi Code CLI、Qoder CLI、Cursor Agent CLI、Grok CLI、GitHub Copilot CLI、Pi、OMP、Hermes Agent、OpenCode、Kilo Code CLI、MastraCode 和 Antigravity CLI 的窗格。
-原生会话恢复需要最新的 Herdr 集成: Pi 集成版本 `2`、OMP 版本 `3`、Claude Code 版本 `6`、Codex 版本 `5`、GitHub Copilot CLI 版本 `2`、Devin CLI 版本 `2`、Droid 版本 `2`、Kimi Code CLI 版本 `3`、Qoder CLI 版本 `2`、Cursor Agent CLI 版本 `1`、OpenCode 版本 `5`、Kilo Code CLI 版本 `1`、Hermes Agent 版本 `2`、MastraCode 版本 `1`。用 `herdr integration status` 查看已安装版本。
+原生会话恢复需要最新的 Herdr 集成: Pi 集成版本 `2`、OMP 版本 `3`、Claude Code 版本 `6`、Codex 版本 `5`、GitHub Copilot CLI 版本 `2`、Devin CLI 版本 `2`、Droid 版本 `2`、Kimi Code CLI 版本 `3`、Qoder CLI 版本 `2`、Cursor Agent CLI 版本 `1`、Grok CLI 版本 `1`、OpenCode 版本 `5`、Kilo Code CLI 版本 `1`、Hermes Agent 版本 `2`、MastraCode 版本 `1`、Antigravity CLI 版本 `1`。用 `herdr integration status` 查看已安装版本。
## Pi
@@ -210,7 +214,7 @@ herdr integration install hermes
Herdr 写入 `~/.hermes/plugins/herdr-agent-state/`,并在 `~/.hermes/config.yaml` 中启用 `herdr-agent-state`。Hermes 配置目录必须已经存在。安装后请重启 Hermes 以加载插件。卸载会删除插件目录,并从 `plugins.enabled` 中移除 `herdr-agent-state`。
-该插件在 Hermes 运行于 Herdr 窗格内时上报生命周期、工具、审批状态和会话 id。Herdr 可以用上报的会话 id 通过 `hermes --resume <id>` 恢复该窗格。插件未安装时,屏幕清单检测仍然可用。
+该插件在 Hermes 运行于 Herdr 窗格内时上报可恢复的会话 id。Herdr 使用屏幕清单检测 `working`、`idle` 和 `blocked`,并可用上报的会话 id 通过 `hermes --resume <id>` 恢复该窗格。
## Qoder CLI
@@ -256,6 +260,34 @@ Herdr 使用 `~/.mastracode`。安装会写入 `hooks/herdr-agent-state.sh`,并æ
Herdr 用 `mastracode --thread <id>` 恢复保存的 MastraCode 线程。
+## Antigravity CLI
+
+安装 Antigravity CLI 钩子:
+
+```bash
+herdr integration install antigravity-cli
+```
+
+Herdr 默认使用 `~/.gemini/config/`,设置了 `ANTIGRAVITY_CLI_CONFIG_DIR` 时使用后者。这是 Antigravity CLI 读取全局自定义配置的目录,并且必须已经存在。安装会写入 `hooks/herdr-agent-state.sh`(Windows 上为 `herdr-agent-state.ps1`),并向 `hooks.json` 添加由 Herdr 管理的 `herdr` 块。Antigravity CLI 按钩子名称管理 `hooks.json`,因此安装只会重写该块,不会改动其他命名钩子。卸载会移除 `herdr` 块并删除钩子脚本。
+
+该集成仅上报会话。它会上报窗格当前运行的对话,但不上报智能体状态,因此 Herdr 仍根据 Antigravity CLI 在屏幕上绘制的内容判断 `working`、`idle` 和 `blocked`。
+
+钩子在 `PreInvocation` 时运行,所以 Herdr 会在发送第一个提示词后获知对话。此后,Herdr 服务器重启时可以用 `agy --conversation <id>` 恢复窗格。
+
+## Grok CLI
+
+安装 Grok CLI 钩子:
+
+```bash
+herdr integration install grok
+```
+
+该钩子在 Grok CLI 运行于 Herdr 窗格内时,通过 Grok 的 `SessionStart` 钩子上报会话身份。Grok 的状态来自 Herdr 的屏幕清单检测。
+
+Herdr 默认使用 `~/.grok`,设置了 `GROK_HOME` 时使用后者。Grok 配置目录必须已经存在。Grok 会合并该目录中的所有 `hooks/*.json` 文件,因此安装会写入独立的 `hooks/herdr.json`,其中包含 Herdr 的 `SessionStart` 条目,并同时写入 `hooks/herdr-agent-state.sh`;它不会修改其他钩子文件。卸载只会删除这两个由 Herdr 管理的文件。
+
+Grok 发出会话启动事件后,Herdr 可以用上报的会话 id 通过 `grok --resume <id>` 恢复窗格。
+
## 自定义状态标签
集成只把生命周期状态作为语义状态上报。例如,上报智能体为 `working` 时,不在生命周期报告中添加展示字段。
diff --git a/website/src/content/docs/zh-cn/keyboard.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/keyboard.mdx
index 0dfea960..d7b0d297 100644
--- a/website/src/content/docs/zh-cn/keyboard.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/keyboard.mdx
@@ -15,7 +15,7 @@ Herdr 是鼠标原生的。你可以点击窗格、标签页、工作区和智èƒ
前缀键解决了这个问题。按下前缀键 (默认 `ctrl+b`),下一次按键会发给 Herdr 而不是终端。`prefix+c` 的意思是: 按下 `ctrl+b`,松开,再按 `c`。只保留一个键,而不是几十个。
-随时按 `prefix+?` 可以查看所有生效的绑定。
+随时按 `prefix+?` 可以查看所有生效的绑定。在快捷键帮助中按 `/` 即可筛选操作和快捷键;使用 Backspace 编辑筛选内容,或按 `ctrl+u` 清除。
## 先学这五个
diff --git a/website/src/content/docs/zh-cn/marketplace.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/marketplace.mdx
index 350cc0d5..350cc0d5 100644
--- a/website/src/content/docs/zh-cn/marketplace.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/marketplace.mdx
diff --git a/website/src/content/docs/zh-cn/persistence-remote.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/persistence-remote.mdx
index a81a8469..a81a8469 100644
--- a/website/src/content/docs/zh-cn/persistence-remote.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/persistence-remote.mdx
diff --git a/website/src/content/docs/zh-cn/plugins.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/plugins.mdx
index 306bda53..306bda53 100644
--- a/website/src/content/docs/zh-cn/plugins.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/plugins.mdx
diff --git a/website/src/content/docs/zh-cn/quick-start.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/quick-start.mdx
index 3f695d92..3f695d92 100644
--- a/website/src/content/docs/zh-cn/quick-start.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/quick-start.mdx
diff --git a/website/src/content/docs/zh-cn/session-state.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/session-state.mdx
index cf796d0c..1c4663ae 100644
--- a/website/src/content/docs/zh-cn/session-state.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/session-state.mdx
@@ -38,7 +38,7 @@ herdr
窗格屏幕历史在服务器完全重启后恢复最近的终端内容。它恢复的是 Herdr 能展示的内容,而不是原来的进程。
-它默认关闭,因为窗格输出可能包含密钥、令牌、提示词和命令输出。可以在 Settings > Experiments > pane screen history 中开启,或者:
+它默认关闭,因为窗格输出可能包含密钥、令牌、提示词和命令输出。可以在配置文件中开启:
```toml
[experimental]
diff --git a/website/src/content/docs/zh-cn/socket-api.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/socket-api.mdx
index 2077d571..269e6a3d 100644
--- a/website/src/content/docs/zh-cn/socket-api.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/socket-api.mdx
@@ -96,7 +96,7 @@ herdr pane read w1:p2 --source recent --lines 50
| 通知 | `notification.show` |
| 客户端 | `client.window_title.set`、`client.window_title.clear` |
| 会话 | `session.snapshot` |
-| 工作区 | `workspace.create`、`workspace.list`、`workspace.get`、`workspace.focus`、`workspace.rename`、`workspace.move`、`workspace.report_metadata`、`workspace.close` |
+| 工作区 | `workspace.create`、`workspace.list`、`workspace.get`、`workspace.focus`、`workspace.rename`、`workspace.move`、`workspace.move_block`、`workspace.report_metadata`、`workspace.close` |
| Worktree | `worktree.list`、`worktree.create`、`worktree.open`、`worktree.remove` |
| 标签页 | `tab.create`、`tab.list`、`tab.get`、`tab.focus`、`tab.rename`、`tab.move`、`tab.close` |
| 窗格 | `pane.split`、`pane.swap`、`pane.move`、`pane.zoom`、`pane.layout`、`pane.process_info`、`pane.neighbor`、`pane.edges`、`pane.focus_direction`、`pane.resize`、`pane.list`、`pane.current`、`pane.get`、`pane.rename`、`pane.send_text`、`pane.send_keys`、`pane.send_input`、`pane.read`、`pane.graphics.info`、`pane.graphics.set`、`pane.graphics.clear`、`pane.graphics.stream`、`pane.report_agent`、`pane.report_agent_session`、`pane.report_metadata`、`pane.clear_agent_authority`、`pane.release_agent`、`pane.close`、`pane.wait_for_output` |
@@ -109,6 +109,8 @@ herdr pane read w1:p2 --source recent --lines 50
`agent.wait` 由服务器拥有并由事件驱动。它会固定到已解析的窗格占用者,因此替换后的智能体不能满足该等待。`agent.prompt` 接受可选的 `wait` 对象,其中包含 `until` 和 `timeout_ms`;这样可在一个请求中提交提示并开始等待,避免两个独立调用之间的竞态。
+`workspace.move_block` 会将有序的 `workspace_ids` 原子地移动到 `before_workspace_id` 之前;省略锚点则将该块移动到末尾。id 必须唯一,且锚点不能属于被移动的块。响应包含服务器确认的有序工作区列表。
+
`session.snapshot` 为维护本地运行时缓存的客户端返回一次性引导快照。响应包含版本/协议元数据、当前聚焦的工作区/标签页/窗格 id、工作区记录、标签页记录、窗格记录、标签页布局快照和智能体记录。它不是订阅;读取后应订阅资源事件,并根据事件更新本地缓存。重新连接后或本地缓存可能已过期时,再次调用 `session.snapshot`。工作区记录也包含关联 worktree 的来源信息。完整的仓库 worktree 发现仍使用 `worktree.list`。
CLI 的 `herdr api snapshot` 会把当前 `session.snapshot` 响应输出为 JSON,让客户端和智能体可以简单地完成引导。
@@ -631,7 +633,7 @@ workspace 的 get/list 响应会公开生成的 `tokens` 映射,空间侧边栏è
第一个响应确认订阅。之后的行是推送的事件。
-工作区事件订阅包括 `workspace.created`、`workspace.updated`、`workspace.metadata_updated`、`workspace.renamed`、`workspace.moved`、`workspace.closed` 和 `workspace.focused`。`workspace.metadata_updated` 报告令牌变更和 TTL 到期,但不会调用插件事件钩子。其他工作区事件描述 Herdr UI/运行时的生命周期。当工作区属于 worktree 组时,`workspace.created` 包含可选的 `workspace.worktree` 来源信息。`workspace.moved` 包含被移动的 `workspace_id`、请求的 `insert_index` 和更新后的有序 `workspaces` 列表。在移除前 Herdr 仍能识别时,`workspace.closed` 包含最终的 `workspace` 快照。
+工作区事件订阅包括 `workspace.created`、`workspace.updated`、`workspace.metadata_updated`、`workspace.renamed`、`workspace.moved`、`workspace.reordered`、`workspace.closed` 和 `workspace.focused`。`workspace.metadata_updated` 报告令牌变更和 TTL 到期,但不会调用插件事件钩子。其他工作区事件描述 Herdr UI/运行时的生命周期。当工作区属于 worktree 组时,`workspace.created` 包含可选的 `workspace.worktree` 来源信息。`workspace.moved` 包含被移动的 `workspace_id`、请求的 `insert_index` 和更新后的有序 `workspaces` 列表。`workspace.reordered` 包含原子移动的 `workspace_ids`、可选的 `before_workspace_id` 和服务器确认的有序 `workspaces` 列表。在移除前 Herdr 仍能识别时,`workspace.closed` 包含最终的 `workspace` 快照。
标签页事件订阅包括 `tab.created`、`tab.closed`、`tab.focused`、`tab.renamed` 和 `tab.moved`。`tab.moved` 包含被移动的 `tab_id`、`workspace_id`、请求的 `insert_index` 和该工作区更新后的有序 `tabs` 列表。
窗格事件订阅包括 `pane.created`、`pane.updated`、`pane.closed`、`pane.focused`、`pane.moved`、`pane.exited`、`pane.agent_detected`、`pane.output_matched`、`pane.agent_status_changed` 和 `pane.scroll_changed`。终端标题变化可能发出 `pane.updated`,但如果原始标题只有旋转指示符发生变化且 `terminal_title_stripped` 不变,则不会发出。`pane.scroll_changed` 只针对一个 `pane_id`,每当 Herdr 观察到滚动快照变化时,都会发出 `pane_id`、`workspace_id` 和当前 `scroll` 指标。
布局事件订阅包括 `layout.updated`。该事件携带一个标签页更新后的 `PaneLayoutSnapshot`。使用 `session.snapshot` 引导的客户端应替换具有相同 `workspace_id` 和 `tab_id` 的缓存布局。
diff --git a/website/src/content/docs/zh-cn/troubleshooting.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/troubleshooting.mdx
index 3560dd3d..3560dd3d 100644
--- a/website/src/content/docs/zh-cn/troubleshooting.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/troubleshooting.mdx
diff --git a/website/src/content/docs/zh-cn/windows-beta.mdx b/docs/versions/0.8.0/website/src/content/docs/zh-cn/windows-beta.mdx
index 5e922c3a..781a6f96 100644
--- a/website/src/content/docs/zh-cn/windows-beta.mdx
+++ b/docs/versions/0.8.0/website/src/content/docs/zh-cn/windows-beta.mdx
@@ -79,6 +79,8 @@ host_cursor = "native"
Windows 终端并不都以相同形式报告带修饰键的按键。Herdr 在 Windows Terminal 和 Windows 上的 Alacritty 中保留鼠标报告和 `ctrl+j`,但 `shift+enter` 只有在外层终端把它报告为独立的修饰 Enter 键时才有效。如果 Windows 或终端把它报告为普通 Enter,Herdr 会转发普通 Enter。
+旧版 Windows 10 的系统 ConPTY 会丢弃 Kimi 和 Pi 等智能体使用的 Kitty 键盘协议序列,因此预览包包含 Microsoft 当前的应用本地 ConPTY 运行时。仅在诊断捆绑运行时的兼容性问题时,才应在启动 Herdr 前设置 `HERDR_WINDOWS_CONPTY=system`。
+
## 复制与粘贴
Herdr 的窗格文本复制在 Windows 测试版上可用。在窗格内拖选文本即可通过 Herdr 复制。
diff --git a/website/src/data/config-reference.json b/docs/versions/0.8.0/website/src/data/config-reference.json
index b91cdf46..5c9911b9 100644
--- a/website/src/data/config-reference.json
+++ b/docs/versions/0.8.0/website/src/data/config-reference.json
@@ -597,7 +597,7 @@
"key": "ui.copy_on_select",
"type": "boolean",
"default": "true",
- "description": "Copy text selected with the mouse."
+ "description": "Automatically copy text selected by mouse drag or double-click. When disabled, Ctrl+C or a host-forwarded Cmd+C copies and clears the retained selection."
},
{
"key": "ui.host_cursor",
@@ -653,6 +653,12 @@
"description": "Draw borders around split panes."
},
{
+ "key": "ui.pane_scrollbars",
+ "type": "boolean",
+ "default": "true",
+ "description": "Draw interactive scrollbars beside terminal panes. Disable to reclaim the scrollbar column and keep it out of terminal-native selections."
+ },
+ {
"key": "ui.pane_gaps",
"type": "boolean",
"default": "true",
@@ -671,6 +677,16 @@
"description": "Hide the tab row when the workspace has one tab."
},
{
+ "key": "ui.tab_bar_position",
+ "type": "enum",
+ "default": "\"top\"",
+ "description": "Place the desktop tab row above or below the terminal panes.",
+ "values": [
+ "top",
+ "bottom"
+ ]
+ },
+ {
"key": "ui.agent_panel_sort",
"type": "enum",
"default": "\"spaces\"",
@@ -702,7 +718,7 @@
"key": "ui.sidebar.spaces.row_gap",
"type": "integer",
"default": "0",
- "description": "Blank terminal rows between expanded Space sidebar entries. Set to 1 to restore the previous spacing. Consecutive indented worktree children remain packed as one group."
+ "description": "Blank terminal rows between worktree groups and unrelated top-level Spaces. Worktree parents and their indented children remain packed."
},
{
"key": "ui.sidebar.spaces.rows",
@@ -1113,7 +1129,7 @@
"key": "experimental.switch_ascii_input_source_in_prefix",
"type": "boolean",
"default": "false",
- "description": "While prefix mode is active, temporarily switch the macOS host input source to an ASCII-capable keyboard layout so prefix commands are read as ASCII even when a CJK IME is active, then restore the previous input source when prefix mode exits. macOS only; a no-op elsewhere and a best-effort no-op if the switch fails."
+ "description": "While prefix mode is active, temporarily switch the host input source to an ASCII-capable mode so prefix commands are read as ASCII even when an IME is active, then restore the previous input source when prefix mode exits. On macOS this selects the ASCII-capable keyboard layout; on Windows it switches the IME to English (ASCII) input. Windows support is currently limited to the Korean IME; with an IME for any other language, the input source is left unchanged. macOS and Windows only; a no-op elsewhere and a best-effort no-op if the switch fails."
}
]
}
diff --git a/docs/versions/manifest.json b/docs/versions/manifest.json
index a40c6566..c321e1dd 100644
--- a/docs/versions/manifest.json
+++ b/docs/versions/manifest.json
@@ -1,9 +1,15 @@
{
"schema_version": 1,
- "stable_source": "legacy",
- "current": "0.7.5",
+ "stable_source": "snapshot",
+ "current": "0.8.0",
"versions": [
{
+ "version": "0.8.0",
+ "tag": "v0.8.0",
+ "commit": "346411fa21afd297f5ed3b3fa56f9e3fbf7654b7",
+ "source": "docs/next/website/src/content/docs"
+ },
+ {
"version": "0.7.5",
"tag": "v0.7.5",
"source": "website/src/content/docs"
diff --git a/website/latest.json b/website/latest.json
index 5e700676..8458c345 100644
--- a/website/latest.json
+++ b/website/latest.json
@@ -1,14 +1,24 @@
{
- "version": "0.7.5",
- "protocol": 17,
- "notes": "### Breaking Changes\n- Installed and linked plugins, including their enabled state, are now global to the current user instead of isolated by Herdr session. Plugins installed only in a named session on Herdr 0.7.3 must be installed or linked again. (#1174)\n\n### Added\n- Added a live-agent CLI facade with named `start`, atomic `prompt`, logical `send-keys`, and server-owned `wait` workflows. Agent startup targets an existing pane without changing topology, validates the requested interactive agent kind and strict agent name, and accepts native arguments after `--`.\n- Added transient declarative Agent view queries through `agent.view.set/clear`; filtered and sorted views now define sidebar, mobile, mouse, and agent-keybind navigation order.\n- Added one-shot plugin `[[startup]]` hooks for restoring plugin-owned state after server startup and live handoff.\n- Added per-token foreground, bold, and dim styling to expanded Space and Agent sidebar row layouts.\n- Added `ui.sidebar_start_collapsed` to launch Herdr with the sidebar collapsed. (#1463)\n- Added `ui.prompt_new_workspace_name` to ask for a workspace name before interactive TUI creation.\n- Added macOS support for the `HERDR_AGENT=<agent>` foreground-process hint, allowing agents hidden behind host-visible wrappers such as `nono` to use the named agent's screen manifest. (#679)\n\n### Changed\n- Agent commands now accept only a unique live agent name or the pane ID currently hosting that agent. Names are cleared when the occupant exits, is released, or is replaced. The old top-level `wait` commands were replaced by `agent wait` and `pane wait-output`, and `agent send` was replaced by `agent send-keys`.\n- The session navigator now uses connected tree glyphs, groups matches by workspace, and automatically selects the first result when a search begins. (#1611)\n\n### Fixed\n- CLI requests now return a machine-readable `protocol_mismatch` error when the client and server protocols differ, while recovery commands remain available. (#1435)\n- Linux sound notifications now terminate and reap audio players that do not exit, preventing unavailable audio from leaving CPU-bound `mpg123` processes behind. (#1622)\n- Oversized bracketed text pastes are now rejected with a client-local notification instead of disconnecting the client. (#1665)\n- Agent prompt waits now report `agent_prompt_stalled` after five seconds without an observed state change instead of waiting indefinitely after an ineffective submission.\n- `herdr config check` now reports unknown config keys with their full paths instead of treating ignored typos as valid configuration. (#1573)\n- Codex panes with customized static terminal titles now fall back to the live working footer instead of remaining idle, while OSC activity remains preferred. (#1563)\n- Grok panes now preserve working and blocked state from terminal signals and pinned background-work status instead of falling back to idle mid-turn.\n- OpenCode lifecycle reports are now serialized so out-of-order plugin events cannot leave an idle pane marked working. (#1519)\n- Kimi question prompts now report blocked until the user answers or dismisses them.\n- Pi lifecycle reporting now uses settled events, preventing transient message boundaries from publishing an idle state mid-turn.\n- The Pi, OMP, OpenCode, and Kilo Code integrations can now be installed on Windows and report lifecycle state and native session identity through Herdr's named-pipe API. (#1531)\n- Named agent prompts now honor live bracketed-paste mode before sending Enter, preserving OpenCode text such as `A != B` instead of triggering shell mode. (#1525)\n- New panes, tabs, layouts, and workspaces using `new_cwd = \"follow\"` now inherit the foreground process-group leader's working directory instead of an unrelated helper process directory. (#1472)\n- Cached pane working directories no longer trigger repeated filesystem checks, avoiding slow sidebar rendering on network filesystems such as Ceph. (#1603)\n- Windows foreground-process snapshots are now shared across panes, reducing idle CPU use in sessions with many panes. (#1158)\n- Terminal diff streams now batch contiguous writes, reducing the visible wave effect while scrolling pane history. (#283)\n- A standalone Escape arriving beside another key is now preserved as its own input instead of being combined into a fabricated Alt chord. (#541)\n- Pane viewports that were following live output now continue following after a resize.\n- Mouse selections now remain visible when `ui.copy_on_select = false` while clipboard writes stay disabled. (#1471)\n- Workspace close confirmation now shows the current workspace name instead of a stale or unrelated label. (#1364)\n- Plugin command arrays now preserve whitespace-only arguments. (#1594, #1613)\n- Plugins can now be installed or linked while no Herdr server is running. (#1670)\n- Remote attach now discovers Herdr installed in mise's canonical tool path before offering to install a sidecar binary. (#1201)\n- Noninteractive update, plugin, integration, sound, custom-command, and Git subprocesses no longer flash console windows on Windows. (#1468)\n- Live handoff now preserves installed plugins and no longer lets the next plugin installation overwrite the existing registry. (#893)\n- `herdr agent wait` now returns `agent_not_running` promptly when its target pane closes instead of waiting for the full timeout. (#1439)\n- Pane graphics streams now shut down cleanly when a client disconnect races stream teardown.",
+ "version": "0.8.0",
+ "protocol": 19,
+ "notes": "### Added\n- Added `herdr --skill` to print the agent skill bundled with the running Herdr binary.\n- Added `ui.pane_scrollbars = false` to hide terminal pane scrollbars and reclaim their reserved column. (#2167)\n- Added `ui.tab_bar_position = \"bottom\"` to place the desktop tab row below terminal panes. (#2117)\n- Added live filtering to the keybind help with `/`, Backspace, and `Ctrl+U`. (#1825, #1832, thanks @corrius)\n- Added Windows support for `experimental.switch_ascii_input_source_in_prefix` with Korean IMEs. (#1802, #1823, thanks @joonhwan)\n- Added Grok CLI session reporting and native restore with `grok --resume <id>`. (#1800, #1807, thanks @carlesso)\n- Added Antigravity CLI session reporting and native restore with `agy --conversation <id>`. (#1011, #1571, #2087, thanks @ludoo)\n- Added automatic text history reads for idle alternate-screen agents, with the application viewport restored after collection.\n- Added `workspace.move_block`, the `workspace.reordered` event, and atomic worktree-group reordering. (#1694)\n- Added a Simplified Chinese README. (#1990, thanks @patrick-xin)\n\n### Changed\n- Experimental options are no longer exposed in the Settings TUI and remain available through the config file.\n- Agent status indicators now use the same static workspace marks across the sidebar, navigator, and mobile views, eliminating continuous spinner rendering while agents work.\n- Hidden pane output no longer triggers unnecessary TUI rendering.\n- Windows preview downloads now include Herdr and a modern app-local ConPTY runtime in one archive. (#1533, #1644, #1828)\n- Worktree parents and children now stay packed together in the sidebar, including while groups are reordered.\n- Public documentation now separates stable, preview, and immutable versioned release snapshots.\n- Repository and installation links now use `herdrdev/herdr` after the GitHub organization migration.\n- Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0.\n\n### Fixed\n- Pane applications now receive semantic light/dark query responses and live Mode 2031 updates when the host appearance changes. (#714)\n- Remote attach now falls back to `sh` when the login shell cannot perform path discovery. (#1201)\n- PTY output continues to be read while pane input is temporarily blocked. (#1295)\n- Worktree CLI help and docs no longer advertise the redundant `--json` flag; worktree commands remain JSON-only and continue accepting the flag for compatibility. (#2171)\n- OpenCode 2 preview panes now appear as OpenCode agents and use the existing OpenCode status detection. (#2169)\n- Pane text copied through VS Code Remote Tunnels now reaches the viewing machine's clipboard instead of overwriting the remote host clipboard. (#2015)\n- Windows agent detection now follows Git Bash-launched agents across emulated `exec` process boundaries. (#2107)\n- Detached Windows servers and pane processes now survive logout from the OpenSSH session that started them. (#2008)\n- Windows `agent start` now launches agents without native arguments instead of timing out on an invalid empty PowerShell argument list. (#2072)\n- Headless servers now resume restored agent sessions without waiting for a TUI client to attach. (#2064)\n- Vibe and other Kitty-keyboard pane applications now receive shifted letters and punctuation when they request associated text. (#2020)\n- Kitty-keyboard pane applications now receive printable key releases without duplicate text input. (#1746)\n- Kitty graphics remain visible during host repaints. (#1628)\n- Pane applications now receive correct XTWINOPS terminal and cell-size query responses. (#835)\n- WSL clients query the host cell size when the terminal ioctl reports no pixels, keeping graphics sharp instead of using the 8x16 fallback. (#2146, #2160, thanks @WakaTaira)\n- Linux runtimes without terminal foreground process groups can opt into child-group agent detection with `HERDR_PROCESS_DETECTION=child-groups`. (#1982)\n- Installing the Herdr agent skill with the `skills` CLI no longer copies the entire repository. (#2022)\n- Nix builds now include the bundled agent skill required by `herdr --skill`. (#1889, #1890, thanks @olafkfreund)\n- Agent prompts now wait briefly after sending text before pressing Enter, preventing prompts from remaining in agent composers without starting a turn. (#1878)\n- Empty clipboard writes from pane applications no longer erase existing clipboard contents or show a copied confirmation. (#1893)\n- Plain mouse movement no longer triggers continuous full renders while preserving Herdr menu hover and pane application mouse tracking. (#1865)\n- Extended-button drags now preserve Herdr hover state while applications receive the drag.\n- `ui.copy_on_select = false` now retains drag and double-click word selections without copying; `Ctrl+C`, or `Cmd+C` when the host terminal forwards it, copies and clears the selection. (#1782)\n- Pane and agent read responses now report `truncated: true` when older terminal rows were omitted. (#1717)\n- Pane applications that query OSC 4 palette colors now inherit the host terminal palette. (#1752)\n- Ctrl-clicking a pane URL no longer forwards an unmatched mouse release to alternate-screen applications, preventing duplicate browser tabs. (#1761)\n- Known-agent integrations now leave pane ownership to confirmed process exit, so restarting Pi with the same saved session restores lifecycle state even with custom working UI. (#1648, #1792)\n- Nested or ephemeral Codex sessions no longer replace the owning pane's resumable session. (#1789, #1927, thanks @Pimpmuckl)\n- Pi RPC, JSON, and print processes no longer claim pane lifecycle state intended for Pi TUI sessions. (#2159, thanks @rhjoh)\n- Hermes state now comes from screen detection while its plugin reports resumable session identity, avoiding stale lifecycle authority from incomplete hooks.\n- OMP integration install, status, and uninstall now respect `PI_CONFIG_DIR` when `PI_CODING_AGENT_DIR` is not set, and installation refuses extension-directory collisions with Pi. (#1696)\n- OMP integrations now preserve Windows absolute session paths for native restore. (#2092, thanks @art-wiedzmin)\n- Claude integration updates preserve existing settings key order and formatting. (#2066)\n- Physical Escape key records on native Windows now bypass raw VT report framing, so pane applications receive Escape immediately and reliably. (#1736)\n- Native Windows key presses, grouped repeats, and releases now preserve their physical lifecycle and stay with the pane that received the initial press. (#2077)\n- Windows `pane send-keys` and `agent send-keys` now deliver semantic Escape as a complete key tap, preventing a following key from being interpreted as an Alt chord.\n- Shift+Enter now reaches native Windows pane applications with its modifier intact. (#1743, #1909, thanks @Pimpmuckl)\n- Ctrl+_ input bytes now decode as Ctrl+_ instead of Ctrl+-. (#2164, #2165, thanks @Sertug17)\n- Prefix and navigate modes now recognize non-US shifted keybindings while retaining legacy US punctuation support. (#1870)\n- Closing a non-focused workspace no longer changes the focused workspace. (#1328, #1877, thanks @yianL)\n- A background workspace that closes after its last pane exits no longer moves focus or hides the current workspace. (#1621, #1912, thanks @season179)\n- Directional pane focus now keeps Navigate mode active. (#1850, #1993, thanks @we11adam)\n- Closing a workspace's last tab through the CLI or API now closes the workspace like the TUI does. (#1760, #1899, thanks @season179)\n- Linked worktree workspaces retain their labels during Git metadata refreshes.\n- Clients repaint after transient terminal resizes instead of leaving stale or missing rows.\n- Repeated workspace Git discovery and foreground-cwd checks no longer block rendering or API handling. (#1838, #2206)\n- Relative plugin commands now resolve from the plugin root. (#1949)\n- Windows installation preserves inherited `PATH` and related environment variables. (#1947)\n- Windows agent process discovery preserves the owning parent agent across wrapper processes. (#1514)\n- The Rose Pine `surface_dim` color remains visible when the outer terminal uses a matching theme. (#1946, #2002, thanks @brabli)\n- CLI socket commands now report a clear `server_not_running` error instead of a raw I/O error. (#1941, #1963, thanks @season179)\n- Non-UTF-8 CLI arguments now produce a usage error instead of panicking. (#2207, thanks @VialFlorian)\n- Copy-mode `e` now crosses long soft-wrapped CJK lines when a read window ends on a wide glyph. (#2145, thanks @kiakiraki)\n- Clients restore terminal state when they receive SIGHUP or SIGTERM. (#2041, thanks @MattJColes)\n- Windows now shows `system` notifications and completes MP3 notification sounds without leaving PowerShell players waiting for a timeout. (#1330)",
"assets": {
- "linux-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.7.5/herdr-linux-x86_64",
- "linux-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.7.5/herdr-linux-aarch64",
- "macos-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.7.5/herdr-macos-x86_64",
- "macos-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.7.5/herdr-macos-aarch64"
+ "linux-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-linux-x86_64",
+ "linux-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-linux-aarch64",
+ "macos-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-macos-x86_64",
+ "macos-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-macos-aarch64"
},
"releases": {
+ "0.8.0": {
+ "notes": "### Added\n- Added `herdr --skill` to print the agent skill bundled with the running Herdr binary.\n- Added `ui.pane_scrollbars = false` to hide terminal pane scrollbars and reclaim their reserved column. (#2167)\n- Added `ui.tab_bar_position = \"bottom\"` to place the desktop tab row below terminal panes. (#2117)\n- Added live filtering to the keybind help with `/`, Backspace, and `Ctrl+U`. (#1825, #1832, thanks @corrius)\n- Added Windows support for `experimental.switch_ascii_input_source_in_prefix` with Korean IMEs. (#1802, #1823, thanks @joonhwan)\n- Added Grok CLI session reporting and native restore with `grok --resume <id>`. (#1800, #1807, thanks @carlesso)\n- Added Antigravity CLI session reporting and native restore with `agy --conversation <id>`. (#1011, #1571, #2087, thanks @ludoo)\n- Added automatic text history reads for idle alternate-screen agents, with the application viewport restored after collection.\n- Added `workspace.move_block`, the `workspace.reordered` event, and atomic worktree-group reordering. (#1694)\n- Added a Simplified Chinese README. (#1990, thanks @patrick-xin)\n\n### Changed\n- Experimental options are no longer exposed in the Settings TUI and remain available through the config file.\n- Agent status indicators now use the same static workspace marks across the sidebar, navigator, and mobile views, eliminating continuous spinner rendering while agents work.\n- Hidden pane output no longer triggers unnecessary TUI rendering.\n- Windows preview downloads now include Herdr and a modern app-local ConPTY runtime in one archive. (#1533, #1644, #1828)\n- Worktree parents and children now stay packed together in the sidebar, including while groups are reordered.\n- Public documentation now separates stable, preview, and immutable versioned release snapshots.\n- Repository and installation links now use `herdrdev/herdr` after the GitHub organization migration.\n- Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0.\n\n### Fixed\n- Pane applications now receive semantic light/dark query responses and live Mode 2031 updates when the host appearance changes. (#714)\n- Remote attach now falls back to `sh` when the login shell cannot perform path discovery. (#1201)\n- PTY output continues to be read while pane input is temporarily blocked. (#1295)\n- Worktree CLI help and docs no longer advertise the redundant `--json` flag; worktree commands remain JSON-only and continue accepting the flag for compatibility. (#2171)\n- OpenCode 2 preview panes now appear as OpenCode agents and use the existing OpenCode status detection. (#2169)\n- Pane text copied through VS Code Remote Tunnels now reaches the viewing machine's clipboard instead of overwriting the remote host clipboard. (#2015)\n- Windows agent detection now follows Git Bash-launched agents across emulated `exec` process boundaries. (#2107)\n- Detached Windows servers and pane processes now survive logout from the OpenSSH session that started them. (#2008)\n- Windows `agent start` now launches agents without native arguments instead of timing out on an invalid empty PowerShell argument list. (#2072)\n- Headless servers now resume restored agent sessions without waiting for a TUI client to attach. (#2064)\n- Vibe and other Kitty-keyboard pane applications now receive shifted letters and punctuation when they request associated text. (#2020)\n- Kitty-keyboard pane applications now receive printable key releases without duplicate text input. (#1746)\n- Kitty graphics remain visible during host repaints. (#1628)\n- Pane applications now receive correct XTWINOPS terminal and cell-size query responses. (#835)\n- WSL clients query the host cell size when the terminal ioctl reports no pixels, keeping graphics sharp instead of using the 8x16 fallback. (#2146, #2160, thanks @WakaTaira)\n- Linux runtimes without terminal foreground process groups can opt into child-group agent detection with `HERDR_PROCESS_DETECTION=child-groups`. (#1982)\n- Installing the Herdr agent skill with the `skills` CLI no longer copies the entire repository. (#2022)\n- Nix builds now include the bundled agent skill required by `herdr --skill`. (#1889, #1890, thanks @olafkfreund)\n- Agent prompts now wait briefly after sending text before pressing Enter, preventing prompts from remaining in agent composers without starting a turn. (#1878)\n- Empty clipboard writes from pane applications no longer erase existing clipboard contents or show a copied confirmation. (#1893)\n- Plain mouse movement no longer triggers continuous full renders while preserving Herdr menu hover and pane application mouse tracking. (#1865)\n- Extended-button drags now preserve Herdr hover state while applications receive the drag.\n- `ui.copy_on_select = false` now retains drag and double-click word selections without copying; `Ctrl+C`, or `Cmd+C` when the host terminal forwards it, copies and clears the selection. (#1782)\n- Pane and agent read responses now report `truncated: true` when older terminal rows were omitted. (#1717)\n- Pane applications that query OSC 4 palette colors now inherit the host terminal palette. (#1752)\n- Ctrl-clicking a pane URL no longer forwards an unmatched mouse release to alternate-screen applications, preventing duplicate browser tabs. (#1761)\n- Known-agent integrations now leave pane ownership to confirmed process exit, so restarting Pi with the same saved session restores lifecycle state even with custom working UI. (#1648, #1792)\n- Nested or ephemeral Codex sessions no longer replace the owning pane's resumable session. (#1789, #1927, thanks @Pimpmuckl)\n- Pi RPC, JSON, and print processes no longer claim pane lifecycle state intended for Pi TUI sessions. (#2159, thanks @rhjoh)\n- Hermes state now comes from screen detection while its plugin reports resumable session identity, avoiding stale lifecycle authority from incomplete hooks.\n- OMP integration install, status, and uninstall now respect `PI_CONFIG_DIR` when `PI_CODING_AGENT_DIR` is not set, and installation refuses extension-directory collisions with Pi. (#1696)\n- OMP integrations now preserve Windows absolute session paths for native restore. (#2092, thanks @art-wiedzmin)\n- Claude integration updates preserve existing settings key order and formatting. (#2066)\n- Physical Escape key records on native Windows now bypass raw VT report framing, so pane applications receive Escape immediately and reliably. (#1736)\n- Native Windows key presses, grouped repeats, and releases now preserve their physical lifecycle and stay with the pane that received the initial press. (#2077)\n- Windows `pane send-keys` and `agent send-keys` now deliver semantic Escape as a complete key tap, preventing a following key from being interpreted as an Alt chord.\n- Shift+Enter now reaches native Windows pane applications with its modifier intact. (#1743, #1909, thanks @Pimpmuckl)\n- Ctrl+_ input bytes now decode as Ctrl+_ instead of Ctrl+-. (#2164, #2165, thanks @Sertug17)\n- Prefix and navigate modes now recognize non-US shifted keybindings while retaining legacy US punctuation support. (#1870)\n- Closing a non-focused workspace no longer changes the focused workspace. (#1328, #1877, thanks @yianL)\n- A background workspace that closes after its last pane exits no longer moves focus or hides the current workspace. (#1621, #1912, thanks @season179)\n- Directional pane focus now keeps Navigate mode active. (#1850, #1993, thanks @we11adam)\n- Closing a workspace's last tab through the CLI or API now closes the workspace like the TUI does. (#1760, #1899, thanks @season179)\n- Linked worktree workspaces retain their labels during Git metadata refreshes.\n- Clients repaint after transient terminal resizes instead of leaving stale or missing rows.\n- Repeated workspace Git discovery and foreground-cwd checks no longer block rendering or API handling. (#1838, #2206)\n- Relative plugin commands now resolve from the plugin root. (#1949)\n- Windows installation preserves inherited `PATH` and related environment variables. (#1947)\n- Windows agent process discovery preserves the owning parent agent across wrapper processes. (#1514)\n- The Rose Pine `surface_dim` color remains visible when the outer terminal uses a matching theme. (#1946, #2002, thanks @brabli)\n- CLI socket commands now report a clear `server_not_running` error instead of a raw I/O error. (#1941, #1963, thanks @season179)\n- Non-UTF-8 CLI arguments now produce a usage error instead of panicking. (#2207, thanks @VialFlorian)\n- Copy-mode `e` now crosses long soft-wrapped CJK lines when a read window ends on a wide glyph. (#2145, thanks @kiakiraki)\n- Clients restore terminal state when they receive SIGHUP or SIGTERM. (#2041, thanks @MattJColes)\n- Windows now shows `system` notifications and completes MP3 notification sounds without leaving PowerShell players waiting for a timeout. (#1330)",
+ "protocol": 19,
+ "assets": {
+ "linux-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-linux-x86_64",
+ "linux-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-linux-aarch64",
+ "macos-x86_64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-macos-x86_64",
+ "macos-aarch64": "https://github.com/herdrdev/herdr/releases/download/v0.8.0/herdr-macos-aarch64"
+ }
+ },
"0.7.5": {
"notes": "### Breaking Changes\n- Installed and linked plugins, including their enabled state, are now global to the current user instead of isolated by Herdr session. Plugins installed only in a named session on Herdr 0.7.3 must be installed or linked again. (#1174)\n\n### Added\n- Added a live-agent CLI facade with named `start`, atomic `prompt`, logical `send-keys`, and server-owned `wait` workflows. Agent startup targets an existing pane without changing topology, validates the requested interactive agent kind and strict agent name, and accepts native arguments after `--`.\n- Added transient declarative Agent view queries through `agent.view.set/clear`; filtered and sorted views now define sidebar, mobile, mouse, and agent-keybind navigation order.\n- Added one-shot plugin `[[startup]]` hooks for restoring plugin-owned state after server startup and live handoff.\n- Added per-token foreground, bold, and dim styling to expanded Space and Agent sidebar row layouts.\n- Added `ui.sidebar_start_collapsed` to launch Herdr with the sidebar collapsed. (#1463)\n- Added `ui.prompt_new_workspace_name` to ask for a workspace name before interactive TUI creation.\n- Added macOS support for the `HERDR_AGENT=<agent>` foreground-process hint, allowing agents hidden behind host-visible wrappers such as `nono` to use the named agent's screen manifest. (#679)\n\n### Changed\n- Agent commands now accept only a unique live agent name or the pane ID currently hosting that agent. Names are cleared when the occupant exits, is released, or is replaced. The old top-level `wait` commands were replaced by `agent wait` and `pane wait-output`, and `agent send` was replaced by `agent send-keys`.\n- The session navigator now uses connected tree glyphs, groups matches by workspace, and automatically selects the first result when a search begins. (#1611)\n\n### Fixed\n- CLI requests now return a machine-readable `protocol_mismatch` error when the client and server protocols differ, while recovery commands remain available. (#1435)\n- Linux sound notifications now terminate and reap audio players that do not exit, preventing unavailable audio from leaving CPU-bound `mpg123` processes behind. (#1622)\n- Oversized bracketed text pastes are now rejected with a client-local notification instead of disconnecting the client. (#1665)\n- Agent prompt waits now report `agent_prompt_stalled` after five seconds without an observed state change instead of waiting indefinitely after an ineffective submission.\n- `herdr config check` now reports unknown config keys with their full paths instead of treating ignored typos as valid configuration. (#1573)\n- Codex panes with customized static terminal titles now fall back to the live working footer instead of remaining idle, while OSC activity remains preferred. (#1563)\n- Grok panes now preserve working and blocked state from terminal signals and pinned background-work status instead of falling back to idle mid-turn.\n- OpenCode lifecycle reports are now serialized so out-of-order plugin events cannot leave an idle pane marked working. (#1519)\n- Kimi question prompts now report blocked until the user answers or dismisses them.\n- Pi lifecycle reporting now uses settled events, preventing transient message boundaries from publishing an idle state mid-turn.\n- The Pi, OMP, OpenCode, and Kilo Code integrations can now be installed on Windows and report lifecycle state and native session identity through Herdr's named-pipe API. (#1531)\n- Named agent prompts now honor live bracketed-paste mode before sending Enter, preserving OpenCode text such as `A != B` instead of triggering shell mode. (#1525)\n- New panes, tabs, layouts, and workspaces using `new_cwd = \"follow\"` now inherit the foreground process-group leader's working directory instead of an unrelated helper process directory. (#1472)\n- Cached pane working directories no longer trigger repeated filesystem checks, avoiding slow sidebar rendering on network filesystems such as Ceph. (#1603)\n- Windows foreground-process snapshots are now shared across panes, reducing idle CPU use in sessions with many panes. (#1158)\n- Terminal diff streams now batch contiguous writes, reducing the visible wave effect while scrolling pane history. (#283)\n- A standalone Escape arriving beside another key is now preserved as its own input instead of being combined into a fabricated Alt chord. (#541)\n- Pane viewports that were following live output now continue following after a resize.\n- Mouse selections now remain visible when `ui.copy_on_select = false` while clipboard writes stay disabled. (#1471)\n- Workspace close confirmation now shows the current workspace name instead of a stale or unrelated label. (#1364)\n- Plugin command arrays now preserve whitespace-only arguments. (#1594, #1613)\n- Plugins can now be installed or linked while no Herdr server is running. (#1670)\n- Remote attach now discovers Herdr installed in mise's canonical tool path before offering to install a sidecar binary. (#1201)\n- Noninteractive update, plugin, integration, sound, custom-command, and Git subprocesses no longer flash console windows on Windows. (#1468)\n- Live handoff now preserves installed plugins and no longer lets the next plugin installation overwrite the existing registry. (#893)\n- `herdr agent wait` now returns `agent_not_running` promptly when its target pane closes instead of waiting for the full timeout. (#1439)\n- Pane graphics streams now shut down cleanly when a client disconnect races stream teardown.",
"protocol": 17,