Overview
The CodeAlive Claude Code plugin ships thecodealive-context-engine skill along with a subagent and authentication
hook. Claude Code installs it into a versioned cache directory. Other
skill-aware agents — Codex CLI, Gemini CLI, Cursor, Windsurf — look for skills
in their own user directories and don’t read the Claude Code plugin cache.
This guide sets up a one-time bridge so those agents pick up the exact same
skill files the plugin installs, and keeps following new versions every time
you run claude plugin update.
You only need this if you want a single source of truth for the skill across
multiple agents. If you use Codex (or another agent) in isolation, the simpler
option is to run the universal installer:See the Agent Skills & Plugins page for details.
How it works
A symlink from~/.codex/skills/codealive-context-engine points into the
plugin’s versioned cache at ~/.claude/plugins/cache/codealive-marketplace/codealive/<version>/skills/codealive-context-engine.
Codex CLI loads the skill through the symlink.
Each claude plugin update writes a new versioned directory and leaves the old
one in place, so the symlink’s target becomes stale. A launchd agent watches
the parent cache directory and re-runs a short shell script that rewrites the
symlink to the highest version currently on disk.
Prerequisites
- macOS with the Claude Code plugin installed
- Codex CLI (or another skill-aware agent)
-
The
codealive-skillsrepository cloned locally, so you can run the bridge scripts:
Install (macOS)
Run the installer
com.codealive.plugin-bridge.plist, writes it to
~/Library/LaunchAgents/, bootstraps the agent, and creates the symlink
once synchronously so it’s ready immediately.Verify the symlink
~/.claude/plugins/cache/codealive-marketplace/codealive/<version>/skills/codealive-context-engine.Confirm the launchd agent
state = waiting (the expected idle state for a WatchPaths
agent) and the watched path listed.Targeting a different agent
The scripts default to Codex CLI. Every path is driven by an environment variable, so you can point the bridge at any agent.| Variable | Default |
|---|---|
CODEALIVE_PLUGIN_CACHE | ~/.claude/plugins/cache/codealive-marketplace/codealive |
CODEALIVE_PLUGIN_SUBPATH | skills/codealive-context-engine |
CODEALIVE_AGENT_LINK | ~/.codex/skills/codealive-context-engine |
Linux
Asystemd --user path unit gives the equivalent behaviour. See the
Linux section of the bridge README
for ready-to-use unit files.
Uninstall
launchd agent. The existing symlink stays in place; delete
it manually if you want to remove it as well:
Troubleshooting
Codex doesn't see the skill after install
Codex doesn't see the skill after install
Confirm the symlink resolves to a directory that contains If the link is dangling, check that the Claude Code plugin is installed
(
SKILL.md:claude plugin list) and that
~/.claude/plugins/cache/codealive-marketplace/codealive/ contains at
least one version directory.Symlink didn't update after `claude plugin update`
Symlink didn't update after `claude plugin update`
Inspect the bridge log:Re-run the updater manually to confirm the logic:If the manual run relinks correctly but the
launchd agent didn’t fire,
reload it:launchctl bootstrap fails with 'Input/output error'
launchctl bootstrap fails with 'Input/output error'
Another
launchd job is already loaded under the same label. Boot it out
first:Old plugin versions pile up in the cache
Old plugin versions pile up in the cache
claude plugin update doesn’t delete prior versions. The bridge always
picks the highest version by sort -V, so older directories don’t affect
behaviour. Remove them manually if you want to reclaim disk space:Related resources
Claude Code Plugin
Install the plugin this bridge depends on
Agent Skills & Plugins
Install the skill directly via the universal installer
Bridge source
Scripts, launchd template, and Linux unit files
Codex MCP setup
Direct tool access for Codex via MCP