entwurf
Work with AI in another harness, without taking it out of its own home. Open visible sibling sessions and address them by garden id. Their authentication, tools and conversations are not absorbed into one execution engine.
Call a sibling, not a replacement harness
A session that has spent hours reading the code and a session bringing a fresh review need different places. Changing a model inside one conversation, or collecting every tool and record inside one agent, is not the only way to collaborate.
Entwurf puts a narrow connection between independently running harnesses. Pi, pi-durable, Claude Code, Codex, Copilot, OMP and Antigravity keep their execution, authentication, tools and transcripts. A sibling is an independent session with its own conversation, not a disposable worker. Different capabilities do not make a hierarchy of siblings.
0.41.1 — the same thin app, now on Pi 1.4
Entwurf’s thin pi-durable reference app moves to the Pi 1.4 SDK; the engine stays the SDK’s. 0.41.1 moves the nine pinned Pi SDK packages from 1.3.0 to 1.4.0 together. Entwurf owns only that app/TUI composition; execution, storage, queues, compaction and recovery remain the SDK’s. The task panel now names sleeping work, its local wake time and the blocked reason the SDK reports. Cancelling is still not retrying, and no retry command was added.
The storage step goes one way. The first SDK 1.4 open of an existing durable session migrates its storage to schema 2, and 0.41.0 (SDK 1.3) then refuses that session. Reinstalling the older package is not a rollback. Restoring a backup returns the conversation and task database to that point, but it does not undo messages sent or tool effects in between. Back up the whole session file set first, prove the old process has exited, and choose the session in the --resume picker. The upgrade steps spell this out.
0.41.0 — a birthday, not a disposable session
A garden id is a sibling’s birthday: resting does not mean starting over. With 0.41.0, the human operator can request a guarded retirement of an ordinary Pi or native Claude Code sibling, then reopen its own native conversation under the same garden id in tmux. The record and transcript remain; the next meeting is not a replacement session reconstructed by Entwurf.
A sibling is not a job title. The coordinating sibling is a sibling too. We agree on the work with the person and invite whichever sibling can help—not a permanent developer, reviewer or adviser assigned at birth. The fictional team bookmark example keeps both garden and native session ids. It is a caller-maintained memory aid, not runtime configuration, an authority registry or an automatic team manager.
Retirement is never autonomous. One explicit operator request permits one guarded attempt, not a roster sweep or a retry after an unknown result. A Pi shutdown acknowledgement is not proof of exit; Claude Code retirement concerns one verified Linux process, not all its descendants or guaranteed transcript flushing. One real retire-and-return round trip per backend was measured at an earlier candidate, with blind recall; that dated observation is not a claim for every harness or platform. The release acceptance record keeps those boundaries visible.
The earlier crossing — 0.40.0
A message to an existing sibling crossed between two machines, and an answer came back. 0.40.0 carries that first exchange. A person lays the bridge: the operator connects the machines, owns SSH authentication, and declares which pair may talk. The remote route crosses only that bridge. It does not discover siblings, open them remotely, or resend because an answer has not arrived.
The first trial was one pair of already-open pi-durable siblings on two Linux machines. One message, one reply, at a pre-release commit—not a new measurement at the shipped SHA or remote certification for every harness and platform (first exchange).
Today’s boundary is the operator’s SSH account and a declared pair, not cryptographic identity for a sibling. A person keeps visible-first by holding the sessions open; the code does not prove that a screen is visible. Acceptance is not a read, and an error is not proof of non-delivery. Instead of presenting these questions as solved, the release carries principles and open questions for remote siblings.
Open, message, rest, return
Open
entwurf_fresh_call — Open a sibling in a new Herdr tab or, outside Herdr, a new tmux window. Its own callback establishes the new garden id.
Message
entwurf_v2 — Reach an existing sibling through its harness’s delivery rail. Delivery launches no runtime; acceptance is not a completed reply.
Rest
entwurf_retire_call — Attempt retirement of one ordinary Pi or native Claude Code sibling explicitly named by the operator. Action, event recording and lock release have separate results.
Return
entwurf_resume_call — Reopen a dormant Pi or Claude Code conversation in tmux under its own garden id. Its record selects the native conversation; the verb submits no prompt.
A garden id does not replace the harness’s session id. It is a shared address attached to that native session. A window title or position is not an address, and an opened window is not proof that a sibling answered.
Inside real Herdr: Pi ↔ native Claude Code
Two siblings keep their own harnesses and transcripts, meeting through garden ids and official Entwurf verbs. This is the original demo from the 0.35.0 period, not a new recording of the two-machine crossing or proof of every upgrade path.

