Three additions on top of v0.9.10: OpenAI Codex got a plugin platform and agentmemory now ships a Codex manifest + marketplace alongside the existing Claude Code one (so codex plugin marketplace add rohitg00/agentmemory installs MCP + 6 hooks + 4 skills in one step); the OpenClaw integration now actually claims the plugins.slots.memory slot via registerMemoryCapability (older builds advertised the slot via manifest kind but never declared the capability so the slot reported unavailable); and the marketing website's hero CTA row now ships a live "Star on GitHub" button.
Added
Codex plugin support (#311)
OpenAI Codex shipped a plugin platform at developers.openai.com/codex/plugins. The shape mirrors Anthropic Claude Code plugins. This release adds:
plugin/.codex-plugin/plugin.json— Codex manifest pointing at the same shared.mcp.json+skills/directory the Claude Code manifest uses, plus a Codex-specific./hooks/hooks.codex.json.plugin/hooks/hooks.codex.json— Codex-shaped hook subset. Registers exactly the events Codex's hook engine supports:SessionStart,UserPromptSubmit,PreToolUse,PostToolUse,PreCompact,Stop. Drops the Claude-Code-only events (SubagentStart,SubagentStop,SessionEnd,Notification,TaskCompleted,PostToolUseFailure) that Codex's input schemas don't define..codex-plugin/marketplace.jsonat the repo root —git-subdirsource pointing at./plugin.
Why the same scripts work on both hosts: verified against codex-rs/hooks/src/engine/discovery.rs that Codex's hook engine injects CLAUDE_PLUGIN_ROOT into hook subprocesses for OOTB compat with existing Claude Code plugin scripts:
env.insert("PLUGIN_ROOT".to_string(), plugin_root_value.clone());
// For OOTB compat with existing plugins that use this env var.
env.insert("CLAUDE_PLUGIN_ROOT".to_string(), plugin_root_value);
env.insert("PLUGIN_DATA".to_string(), plugin_data_root_value.clone());
env.insert("CLAUDE_PLUGIN_DATA".to_string(), plugin_data_root_value);So every ${CLAUDE_PLUGIN_ROOT}/scripts/... reference in the existing hooks works unmodified on Codex. The Codex wire-format input schemas (session-start.command.input.schema.json and siblings) use the same field names as Claude Code (session_id, cwd, hook_event_name, source, transcript_path, model, permission_mode), so the existing plugin/scripts/*.mjs parsers work as-is.
Install:
# 1. start the memory server
npx @agentmemory/agentmemory
# 2. register the marketplace + install the plugin
codex plugin marketplace add rohitg00/agentmemory
codex plugin install agentmemoryRegisters @agentmemory/mcp as an MCP server (51 tools with AGENTMEMORY_TOOLS=all), 6 lifecycle hooks, and 4 skills (/recall, /remember, /session-history, /forget).
Star on GitHub button in the website hero CTA row (#316)
Adds a ghost-style GitHubStarButton component next to START IN 60 SECONDS and SEE IT MOVE with inline SVG star icon, STAR label, and a live stargazer count fetched once on mount from api.github.com/repos/rohitg00/agentmemory. Count is cached in localStorage for 30 minutes per repo. Graceful degradation: if the API is unreachable / rate-limited / blocked, the button still renders without the count. No new dependencies.
Fixed
OpenClaw plugins.slots.memory = "agentmemory" now reports as available, not unavailable (#310)
On OpenClaw 2026.4.9+, the integration declared "kind": "memory" in its manifest and wired before_agent_start / agent_end hooks but never called api.registerMemoryCapability(...) — so OpenClaw's memory-slot machinery saw no claim on the slot even though the hooks and REST API worked end-to-end.
The fix lands api.registerMemoryCapability({ promptBuilder }) at register time when the host exposes it, with the promptBuilder accepting the documented { availableTools, citationsMode? } params and emitting a three-line block identifying agentmemory as the active provider:
if (typeof api.registerMemoryCapability === "function") {
api.registerMemoryCapability({
promptBuilder: (_params) => [
"Long-term memory provider: agentmemory (external REST service on " +
client.baseUrl + ").",
"agentmemory recalls relevant prior observations before each turn via the " +
"before_agent_start hook and captures completed turns via agent_end.",
"Treat recalled context as background, not authoritative — prefer current " +
"workspace state and explicit user instructions when they conflict.",
],
});
}Older OpenClaw builds without the capability API still load via the existing hook-only path (the typeof ... === "function" guard). The PR does not ship a MemoryPluginRuntime adapter because OpenClaw's current MemoryRuntimeBackendConfig type is exactly { backend: "builtin" } | { backend: "qmd"; ... } — both in-process backends that don't fit an external REST shape. Verified against openclaw@2026.5.7's plugin-sdk/src/plugins/types.d.ts and memory-state.d.ts declarations directly.
Changed
@agentmemory/mcppackage version bumped 0.9.10 → 0.9.11 to lockstep with the main package.- README distinguishes Codex CLI (MCP only) from Codex CLI (full plugin) in the per-host install table and lists the marketplace install command for the latter.
Install / upgrade
npm i -g @agentmemory/agentmemory@0.9.11
# or
npx @agentmemory/agentmemory
# MCP standalone shim
npx -y @agentmemory/mcp
# Codex CLI plugin (new)
codex plugin marketplace add rohitg00/agentmemory
codex plugin install agentmemoryFull changelog: v0.9.10...v0.9.11