aboutsummaryrefslogtreecommitdiff
path: root/docs/next/website
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-06-12 19:07:07 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-06-12 19:10:09 +0300
commitf7a7da03fc27cc6fe4e6a44dabddcd303f939bb9 (patch)
tree69a00241e4500703bb723b64dd0060cc83730a0b /docs/next/website
parent53429206b736aa0fcfb1c5bfc1c0b11dcca3a059 (diff)
fix: stabilize public pane and tab ids
refs #569
Diffstat (limited to 'docs/next/website')
-rw-r--r--docs/next/website/src/content/docs/agents.mdx6
-rw-r--r--docs/next/website/src/content/docs/integrations.mdx4
-rw-r--r--docs/next/website/src/content/docs/socket-api.mdx64
3 files changed, 37 insertions, 37 deletions
diff --git a/docs/next/website/src/content/docs/agents.mdx b/docs/next/website/src/content/docs/agents.mdx
index ae45d26b..783ad68a 100644
--- a/docs/next/website/src/content/docs/agents.mdx
+++ b/docs/next/website/src/content/docs/agents.mdx
@@ -99,7 +99,7 @@ Each supported agent has its own integration name and behavior. See [Integration
You can rename an agent target for display:
```bash
-herdr agent rename 1-1 reviewer
+herdr agent rename w1:p1 reviewer
herdr agent rename reviewer --clear
```
@@ -110,7 +110,7 @@ Targets accept terminal IDs, unique agent names, detected or reported agent labe
Integrations can report a visual status label without changing semantic state.
```bash
-herdr pane report-agent 1-1 \
+herdr pane report-agent w1:p1 \
--source custom:indexer \
--agent docs-bot \
--state working \
@@ -132,7 +132,7 @@ herdr agent start reviewer --cwd ~/project --split right -- pi
You can place that agent in a specific workspace or tab:
```bash
-herdr agent start docs --workspace 1 --tab 1-1 -- claude
+herdr agent start docs --workspace w1 --tab w1:t1 -- claude
```
Use `herdr pane ...` commands for ordinary terminals, servers, tests, shells, and low-level terminal input. For example, use `pane split` and `pane run` for `cargo test`, not `agent start`, unless that terminal is intentionally being treated as an agent target.
diff --git a/docs/next/website/src/content/docs/integrations.mdx b/docs/next/website/src/content/docs/integrations.mdx
index d4181e35..1506479f 100644
--- a/docs/next/website/src/content/docs/integrations.mdx
+++ b/docs/next/website/src/content/docs/integrations.mdx
@@ -231,7 +231,7 @@ Integrations can report a short visual label without changing the semantic state
For example, an agent can remain semantically `working` while showing `indexing` in the UI.
```bash
-herdr pane report-agent 1-1 \
+herdr pane report-agent w1:p1 \
--source custom:docs \
--agent docs-bot \
--state working \
@@ -264,7 +264,7 @@ herdr agent list
Read a pane when you need to verify what Herdr can see:
```bash
-herdr pane read 1-1 --source recent --lines 50
+herdr pane read w1:p1 --source recent --lines 50
```
If integration state looks wrong, first confirm the agent is running inside Herdr and that the relevant hook or plugin was installed for the same user account.
diff --git a/docs/next/website/src/content/docs/socket-api.mdx b/docs/next/website/src/content/docs/socket-api.mdx
index a6b91461..058513f5 100644
--- a/docs/next/website/src/content/docs/socket-api.mdx
+++ b/docs/next/website/src/content/docs/socket-api.mdx
@@ -47,8 +47,8 @@ herdr tab create --label logs
Split a pane and run a command:
```bash
-herdr pane split 1-1 --direction right
-herdr pane run 1-2 "npm test"
+herdr pane split w1:p1 --direction right
+herdr pane run w1:p2 "npm test"
```
Inspect and rearrange panes:
@@ -59,19 +59,19 @@ herdr pane neighbor --direction right --current
herdr pane resize --direction right --amount 0.1 --current
herdr pane swap --direction right --current
herdr pane zoom --on --current
-herdr pane split 1-1 --direction right --ratio 0.333
+herdr pane split w1:p1 --direction right --ratio 0.333
```
Wait for an agent:
```bash
-herdr wait agent-status 1-1 --status done
+herdr wait agent-status w1:p1 --status done
```
Read pane output:
```bash
-herdr pane read 1-2 --source recent --lines 50
+herdr pane read w1:p2 --source recent --lines 50
```
## Raw methods
@@ -92,16 +92,16 @@ Raw socket method names use dot notation:
Some CLI commands are conveniences around these methods. For example, `herdr agent wait` resolves an agent target and then subscribes to pane agent state events.
-Pane control methods use public pane ids such as `1-1`. Omit `pane_id` to use
+Pane control methods use public pane ids such as `w1:p1`. Omit `pane_id` to use
the server's active focused pane.
```json
-{"id":"req_layout","method":"pane.layout","params":{"pane_id":"1-1"}}
-{"id":"req_neighbor","method":"pane.neighbor","params":{"pane_id":"1-1","direction":"right"}}
-{"id":"req_edges","method":"pane.edges","params":{"pane_id":"1-1"}}
+{"id":"req_layout","method":"pane.layout","params":{"pane_id":"w1:p1"}}
+{"id":"req_neighbor","method":"pane.neighbor","params":{"pane_id":"w1:p1","direction":"right"}}
+{"id":"req_edges","method":"pane.edges","params":{"pane_id":"w1:p1"}}
{"id":"req_focus","method":"pane.focus_direction","params":{"direction":"right"}}
-{"id":"req_resize","method":"pane.resize","params":{"pane_id":"1-1","direction":"right","amount":0.1}}
-{"id":"req_zoom","method":"pane.zoom","params":{"pane_id":"1-1","mode":"toggle"}}
+{"id":"req_resize","method":"pane.resize","params":{"pane_id":"w1:p1","direction":"right","amount":0.1}}
+{"id":"req_zoom","method":"pane.zoom","params":{"pane_id":"w1:p1","mode":"toggle"}}
{"id":"req_split","method":"pane.split","params":{"direction":"right","ratio":0.333}}
```
@@ -113,8 +113,8 @@ can make the next decision without private layout state.
`pane.swap` supports directional and explicit forms:
```json
-{"id":"req_swap_dir","method":"pane.swap","params":{"pane_id":"1-1","direction":"right"}}
-{"id":"req_swap_explicit","method":"pane.swap","params":{"source_pane_id":"1-1","target_pane_id":"1-2"}}
+{"id":"req_swap_dir","method":"pane.swap","params":{"pane_id":"w1:p1","direction":"right"}}
+{"id":"req_swap_explicit","method":"pane.swap","params":{"source_pane_id":"w1:p1","target_pane_id":"w1:p2"}}
```
Swap is same-tab only. It preserves split shape, split ratios, pane ids, and
@@ -127,9 +127,9 @@ full-tab layout.
`pane.zoom` toggles, enables, or disables zoom for the target pane's tab:
```json
-{"id":"req_zoom_toggle","method":"pane.zoom","params":{"pane_id":"1-1"}}
-{"id":"req_zoom_on","method":"pane.zoom","params":{"pane_id":"1-1","mode":"on"}}
-{"id":"req_zoom_off","method":"pane.zoom","params":{"pane_id":"1-1","mode":"off"}}
+{"id":"req_zoom_toggle","method":"pane.zoom","params":{"pane_id":"w1:p1"}}
+{"id":"req_zoom_on","method":"pane.zoom","params":{"pane_id":"w1:p1","mode":"on"}}
+{"id":"req_zoom_off","method":"pane.zoom","params":{"pane_id":"w1:p1","mode":"off"}}
```
Omitting `pane_id` targets the server's active focused pane. The response is
@@ -165,13 +165,13 @@ Worktree methods manage Git checkouts as Herdr workspaces. `worktree.create` cre
Create a worktree from a source workspace:
```json
-{"id":"req_1","method":"worktree.create","params":{"workspace_id":"1","branch":"worktree/api","focus":false}}
+{"id":"req_1","method":"worktree.create","params":{"workspace_id":"w1","branch":"worktree/api","focus":false}}
```
Open an existing checkout:
```json
-{"id":"req_2","method":"worktree.open","params":{"workspace_id":"1","branch":"worktree/api","focus":true}}
+{"id":"req_2","method":"worktree.open","params":{"workspace_id":"w1","branch":"worktree/api","focus":true}}
```
Remove a linked checkout:
@@ -229,7 +229,7 @@ Integrations report agent state with `pane.report_agent`.
"id": "req_1",
"method": "pane.report_agent",
"params": {
- "pane_id": "1-1",
+ "pane_id": "w1:p1",
"source": "custom:docs",
"agent": "docs-bot",
"state": "working",
@@ -250,7 +250,7 @@ Session-only official integrations report native session references with `pane.r
"id": "req_2",
"method": "pane.report_agent_session",
"params": {
- "pane_id": "1-1",
+ "pane_id": "w1:p1",
"source": "herdr:codex",
"agent": "codex",
"agent_session_id": "..."
@@ -282,7 +282,7 @@ Use `pane.report_metadata` when a user hook wants to customize presentation with
"id": "req_2",
"method": "pane.report_metadata",
"params": {
- "pane_id": "1-1",
+ "pane_id": "w1:p1",
"source": "user:claude-title",
"agent": "claude",
"title": "Refactor auth middleware",
@@ -310,7 +310,7 @@ Subscribe to events when you need a long-lived stream:
"method": "events.subscribe",
"params": {
"subscriptions": [
- { "type": "pane.agent_status_changed", "pane_id": "1-1", "agent_status": "blocked" }
+ { "type": "pane.agent_status_changed", "pane_id": "w1:p1", "agent_status": "blocked" }
]
}
}
@@ -327,10 +327,10 @@ Use `events.wait` when you want one matching event and then a response.
Use `pane.read` through the CLI unless you are writing a protocol client.
```bash
-herdr pane read 1-1 --source visible --lines 80
-herdr pane read 1-1 --source recent --lines 120
-herdr pane read 1-1 --source recent-unwrapped --lines 120
-herdr pane read 1-1 --source detection
+herdr pane read w1:p1 --source visible --lines 80
+herdr pane read w1:p1 --source recent --lines 120
+herdr pane read w1:p1 --source recent-unwrapped --lines 120
+herdr pane read w1:p1 --source detection
```
`recent-unwrapped` is useful for logs because it ignores soft wrapping.
@@ -341,8 +341,8 @@ herdr pane read 1-1 --source detection
Use waits to coordinate agents and scripts.
```bash
-herdr wait agent-status 1-1 --status done
-herdr wait agent-status 1-1 --status blocked
+herdr wait agent-status w1:p1 --status done
+herdr wait agent-status w1:p1 --status blocked
```
Agent waits observe semantic state, not arbitrary command completion.
@@ -357,10 +357,10 @@ Successful responses look like this:
"result": {
"type": "pane_info",
"pane": {
- "pane_id": "1-1",
+ "pane_id": "w1:p1",
"terminal_id": "term_abc123",
- "workspace_id": "1",
- "tab_id": "1-1",
+ "workspace_id": "w1",
+ "tab_id": "w1:t1",
"focused": true,
"agent_status": "working",
"revision": 42
@@ -401,7 +401,7 @@ Fields such as `last_check_unix`, `last_result`, `active_version`, `cached_remot
{
"id": "req_2",
"method": "agent.explain",
- "params": { "target": "1-1" }
+ "params": { "target": "w1:p1" }
}
```