Governance, Sold Separately
Operator Brief
heypi, new to the watchlist, sells the part of a coding agent that says no: approvals, audit, sandboxing and secret handoff, built on Pi, the harness that refuses to ship governance in its core. It documents those controls carefully and leaves its headline approvals off by default. The rest of the window ran from eve’s durable human-in-the-loop gates to an OpenHands CVE batch merged into no release, so the question is not whether governance exists but whether anyone switched it on and shipped it.
- Upgrade / check
- heypi: before deploying it for its approvals, list every tool that must wait for a named approver and wire each one. Nothing requires approval by default; the only automatic gate is the bash command classifier. Signal
- heypi: 0.2.0-beta.0 breaks config. Root-level approver blocks now fail at startup and belong in adapter-local permissions; migrate them or pin 0.1.3. Signal
- OpenHands: decide which channel you run. Five dependency CVE fixes landed on main on 23 June; release 1.8.0 has none of them. Signal
- Try
- heypi: for a shared or team-facing bot, pick the sandbox runtime explicitly, the network-off default or Docker/Gondolin, instead of accepting a host runtime past its startup warning. Signal
- heypi: use secret_request to keep credentials out of chat and the model context, and isolate the runtime workspace, where saved secrets rest as readable files. Signal
- Watch
- Uncertain
- Whether any team runs heypi. It had about 100 GitHub stars and a 3-point Show HN when we first read it, and no public deployment backs the ‘multiplayer chat agent for your team’ claim. Its weight here is its position, not its uptake.
- The OpenHands CVE IDs come from commit titles. The dependency bumps are verified on main; the individual advisories were not resolved one by one.
heypi’s headline feature is approvals. Its own approvals page contains the sentence that walks the headline back: approval does not make every tool call require approval. Tool confirmation does that. Out of the box, the only automatic gate is a bash command classifier that blocks destructive commands and pauses on risky ones. Every other tool runs ungated until an operator wires a policy by hand.
That is documented, not concealed. It also means a team that adopts heypi for its approvals is buying a kit, not a posture.
heypi joins the watchlist this window. It is a TypeScript
framework for one agent a whole team uses in Slack, Discord and Telegram, with
approvals, an audit record, sandboxed tools and encrypted secret handoff. What
makes it worth the space is what it is built on. It pins
Pi as a hard dependency, and Pi is the harness that has made a
principle of refusing to govern: no permission popups, no plan mode, build your
own confirmation flow. heypi is that confirmation flow, sold as a product. The
agent loop is the commodity underneath. The authority around it is the thing you
buy. A builder on the Flue side of the same problem replied to the launch:
heypi looks awesome. love when great ideas converge. keep cooking
@andrew_barba
The real defaults are the quiet ones
The landing page promises a multiplayer chat agent for your team with approvals, an audit trail, and sandboxed tools. The docs describe something more modest and more useful: governance primitives with conservative defaults, where the headline controls are things you assemble.
The conservatism lives where nobody demos it. The default runtime is an in-process bash interpreter over a virtual filesystem with the network off. The admin panel, which is also where the advertised audit trail lives, as typed trace events rather than a ledger, is off by default, binds to loopback, and hands out a one-time login URL that expires in five minutes. Memory is off. The docs say of the admin setting: never set it on a public host.
heypi is at its best when it states a limit. The secret handoff encrypts a credential in the browser so it never enters chat history or the model context, then tells you the secret rests as a readable file in the runtime workspace. The encryption protects the handoff, not the storage. It does not replay an in-flight turn after a crash, and says so. A Show HN commenter named the value: most frameworks forget the human-in-the-loop part, critical for anything with real side-effects. heypi remembers it, then leaves it switched off until you reach for the switch.
The
0.2.0-beta.0
tag (23 June) tightened things further. Webhooks are HTTPS by default, and a
misplaced root-level approver block now fails at startup instead of silently not
binding. It is a beta, heypi cuts
no GitHub releases, only tags, and two
dozen commits already sit on main past it.
One maintainer’s week
Adding heypi means depending on it. The night the beta shipped, its maintainer posted this:
Getting close to burnout with my open source projects. I got Pages CMS 2.0.0 out a few weeks ago, and I'm about to release Basecoat 1.0.0. Oh, and also got heypi 0.2.0 beta released tonight, and I have the new ReallySimpleDocs on its way (moved to @astrodotbuild). I think I'll be taking a sabatical from most of this over the summer (except heypi). If you want to see what Basecoat 1.0.0 looks like: https://basecoat.hunvreus.workers.dev/
Ronan Berder @hunvreus He was releasing three projects at once. That is not a criticism of the work, which is good, and not a prediction about the project. It is the operator fact under a one-person dependency: the governance layer you are adopting is maintained by somebody with a finite week. Ask the same of every framework in this issue, including the ones with a company behind them.
The same two days, from the capability side
Not everything that shipped was about saying no. Hermes added a /learn command:
feed it directories of any source material (code, API docs, manuals, PDFs, configs) and it distills a verifiable reusable skill
@NousResearch The word “verifiable” is doing the work there, and the
release note is its only evidence. A Paperclip fork launched selling the
governance layer as an org chart: You stay the board; the agents ship the work, with proof
@bartender_loopy
A relayed talk quote, attributed to an unnamed OpenAI engineer, claimed
90% of our engineers use Codex subagent harnesses + loops to ship code 5× faster
@0xMovez. We hold no primary source and the number is not a
finding. The prescription under it is the interesting part: give the agent a way
to check its own output. That is where the governance argument lands too, reached
by people who were not thinking about approvals.
heypi against its neighbours
Against Pi, heypi is the layer Pi told you to build, not a competitor. Against OpenClaw, which it was first described as a version of (Openclaw, but for teams), it trades a single-user gateway for a multiplayer one, with approver and admin identities scoped per chat adapter rather than per sender.
The comparison that changes a decision is eve. Both document their governance. heypi ships approvals off and disclaims crash replay. eve’s human-in-the-loop docs make approval gates and a pause-for-a-human tool first-class, and its durable runtime resumes the paused turn after a crash. heypi is an app you run on your own host; eve is an agent that lives on a managed runtime. If an in-flight turn must survive a crash, that difference decides it. The fuller comparison is in the heypi profile.
A boundary, withdrawn in public
Hermes cut no tag in these two days, but it held a governance argument in the
open. On 22 June a
commit on
main stopped the dashboard auto-importing the Python backends of
user-installed plugins, reserving backend routes for bundled ones. It was part
of the security wave Protected on Paper covered. A plugin author found it on
the 24th, tagged the lead, and wrote: Latest commits on Hermes break existing plugin contracts.
@8bit64k_X
The lead replied within half an hour that it was a mistaken change being
reverted, and why: The security boundary is not saved by this its saved by people not being stupid and exposing their dashboard insecurely to the internet.
@Teknium
Set that against the record and it is a real position, not a shrug. The same wave answered a campaign that, by the project’s own commits, found exposed dashboards. His answer holds that line at the operator’s network, not in the plugin API, and keeps the extension contract whole. We hold no receipt for the revert inside the window; it is his statement. It is also the opposite of heypi’s bet. heypi sells the boundary. Hermes hands it back to you.
OpenHands patched on main, again
The one item on the rest of the watchlist an operator must act on is OpenHands’.
Dependency fixes for
CVE-2026-44727 in jupyter-server,
CVE-2026-49458 in dompurify
and three more, in msgpack, idna and bleach, landed on main on 23 June. No tag
was cut. The only release is still 1.8.0, from 10 June. “OpenHands patched these
CVEs” is true on the default branch and false in the binary most operators run,
which is the gap Protected on Paper
described a week ago.
Elsewhere the same gap held at lower stakes.
Codex cut five 0.143.0 alpha tags
while stable stayed at 0.142.0.
Agent Zero put about
nineteen more commits on its non-default ready branch, with no tag past v1.20.
One correction to the last issue. Protected on Paper said
Flue‘s
private-by-default run rewrite and the removal of flue logs sat in an Unreleased
changelog section, not a tag. Both were in the beta tag 1.0.0-beta.3, dated 22
June. No stable carries them. This window added only a scoped @flue/react beta
fix.
Provider notes
heypi (0.1.0 through 0.2.0-beta.0). New. Sound quiet defaults, headline controls left to the operator, newest fixes on main past a beta.
OpenHands (1.8.0). Another security batch that exists only on main.
Codex (stable 0.142.0). Alpha tags only.
Agent Zero (v1.20). Still staging on ready, still untagged.
Flue (@flue/react 1.0.0-beta.4). A scoped React fix.
Hermes Agent (v2026.6.19). No tag; a plugin-contract break on main,
which its lead said was being reverted.
Claude Code, Gemini CLI, Pi, OpenClaw, Paperclip. No material change in the day. Last tags hold at 2.1.186, v0.47.0, v0.79.10, v2026.6.9 and v2026.618.0.
Somebody else’s refusal
A harness that refuses to govern points upward. A framework whose whole product is the governance layer ships its headline control switched off. Between them sits an operator who now buys the ability to say no separately from the thing that acts.
The argument reached past heypi the same day. Ashwin Gopinath, the day after
Anthropic launched Claude Tag in Slack, called it useful and argued that the
lock-in to worry about is context, not the model:
Your company memory should be inspectable, permissioned, portable, and model-neutral.
@ashwingop And Simon Willison, whose prompts in Claude Code
for web mostly start by cloning a repo, showed what a refusal feels like from
the receiving end. He reported that Claude Code for web just started saying "GitHub is blocked by egress policy"
@simonw and asked
whether it was a known issue. He had not written that policy.
Buying it separately is not obviously wrong. Specialisation usually beats one vendor doing everything badly. But it changes what you are purchasing. You are not buying a boundary. You are buying somebody else’s promise to hold one, kept on somebody else’s week.
Top signals from this issue
- heypi heypi's headline feature is approvals, but nothing requires approval by default
- heypi heypi 0.2.0-beta.0 breaks root-level approver config and makes webhooks HTTPS-by-default -- and it is a beta
- OpenHands OpenHands shipped a five-item dependency-CVE batch to main on 2026-06-23 -- in no tagged release
- heypi For shared or team-facing heypi bots, the sandbox runtime is an explicit choice -- host runtimes ship with only a warning
- heypi heypi keeps secrets out of chat and the model context, but they rest plaintext-readable in the runtime workspace
Noted, not headlined
Items checked this window that do not demand a decision from you this week -- listed so the restraint is visible, not silent.
- heypiThat heypi is a governance layer built on Pi is this issue's argument and the spine of the heypi profile. It is an idea to hold, not a decision to make.
- heypinpm create heypi and the single-host deploy make it easy for a team with one developer to start. They change no authority decision; the profile covers them.
- heypiheypi does not replay a turn after a crash, and says so. That matters for the eve comparison but is a posture to understand, not an action to take.
- codexFive 0.143.0 alpha tags on 23 June, and stable stayed at 0.142.0. Motion, not a shipped change.
- agent-zeroAbout nineteen more commits on the non-default ready branch, and still no tag past v1.20. Real work, not yet something anyone can install.
- flueA scoped @flue/react 1.0.0-beta.4 fix, plus a correction to the last issue's Flue line, which is in the body. The beta itself is not news.
Projects reviewed in this research run
Research artifacts and publication history are open in the repository.
Sources
Primary links, including exact changelog lines when available.
- commit2026-06-24-openhands-dependency-cve-batch-main-unreleasedgithub.com/OpenHands/OpenHands/pull/14943commit2026-06-24-openhands-dependency-cve-batch-main-unreleasedgithub.com/OpenHands/OpenHands/pull/14872commit2026-06-24-openhands-dependency-cve-batch-main-unreleasedgithub.com/OpenHands/OpenHands/pull/14944commit2026-06-24-openhands-dependency-cve-batch-main-unreleasedgithub.com/OpenHands/OpenHands/pull/14946commit2026-06-24-openhands-dependency-cve-batch-main-unreleasedgithub.com/OpenHands/OpenHands/pull/14945