github rohitg00/agentmemory v0.9.11
v0.9.11 — Codex plugin platform + OpenClaw slot fix + website star button

3 hours ago

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.json at the repo root — git-subdir source 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 agentmemory

Registers @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/mcp package 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 agentmemory

Full changelog: v0.9.10...v0.9.11

Don't miss a new agentmemory release

NewReleases is sending notifications on new releases.