Why Pi is mandatory
Pi.dev is tabichat's only supported agent harness. That is not a matter of taste — it falls out of what tabichat's central feature has to do to an agent.
Auto-renew is not a message you send to an agent. It is that agent's own session ending and a fresh one taking its place, from inside the harness that is already running. Very few harnesses let an extension do that to itself.
Pi does. Its extension API hands a command the operations that replace a session, reads the live context percentage that decides when to fire, and, after the replacement, hands back a working context for the new session, so the extension survives its own renewal. A room message can drive that same path, which is what lets a seat renew itself at the context floor and lets a lead renew one it coordinates.
- Pi fires tabichat as an extension in-process:
--tabichat, loadingsrc/extensions/tabichat/ - Pi exposes session replacement to extensions; the renew is real, not a re-prompt
- Pi hands the renewed seat its own live context, so the room does not go quiet