Original demo and reproducibility boundaries
Two workspaces, one address
Already using Herdr? The plugin activates Entwurf for integrated Pi and Claude Code sessions and opens siblings in new tabs in the caller’s workspace. An optional read-only pane shows the citizens’ visible placement. The plugin does not install a harness, subscription or login.
# First prepare Pi 1.4, Claude Code >=2.1.306 and Herdr's pi / Claude Code integration
herdr plugin install junghan0611/entwurf/plugins/herdr --ref v2026.10.23-herdr.0.41.1 --yes
pi --entwurf-controlOutside Herdr, use the direct installation and tmux. Fresh-call supports six backends: Pi, pi-durable, Claude Code, Codex, Copilot and OMP. Antigravity has native-push delivery into an existing live conversation, not fresh-call support. Follow the README for installation and the Herdr guide for prerequisites, updates and removal.
Current releases and boundaries
As of October 23, 2026, core v0.41.1 is released on GitHub and published to npm. The pinned Herdr plugin 0.41.1 snapshot above acquires exactly npm 0.41.1. Ordinary Pi support is now >=1.4.0 <1.5: upgrade Pi to 1.4 first, because a Pi 1.3 host is refused by name when the plugin activates. Once Pi is on 1.4, a settled npm 0.41.0 installation can rebind to the same npm source under the Herdr guide’s ownership conditions. A host that installed a checkout candidate must explicitly deactivate it first. For Pi 1.3.x, the previous core 0.41.0 and Herdr 0.41.0 snapshot remain its pair. Claude Code needs its supported floor >=2.1.306, which its managed hook lifecycle and same-id return require. For pi-durable, the upstream SDK still owns execution, authentication, queues, SQLite, transcripts and recovery.
| Surface | Connection and boundary |
|---|---|
| Pi | Unix control sockets on non-Windows; named pipes in the bounded Windows preview. Operator-requested retirement and same-id return in tmux; Windows retirement is not certified here. |
| Native Claude Code | Self-fetch delivery. Same-id return in tmux uses the recorded native conversation; retirement requires the Linux pidfd path. Former model and permission options are not restored. |
| pi-durable, Copilot, OMP | Their own self-fetch rails. pi-durable can call retirement and return for supported siblings, but is not itself a lifecycle target. Copilot and OMP have no Entwurf same-id return. |
| Codex, Antigravity | Native push into a live conversation, not a mailbox or automatic resumption. |
| Herdr plugin | Activates and opens Pi and Claude Code. Same-id return from inside Herdr refuses; retirement there is unmeasured. Durable-on-Herdr remains a separate pilot. |
| Remote pair | Connects existing siblings on two operator-declared machines, without remote launch or resume. First demonstrated with a pair of pi-durable siblings on Linux. |
Native-Windows Pi remains a bounded preview introduced in 0.39.0, not certification of other Windows harnesses, Herdr, tmux, fresh-call/resume or a real vendor model. The 0.41.1 Herdr snapshot’s install/use/deactivate/reinstall evidence also stays within a clean Linux container at the public main ref: it does not cover a tag-ref install, real panes or model work. The 0.41.1 artifact passed Windows carrier and Linux consumer acceptance, and the npm bytes equal that accepted file; that still does not certify a Windows lifecycle or the carrier-bearing tarball on macOS. For the 0.41.0 cut, agy live validation was explicitly excluded, not passed. Detailed scope belongs in the support record and the 0.41.1 release record.
Claude ACP inside Pi and a native Claude Code sibling are different routes. Entwurf does not present their tools, thinking levels or restart behavior as equivalent, or reimplement another harness’s internals to fill a feature promise.
Houses that keep their own work
- agent-config — Shared skills, profiles, working agreements and the lived proving ground. Entwurf does not take ownership of that environment inside every harness.
- andenken — The memory axis for recovering decisions from past conversations and the public garden. Retrieval is not proof that a running session was restored.
- Each harness — Its own authentication, execution, tools and conversation. Different capabilities are not disguised as one uniform surface.
This is the project’s front door. The repository owns installation and execution contracts; the resident’s note keeps dated judgments and boundaries.