Watchable Is Not Watched
Operator Brief
For two weeks the open agent projects spent their commits making the agent’s computer something an operator can look at: Agent Zero’s browser and desktop, OpenClaw’s progress inside the chat, Paperclip’s cost and pause controls, OpenHands’ scrubbed logs. In the last two days of the window the vendors shipped agents built to work while nobody looks: Codex in a background browser tab, Claude’s dreaming editing memory between sessions. A window into the agent is worth what it costs only if something still tells you when to look through it.
- Try
- Agent Zero: give its native browser a task you would normally hand a headless agent, and check the screenshots against what the transcript claims happened. Signal
- Gemini CLI: prefer memory that arrives as a patch you accept. The Auto Memory inbox proposes; it does not write silently. Signal
- Before an agent touches real credentials, read what its logs keep. OpenHands found a debug log writing hook-config secrets and deleted it. Signal
- Watch
In the fortnight to May 7, Agent Zero fired the agent that used its browser. One commit replaced the browser-use sub-agent with a native browser tool the main agent drives directly, added a live viewer to the web UI, and moved the old module out of core. Around it came a persistent Chromium runtime, tabs, screenshot previews in the tool log, Linux desktop controls, a document canvas and a LibreOffice runtime.
The agent has a computer, and you can watch it work. Everything you can now watch is also something the agent can now touch: a logged-in browser, a desktop, OAuth grants. Agent Zero shipped OAuth disconnect and remaining-quota visibility in the same fortnight. The machine it had just handed the agent holds real credentials, and the operator needs a way to take them back.
Every receipt below is a commit on a project’s main branch, not a release. Read it as the direction of travel, not as what you have installed.
The fortnight’s work was making the agent visible
Agent Zero’s move is also a bet on the model. It deleted a specialist sub-agent whose job was to browse, and gave the general agent the browser instead. That is Bitter Lesson Maxing: building where better general agents compound your advantage rather than erase it. The browse-for-me wrapper is the part the next model makes redundant. The viewer the operator watches is not.
The other projects built windows of their own. OpenClaw put agent progress into the chat as timeline spans and showed Codex tool progress in channel drafts, so the person on the other end of a chat sees the work move. OpenHands exposed its sandbox grouping in the UI. Paperclip added per-issue cost summaries and pause and resume for agents in its sidebar.
State got the same treatment. Codex’s
/goal
drew validation, paste handling and queued-command behavior, which is the
plumbing a feature earns once people lean on it. Gemini CLI’s
Auto Memory inbox
shows proposed memory as a patch to accept. Hermes added a
scoping header to long-term memory.
Who decides what those memories hold is the argument of the
overlapping rollup; here
the point is only that each can now be seen.
A log is a window and a copy
The same visibility that lets an operator supervise also writes things down. OpenHands found a debug log that had been recording hook-config secrets and deleted it, and strengthened API-key redaction across its loggers. It also began injecting user secrets into the ACP subprocess environment, which is one more place a credential lives and one more place to audit.
Around it, the boundaries got drawn in public. OpenClaw bounded live exec output, made Telegram honor access-group allowlists, and documented where sub-agent security stops. Gemini CLI made sub-agents respect the active approval mode and showed workspace trust in its MCP list. Codex added plugin share access controls and a bundled Linux sandbox. Paperclip made security a first-class agent role.
What this agent could read, change, run, install, send or leak is now answerable in some of these tools. The OpenHands log is the reminder that the answer includes the tool’s own record of the work.
Legibility is mostly setup recovery
The least glamorous commits in the window do the most for a new user. OpenClaw’s diff-reviewed onboarding fix stops a stale channel plugin from dead-ending setup: it reinstalls from a trusted catalog where it can, and leaves channels the operator disabled disabled. Beside it sit labels on Claude CLI OAuth status and a fix that stops the Discord voice bot hearing itself.
Hermes did the adjacent work: a setup wizard that no longer dead-ends on a system-scope unit, restart readiness for the gateway, push-to-talk parity. Pi made auth-provider login searchable.
None of this is polish. An operator who cannot get the agent running again after a config goes stale cannot supervise it either. Recovery is where visibility starts.
The newest agents work where nobody is looking
Then the vendors shipped the other half. On May 6, Anthropic previewed
dreaming, which reviews an agent’s past sessions,
extracts patterns, and curates memories so your agents learn over time
@claudeai. No transcript records that curation and no
operator approves it. On May 7, Codex reached Chrome on macOS and Windows,
and OpenAI said it now works in parallel across tabs in the background without taking over your browser
@OpenAI.
That last clause changes the job. Agent Zero’s viewer assumes someone
watching. An agent that drives your browser while you keep using it is
computer use as a background process, and nobody supervises a background
process by staring at it. Hermes, tagging v0.13.0 the same day, went the
same way without a browser. Its lead’s announcement put multi-agent
orchestration through a Kanban board first, with
Enforced goal completion with /goal
@Teknium beside it. Workers hand tasks to each other
and a goal holds across turns, and neither needs a person at the screen.
This is where Amdahl Maxing earns its place: design the
system so scarce human attention goes to the decisions where it is worth
most. A live viewer spends attention for as long as someone watches it. A
prompt spends it per action, and one operator paying for it said so. swyx,
after switching to the Codex plugin, wrote that
whatever this default is is not working for me, particularly on clearly nondestructive actions.
@swyx A prompt on a harmless action spends
attention where the risk is lowest.
Paperclip spent the fortnight on the cheaper kind. A cost summary or a stale session asks for a human only when something is off. Its runtime specs go further and delete a human task: each adapter now declares how to install itself on a remote sandbox, so nobody hand-writes a provisioning script per agent CLI. That is the shape that survives agents which do not wait for you.
Provider notes
Pi. The window’s reminder that integrations change under you. It added a Cloudflare AI Gateway provider, moved Codex to a cached websocket transport with an SSE fallback, and removed built-in Gemini CLI and Antigravity support. Record the version, provider and transport of any run you care about.
Hermes. 2,061 commits. The ones that matter here are above; it also moved model providers into plugins and gave Curator archive and prune commands.
OpenHands. Consolidating on its app server and removed the V0 runtime. Its log fix, above, is the item to act on.
Codex, Gemini CLI. Covered above and in the overlapping rollup. Agent Zero, OpenClaw, Paperclip. Covered above.
Closing
The open projects spent a fortnight building windows into the agent’s computer, and the work was worth doing. The agents that shipped at the end of it were built so you would not need to look.
Watchable is a feature. Watched is a schedule nobody keeps.
Top signals from this issue
- Codex Persistent agent state is becoming a product surface
- Agent Zero The agent interface is becoming a visible computer
- Codex Permissions, secrets, and sandboxes are moving into the foreground
- OpenClaw Accessibility is a frontier capability, not marketing polish
- Paperclip Agent systems are growing control planes
- Pi Coding Agent Integrations are volatile; the operating loop has to be durable
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.
- commit diff reviewedValidate /goal objective length in TUIgithub.com/openai/codex/commit/f09e1936e0fd464dcea78fe55b84bd20f721cad6commitGoal lifecycle metricsgithub.com/openai/codex/commit/91b735018779daed7c40f86aab9bec9abc9922e8commitSpawn MCP for memoriesgithub.com/openai/codex/commit/ca257b6ce5db5c2710ec8da290b25b263154e402commitSession idgithub.com/openai/codex/commit/a98623511ba433154ec811fc63091617f5945438commitMCP turn metadata includes thread idgithub.com/openai/codex/commit/fe24a180ab6f6b3639b682cc6a1e71150fea6d48commitPlugin share access controlsgithub.com/openai/codex/commit/5119680f85ed01fe039ee8fba0245de24f3a5e37commitBundled Linux sandboxgithub.com/openai/codex/commit/26f355b67b75b040ff16990d1b2e4e8093479213
- commit diff reviewedAuto Memory inbox flow with canonical patch contractgithub.com/google-gemini/gemini-cli/commit/a7beb890d093e2cf66ed1ac8debff690b75e1f6dcommitTighten private Auto Memory patch allowlistgithub.com/google-gemini/gemini-cli/commit/7fb5146c6b084888b38dea05af6a4e95ea48810acommitWorkspace trust visible in MCP list UXgithub.com/google-gemini/gemini-cli/commit/a38f393af77c0ccf50da10d73c84cfb594dd8175commitShell command safety evalsgithub.com/google-gemini/gemini-cli/commit/82f6ea5b61a6321748d81a62d34c62bf7d2c9fa2commitSubagents aware of active approval modesgithub.com/google-gemini/gemini-cli/commit/40b384de2c1d251c9d13a6359216a9e6cff5a254commitJSON output for AgentExecutionStoppedgithub.com/google-gemini/gemini-cli/commit/469092a72cbe368b69df25c0caeefbc911b6d6fd
- commitSystemd restart readiness for gatewaygithub.com/NousResearch/hermes-agent/commit/d797755a1c17566b0aef4d77548a4b460142d26acommitSetup wizard does not dead-end on system-scope unitgithub.com/NousResearch/hermes-agent/commit/3cdbf334d5074aff0de857c0f94f278f06745e6bcommitVoice push-to-talk paritygithub.com/NousResearch/hermes-agent/commit/04cf4788ccc05003785992682e3cb25205e509cccommitDefault-large dashboard themegithub.com/NousResearch/hermes-agent/commit/6388aafbd6cbfd22c26036291d884d4055b5f6bccommitSearXNG native search backendgithub.com/NousResearch/hermes-agent/commit/5c906d70266c1bbce88fd227ea98a3f7646551fecommitPluggable model provider modulesgithub.com/NousResearch/hermes-agent/commit/9022804d78e88253d138d448e9107a3884b2b96ccommitLong-term memory scoping headergithub.com/NousResearch/hermes-agent/commit/fe8560fc1249b4a7e448b5c3b80a7d213df9d78fcommitCurator archive and prune subcommandsgithub.com/NousResearch/hermes-agent/commit/436672de0efd8bcc50c6043a16223c102d30d71b
- commitCached Codex websocket transportgithub.com/badlogic/pi-mono/commit/4745a9589883fb8200981ddfecb94a593d6e95a2commitFallback from Codex websocket to SSEgithub.com/badlogic/pi-mono/commit/370fdae6fa23881b044efbab571fb7bf6267ed6ecommitRemove Gemini CLI and Antigravity supportgithub.com/badlogic/pi-mono/commit/fe66edd943691f8eac295fef68ce36930c35fa05commitAdd Cloudflare AI Gateway providergithub.com/badlogic/pi-mono/commit/24fb6b833b7263df3d08889cc492b03d46d3779bcommitSearchable auth provider login flowgithub.com/badlogic/pi-mono/commit/010e9acfe959f437613bcba7139b264012ca43a4commitSession dir envgithub.com/badlogic/pi-mono/commit/8191d59c170c9bb336a82771e1826d25bb7ec1e0commitCompact read renderinggithub.com/badlogic/pi-mono/commit/588639fa97567a661dac876dc2b1970c8a3497ae
- commit diff reviewedRecover externalized channel plugin from stale configgithub.com/openclaw/openclaw/commit/329580c64d13657592c3fabb97ff567c2e292bb6commitLabel Claude CLI OAuth statusgithub.com/openclaw/openclaw/commit/2b4b60b5514b47d8e242b9b11d9b395037e6674bcommitPrevent Discord voice self-feedbackgithub.com/openclaw/openclaw/commit/1c2832526f65cf23b469e9a1dc5694915c5be548commitHonor Telegram access group allowlistsgithub.com/openclaw/openclaw/commit/b6ae0b83a61a1f779ee41b5d639b6049bfd422cecommitDocument sub-agent security boundariesgithub.com/openclaw/openclaw/commit/33b112ad314dc8d9dfe0f5a68caed4811a23245acommitBound live exec output eventsgithub.com/openclaw/openclaw/commit/3ee7c02bcacfdf6327747c1fe24dd6d11de8612acommitCoarse agent turn timeline spansgithub.com/openclaw/openclaw/commit/61223a74a43fd8768c426d5b22f1633dbad37477commitShow Codex tool progress in channel draftsgithub.com/openclaw/openclaw/commit/3f210b10ce3a19ef6a04205aa7420353945567a2
- commit diff reviewedAdapters declare runtime command spec for remote provisioninggithub.com/paperclipai/paperclip/commit/90631b09b36fa028ad24ca5375bfa50e3602799ccommitFix remote workspace environment shapinggithub.com/paperclipai/paperclip/commit/856c6cb192e53a992875821297b5fd8d29c95c2dcommitAdd sandbox callback bridge for remote environment API accessgithub.com/paperclipai/paperclip/commit/a4ac6ff133fbe8bdb82f4046fda85f7cb372b6a9commitAdd E2B sandbox provider plugingithub.com/paperclipai/paperclip/commit/4ef969f0840810527333aa6ee44fed89f4551f7ccommitIssue cost summariesgithub.com/paperclipai/paperclip/commit/c4269bab59fff7a73ff31797578cc97ece7f160fcommitFirst-class security agent rolegithub.com/paperclipai/paperclip/commit/c036bbfa98494dcfe2521aab65019a4cd021c769commitPause and resume sidebar agentsgithub.com/paperclipai/paperclip/commit/43b0f2ae582b18f2872ae60bf468f54b99b614ba
- commit diff reviewedReplace browser-use agent with native browsergithub.com/agent0ai/agent-zero/commit/983d431a5eb785eb9deba9fdfd471fa93f349603commitPersistent full Chromium runtime for Browsergithub.com/agent0ai/agent-zero/commit/fa7eef1919901093b117a98ad6e402d809687cf6commitBrowser multi-tab awareness and modifier-key clickgithub.com/agent0ai/agent-zero/commit/5012dd3128aa6218cc55f6cbce8be42b2db2fee4commitBrowser screenshot previews in tool messagesgithub.com/agent0ai/agent-zero/commit/c2fb2c3c94e1e1c85b783252332b3fc003f39f2bcommitLinux Desktop skill controlsgithub.com/agent0ai/agent-zero/commit/62ac20e7b248179825e05664c1df97ebc6214c54commitDesktop document canvasgithub.com/agent0ai/agent-zero/commit/24dd548ebf221e397323b5aa3a509f037fb1b9aecommitOAuth disconnect and remaining quota visibilitygithub.com/agent0ai/agent-zero/commit/0da8f3dc2b640efbce22499053507837101fdf6f
- commit diff reviewedStrengthen log redaction for API keysgithub.com/OpenHands/OpenHands/commit/61e3dc2cadbefd4e0649b7c141ac2335c021ad2bcommitRemove debug log exposing hook_config secretsgithub.com/OpenHands/OpenHands/commit/0c6c461555f8651347ed140f1c555ff8a88ddf56commitExpose sandbox grouping strategy UIgithub.com/OpenHands/OpenHands/commit/90cf5f8003c247597481bcbef9a5aa73eb899e10commitProxy Tavily MCP through app servergithub.com/OpenHands/OpenHands/commit/949a15a560ef90cd3dd7f18baf6955430401edb4commitMove server content to app_servergithub.com/OpenHands/OpenHands/commit/5232d96dab0ca98e691d6307bd0759e943220d1ccommitInject user secrets into ACP subprocess envgithub.com/OpenHands/OpenHands/commit/cf156b0073350ca8e93067bc2f4ae18b90537a0acommitSelf-hosted GitLab supportgithub.com/OpenHands/OpenHands/commit/4e63531fa6595ec55102f08ef129845931fcd8ffcommitRemoved V0 runtimegithub.com/OpenHands/OpenHands/commit/e86067c15b54242fd611877aa9038a2f7a219658