Evidence Trail

Agent Runtimes Are Learning to Ship Their Control Plane

May 23, 2026 / Daily Edition / 13 source signals.

repo openai/codex main
13 source signals 5 repos c7bcb90
> c7bcb90 / May 23, 2026 / Daily Edition
Read Story Open Edition

Reporter Notes

The common mechanism across the primary evidence is not "more agent features."

It is the conversion of runtime support systems into productized surfaces:

  • Codex: the shell fork becomes a package-managed runtime resource, not a

user-supplied path knob.

  • Hermes: a platform adapter becomes a plugin with metadata, hooks, and

registry creation.

  • Gemini CLI: context retention and garbage collection become named profiles

and pipelines behind an experimental config flag.

  • Crush: skills become catalog entries and protocol payloads that a frontend

can display and read.

The strongest sentence for readers: the agent's control plane is becoming a

thing users can inspect and builders can ship.

The phrasing should avoid implying that these projects share an API or release

plan. They do not. The evidence supports convergent pressure: each repo is

making its runtime layer less implicit.

Primary Evidence

  • Hermes Agent commit migrating the Discord gateway adapter into a bundled

platform plugin:

https://github.com/NousResearch/hermes-agent/commit/cc8e5ec2afbfd10a3cff4e710210dd9ecae64a33

  • Hermes Agent plugin.yaml declaring the Discord plugin's metadata and

required/optional environment variables:

https://github.com/NousResearch/hermes-agent/blob/cc8e5ec2afbfd10a3cff4e710210dd9ecae64a33/plugins/platforms/discord/plugin.yaml

  • Hermes Agent Discord adapter showing the register(ctx) hook and plugin

registration callbacks:

https://github.com/NousResearch/hermes-agent/blob/cc8e5ec2afbfd10a3cff4e710210dd9ecae64a33/plugins/platforms/discord/adapter.py

  • Hermes Agent gateway runner code that checks the platform registry before

falling through to built-in adapters:

https://github.com/NousResearch/hermes-agent/blob/cc8e5ec2afbfd10a3cff4e710210dd9ecae64a33/gateway/run.py

  • Codex commit packaging the zsh fork with the Codex package:

https://github.com/openai/codex/commit/c7bcb90f9b705f556ed0fb1bde13d836cbf71924

  • Codex DotSlash manifest for the bundled zsh resource:

https://github.com/openai/codex/blob/c7bcb90f9b705f556ed0fb1bde13d836cbf71924/scripts/codex_package/codex-zsh

  • Codex install-context code exposing bundled zsh resource discovery:

https://github.com/openai/codex/blob/c7bcb90f9b705f556ed0fb1bde13d836cbf71924/codex-rs/install-context/src/lib.rs

  • Gemini CLI commit completing the context simplification work:

https://github.com/google-gemini/gemini-cli/commit/e6f92d66f67e721a8b9e191a19f714bfc2f98524

  • Gemini CLI context profile implementation, including the experimental power

user profile:

https://github.com/google-gemini/gemini-cli/blob/e6f92d66f67e721a8b9e191a19f714bfc2f98524/packages/core/src/context/config/profiles.ts

  • Gemini CLI configuration reference listing experimental.powerUserProfile:

https://github.com/google-gemini/gemini-cli/blob/e6f92d66f67e721a8b9e191a19f714bfc2f98524/docs/reference/configuration.md

  • Crush commit adding descriptions to the skill picker and attachment handling:

https://github.com/charmbracelet/crush/commit/55721653ceb67f04abd53c278ade01d05043bf7d

  • Crush skill catalog implementation with visible skill metadata and source

labels:

https://github.com/charmbracelet/crush/blob/55721653ceb67f04abd53c278ade01d05043bf7d/internal/skills/catalog.go

  • Crush protocol definitions for frontend skill metadata and skill reads:

https://github.com/charmbracelet/crush/blob/55721653ceb67f04abd53c278ade01d05043bf7d/internal/proto/proto.go

Evidence Limits

  • This article treats the commits as a pattern, not as proof of a shared

standard or coordinated roadmap.

  • Hermes cc8e5ec2 was authored earlier than this edition window but was

committed inside it.

  • LangChain had readable updates in the same edition window but was not used as

primary evidence because the inspected commits did not add a clear mechanism

to this specific control-plane story.

Open Questions

  • Will these runtime surfaces become compatible standards, or stay project

specific?

  • Which pieces of the control plane need user-facing UI, and which should stay

as internal package or protocol boundaries?

  • Does packaged runtime behavior reduce configuration mistakes, or does it make

debugging harder when the bundled helper is wrong?