Skip to content

feat: align Lumen packaging across Codex, Cursor, and OpenCode#73

Merged
aeneasr merged 9 commits intomainfrom
codex-plugin
Apr 4, 2026
Merged

feat: align Lumen packaging across Codex, Cursor, and OpenCode#73
aeneasr merged 9 commits intomainfrom
codex-plugin

Conversation

@aeneasr
Copy link
Copy Markdown
Member

@aeneasr aeneasr commented Mar 31, 2026

Summary

  • align the repository’s Lumen distribution across Codex, Cursor, and OpenCode while keeping the shared root integration surfaces in sync with Claude metadata where appropriate
  • add host-specific installation docs and runtime wiring for the Cursor plugin bundle, Codex native skill discovery, and the OpenCode plugin bootstrap
  • fix the Unix launcher path regression by making scripts/run.cmd directly executable on Unix and using a platform-appropriate launcher in the OpenCode plugin
  • fix Codex native skill installation docs to use $CODEX_HOME/skills and add a regression test for direct execution of scripts/run.cmd

Why

Lumen now ships through multiple agent hosts from the same repository, so the plugin metadata, MCP wiring, hooks, skills, and docs need to stay aligned across those entry points.

The review fixes in this update address two concrete root causes:

  • Unix MCP runners execute the configured command directly, so a shell-only scripts/run.cmd path breaks with ENOEXEC
  • Codex discovers user-installed skills from $CODEX_HOME/skills by default, so instructions that point to ~/.agents/skills do not expose doctor and reindex

User impact

  • Claude keeps the repo-root plugin distribution with the shared launcher and hooks
  • Cursor can consume the bundled plugin surface from .cursor-plugin/plugin.json
  • Codex users can install the MCP server plus native skills with working $CODEX_HOME-based instructions
  • OpenCode registers the shared skills and launches the local MCP server with the correct per-platform entry point

Validation

  • ./scripts/test_run.sh
  • ./scripts/test_run_cmd.sh
  • node --check .opencode/plugins/lumen.js

@aeneasr
Copy link
Copy Markdown
Member Author

aeneasr commented Apr 1, 2026

openai/codex#16430

Codex only normalizes the `cwd` field relative to the plugin root, not
`command`. Without `"cwd": "."`, `./scripts/run.sh` resolves from the
user's working directory instead of the plugin directory, breaking MCP
server startup for installed plugins.

Also fixes stale branch reference in multi-language plan doc.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@aeneasr aeneasr changed the title [codex] add isolated Codex plugin package feat: Codex plugin Apr 1, 2026
@aeneasr aeneasr marked this pull request as ready for review April 1, 2026 18:01
@aeneasr aeneasr changed the title feat: Codex plugin feat: align Lumen packaging across Codex, Cursor, and OpenCode Apr 1, 2026
…Code skills injection

- Use ~/.agents/skills (canonical) instead of deprecated $CODEX_HOME/skills
  for Codex native skill discovery in .codex/INSTALL.md and README.md
- Replace relative ./scripts/run.cmd with ${CURSOR_PLUGIN_ROOT}/scripts/run.cmd
  in hooks/hooks-cursor.json and mcp.json so Cursor resolves paths from the
  plugin root rather than the user's project CWD
- Remove config.skills mutation from .opencode/plugins/lumen.js — skills is
  not a field on OpenCode's Config type so the block silently did nothing;
  update .opencode/INSTALL.md to drop the false claim that skills are
  auto-registered

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
README.md Outdated

```json
{
"plugin": ["lumen@git+https://github.com/ory/lumen.git"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be better to publish a package proper.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree - would you happen to have good docs around that?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't, but I'm sure an LLM could be instructed to build a plan for that work.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough ;) Found out you can publish an npm package for opencode.

aeneasr added 4 commits April 4, 2026 19:13
…ed publishing

Switch OpenCode plugin distribution from git clone to a proper npm package.
Use OIDC trusted publishing (--provenance) instead of an NPM_TOKEN secret,
and prefix launcher invocation with 'sh' to handle npm stripping execute bits.
…nternal/release/

- Move root mcp.json to .cursor/mcp.json to keep Cursor-specific config
  out of the repo root (avoids Claude Code treating it as project-scoped MCP)
- Update .cursor-plugin/plugin.json and INSTALL.md to reference new path
- Update AGENTS.md to reflect .cursor/mcp.json and clarify the no-root-mcp rule
- Move metadata_test.go from package main to internal/release (package release_test)
  with ../../-prefixed paths; root package now has no test files
@aeneasr aeneasr enabled auto-merge (squash) April 4, 2026 20:29
@aeneasr aeneasr merged commit 665c8db into main Apr 4, 2026
4 checks passed
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.

2 participants