summaryrefslogtreecommitdiff
path: root/.agents
diff options
context:
space:
mode:
Diffstat (limited to '.agents')
-rw-r--r--.agents/skills/pardes-9p/SKILL.md6
1 files changed, 5 insertions, 1 deletions
diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md
index 354932b3..5e2280f9 100644
--- a/.agents/skills/pardes-9p/SKILL.md
+++ b/.agents/skills/pardes-9p/SKILL.md
@@ -52,6 +52,7 @@ $m/log recent events, then EOF: new|del|rename|save <serial> <name>, msg
(exec 3<>$m/log; echo follow >&3; cat <&3 waits for new ones; tail -f does not)
$m/screen the rendered screen as JSON, frozen per open
$m/listeners this session's dial addresses
+$m/focus the serial of the pane with the keyboard; echo a serial into it to move the keyboard
$m/pane/new open it to make a pane, read names it; rmdir $m/pane/<n> closes it
$m/os/ the host filesystem
```
@@ -130,7 +131,10 @@ written until someone writes or truncates it, so writing an address and reading
it back evaluates it, and two clients addressing the same pane will interfere.
`$pane/ctl` reads acme's window status line — serial, tag length, body length,
a reserved zero, the dirty flag, the width in cells, the font and the tab
-width — and takes the one verb `get`.
+width, then `current` or `notcurrent` — and takes `get` (reload from disk) and
+`lock`/`unlock`. The lock binds only clients that take it, and is held by the
+open that wrote it, so a shell holds an fd across the edit:
+`exec 3>$pane/ctl; echo lock >&3; ...; exec 3>&-`.
Terminal panes have no file: writing their `body` sends child input, and
truncation does not erase terminal history.