Skip to content

Add Codex CLI plugin support - #1025

Closed
wayyoungboy wants to merge 8 commits into
oceanbase:mainfrom
wayyoungboy:feat/codex-cli-plugin
Closed

Add Codex CLI plugin support#1025
wayyoungboy wants to merge 8 commits into
oceanbase:mainfrom
wayyoungboy:feat/codex-cli-plugin

Conversation

@wayyoungboy

@wayyoungboy wayyoungboy commented Jun 14, 2026

Copy link
Copy Markdown
Member

Summary

  • add a Codex plugin manifest for memory-powermem while keeping Claude Code behavior intact
  • rename the shared plugin root to apps/agent-plugin so Claude Code and Codex CLI use a neutral directory
  • make installed-plugin init/status/stop/reset skills work for Claude Code and Codex CLI by resolving a shared plugin root
  • update Codex setup docs to use codex plugin plus explicit codex mcp add, and refresh marketplace descriptions
  • merge the latest main, preserving the no-LLM hook regression, noop provider tests, and package targets under apps/agent-plugin

Closes #1027.

Validation

  • Codex plugin manifest validation for apps/agent-plugin
  • JSON validation for marketplace, plugin manifest, MCP, and hook config files
  • go test ./... from apps/agent-plugin
  • python tests/regression/test_claude_hook_no_llm.py using the project virtual environment
  • POWERMEM_HOOK_BIN=apps/agent-plugin/hooks/bin/powermem-hook-linux-amd64 python tests/regression/test_claude_hook_no_llm.py using the project virtual environment
  • make test-claude-hook-docker
  • python -m pytest tests/unit/test_noop_embedding.py tests/unit/test_noop_llm.py tests/integration/test_noop_embedding_mode.py tests/integration/test_noop_llm_mode.py -q using the project virtual environment
  • python -m py_compile tests/regression/test_claude_hook_no_llm.py using the project virtual environment
  • sh -n for apps/agent-plugin shell launchers and scripts
  • make -n package-agent-plugin, make -n package-claude-plugin, and make -n test-claude-hook-docker
  • git diff --check
  • two independent read-only reviews of the merge-resolution diff, no blocking findings

@wayyoungboy
wayyoungboy force-pushed the feat/codex-cli-plugin branch from 449da79 to 854103a Compare June 16, 2026 17:07

Copy link
Copy Markdown
Member Author

Merged the latest main into this branch to clear the stale conflict state.

Validation:

  • Using the project virtual environment, ran python -m pytest tests/unit/test_claude_plugin_uv_install.py tests/unit/test_noop_llm.py tests/integration/test_noop_llm_mode.py.
  • Ran cd apps/agent-plugin && go test ./....
  • Ran bash apps/agent-plugin/scripts/package-plugin.sh and kept generated package artifacts out of the PR.

@wayyoungboy

Copy link
Copy Markdown
Member Author

Sweep update: this branch is dirty again after the recent Claude hook/no-LLM regression changes on main.

I checked the merge shape. This is not a small textual conflict: the PR renames apps/claude-code-plugin to apps/agent-plugin, while main added hook regression, Docker, and Makefile changes under the original Claude plugin path. Resolving it safely needs a larger respin that maps those new hook changes into the shared agent-plugin layout, rather than a quick merge commit.

I am leaving this PR open for that dedicated rebase/respin instead of pushing a risky conflict resolution in this sweep.

@wayyoungboy

Copy link
Copy Markdown
Member Author

Updated this PR with the latest main and resolved the merge conflict.

What changed in the merge resolution:

  • Preserved package-agent-plugin and the compatibility package-claude-plugin alias.
  • Preserved the upstream test-claude-hook-docker target.
  • Moved the new hook regression workflow, Dockerfile, and regression test paths from the old Claude-specific plugin directory to apps/agent-plugin.
  • Moved the new uv-init-flow.svg asset into apps/agent-plugin.
  • Rebuilt packaged hook binaries after merging the latest hook changes.

Validation:

  • go test ./... from apps/agent-plugin
  • python tests/regression/test_claude_hook_no_llm.py using the project virtual environment
  • POWERMEM_HOOK_BIN=apps/agent-plugin/hooks/bin/powermem-hook-linux-amd64 python tests/regression/test_claude_hook_no_llm.py using the project virtual environment
  • make test-claude-hook-docker
  • python -m pytest tests/unit/test_noop_embedding.py tests/unit/test_noop_llm.py tests/integration/test_noop_embedding_mode.py tests/integration/test_noop_llm_mode.py -q using the project virtual environment
  • JSON validation for plugin and hook config files
  • shell syntax checks for agent plugin scripts
  • make -n package-agent-plugin, make -n package-claude-plugin, and make -n test-claude-hook-docker
  • git diff --check
  • two independent read-only reviews of the merge-resolution diff, no blocking findings

@lightzt99

Copy link
Copy Markdown
Collaborator

Heads up on the interaction between this PR and #1031 (SQLite default for coding agent).

#1031 modifies files exclusively under apps/claude-code-plugin/scripts/init.sh, README.md, SETUP.md, skills/init/SKILL.md, tests/test_env_generation.py, plus tests/unit/test_claude_plugin_uv_install.py and tests/unit/storage/test_sqlite_init.py at the repo root. Since #1025 renames that entire directory to apps/agent-plugin/, whichever PR merges second will need a non-trivial rebase:

The second path is lighter — #1031's changes are all internal to init.sh and its docs, so they should survive a directory rename cleanly. The first path requires touching test files that hard-code the old path.

Happy to rebase #1031 onto #1025 once #1025 lands if you'd prefer that order; just let me know which way you want to go.

@wayyoungboy

Copy link
Copy Markdown
Member Author

Review status for the current head: GitHub currently reports this branch as conflicting with main, so I cannot complete final review or mark it ready. This PR still needs a rebase/respin before the diff can be reviewed safely, especially around the plugin directory rename and the newer Claude hook/no-LLM regression changes that landed on main.

No LGTM: the PR is currently conflicting and is authored from the wayyoungboy branch.

ShiXing321 pushed a commit to ShiXing321/powermem that referenced this pull request Jul 15, 2026
load_file no longer runs the load_file -> AI_SPLIT_DOCUMENT integration query
(ai_split_document has its own case), so its ai_lf_doc.txt fixture goes too.

ik_custom_dict drops the two TOKENIZE previews and the stopword/quantifier
tables they created; the case keeps the dictionary-driven MATCH coverage.

Both .result files are updated to match, and all three ai_funcs cases pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support memory-powermem compatibility with Codex CLI

2 participants