Skip to main content

Overview

The CodeAlive Claude Code plugin ships the codealive-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:
npx skills add CodeAlive-AI/codealive-skills@codealive-context-engine
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-skills repository cloned locally, so you can run the bridge scripts:
    git clone https://github.com/CodeAlive-AI/codealive-skills.git
    

Install (macOS)

1

Run the installer

cd codealive-skills/tools/plugin-bridge
./install-macos.sh
The installer renders com.codealive.plugin-bridge.plist, writes it to ~/Library/LaunchAgents/, bootstraps the agent, and creates the symlink once synchronously so it’s ready immediately.
2

Verify the symlink

ls -la ~/.codex/skills/codealive-context-engine
The output should show a symlink pointing into ~/.claude/plugins/cache/codealive-marketplace/codealive/<version>/skills/codealive-context-engine.
3

Confirm the launchd agent

launchctl print "gui/$(id -u)/com.codealive.plugin-bridge" | head
You should see state = waiting (the expected idle state for a WatchPaths agent) and the watched path listed.
4

Test with a plugin update

From any shell, run:
claude plugin update codealive@codealive-marketplace
Then re-check the symlink — it should now point at the newer version. The bridge also writes a line per relink to /tmp/codealive-plugin-bridge.log.

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.
VariableDefault
CODEALIVE_PLUGIN_CACHE~/.claude/plugins/cache/codealive-marketplace/codealive
CODEALIVE_PLUGIN_SUBPATHskills/codealive-context-engine
CODEALIVE_AGENT_LINK~/.codex/skills/codealive-context-engine
Example for Gemini CLI:
CODEALIVE_AGENT_LINK=~/.gemini/skills/codealive-context-engine ./install-macos.sh
launchd starts update-symlink.sh through /bin/bash and does not inherit your interactive shell environment. If you customise a variable, either edit the defaults inside update-symlink.sh, set them in ~/.zshenv (which is read by non-login bash on macOS when sourced explicitly), or add an EnvironmentVariables dictionary to the plist before installing.

Linux

A systemd --user path unit gives the equivalent behaviour. See the Linux section of the bridge README for ready-to-use unit files.

Uninstall

cd codealive-skills/tools/plugin-bridge
./uninstall-macos.sh
This removes the launchd agent. The existing symlink stays in place; delete it manually if you want to remove it as well:
rm ~/.codex/skills/codealive-context-engine

Troubleshooting

Confirm the symlink resolves to a directory that contains SKILL.md:
ls -la "$(readlink ~/.codex/skills/codealive-context-engine)"
If the link is dangling, check that the Claude Code plugin is installed (claude plugin list) and that ~/.claude/plugins/cache/codealive-marketplace/codealive/ contains at least one version directory.
Another launchd job is already loaded under the same label. Boot it out first:
launchctl bootout "gui/$(id -u)/com.codealive.plugin-bridge"
./install-macos.sh
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:
ls ~/.claude/plugins/cache/codealive-marketplace/codealive
# keep the latest, remove anything older
For general integration issues, see the Troubleshooting Guide.

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