Skip to content

Commit 0fdf912

Browse files
committed
feat: initial cc plugin codex release
0 parents  commit 0fdf912

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+5061
-0
lines changed

.agents/plugins/marketplace.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "cc-plugin-codex-marketplace",
3+
"interface": {
4+
"displayName": "CC Plugin Codex Marketplace"
5+
},
6+
"plugins": [
7+
{
8+
"name": "claude-companion",
9+
"source": {
10+
"source": "local",
11+
"path": "./claude"
12+
},
13+
"policy": {
14+
"installation": "AVAILABLE",
15+
"authentication": "ON_INSTALL"
16+
},
17+
"category": "Coding"
18+
}
19+
]
20+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Pull Request CI
2+
3+
on:
4+
pull_request:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
ci:
11+
name: CI
12+
runs-on: ubuntu-latest
13+
timeout-minutes: 10
14+
15+
steps:
16+
- name: Check out repository
17+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
18+
19+
- name: Set up Node.js
20+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
21+
with:
22+
node-version: 22
23+
cache: npm
24+
25+
- name: Install dependencies
26+
run: npm ci
27+
28+
- name: Install Codex CLI
29+
run: |
30+
npm install --global @openai/codex
31+
codex --version
32+
33+
- name: Run Claude plugin test suite
34+
run: npm run test:claude

.github/workflows/release.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
name: Release
14+
runs-on: ubuntu-latest
15+
timeout-minutes: 10
16+
17+
steps:
18+
- name: Check out repository
19+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
20+
21+
- name: Set up Node.js
22+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
23+
with:
24+
node-version: 22
25+
cache: npm
26+
27+
- name: Verify tag matches package and plugin versions
28+
env:
29+
TAG_NAME: ${{ github.ref_name }}
30+
run: |
31+
node --input-type=module <<'EOF'
32+
import { readFileSync } from 'node:fs';
33+
34+
const expected = process.env.TAG_NAME.replace(/^v/, '');
35+
const packageVersion = JSON.parse(readFileSync('package.json', 'utf8')).version;
36+
const pluginVersion = JSON.parse(readFileSync('claude/.codex-plugin/plugin.json', 'utf8')).version;
37+
38+
if (packageVersion !== expected) {
39+
throw new Error(`package.json version ${packageVersion} does not match tag ${expected}`);
40+
}
41+
42+
if (pluginVersion !== expected) {
43+
throw new Error(`plugin.json version ${pluginVersion} does not match tag ${expected}`);
44+
}
45+
EOF
46+
47+
- name: Install dependencies
48+
run: npm ci
49+
50+
- name: Install Codex CLI
51+
run: |
52+
npm install --global @openai/codex
53+
codex --version
54+
55+
- name: Run Claude plugin test suite
56+
run: npm run test:claude
57+
58+
- name: Create GitHub release
59+
env:
60+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61+
TAG_NAME: ${{ github.ref_name }}
62+
run: gh release create "$TAG_NAME" --generate-notes --title "$TAG_NAME"

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
node_modules/
2+
docs/
3+
dist/
4+
coverage/
5+
.DS_Store
6+
*.log

CONTRIBUTING.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Contributing
2+
3+
Contributions are welcome.
4+
5+
## Development
6+
7+
```bash
8+
npm ci
9+
npm run test:claude
10+
```
11+
12+
## Expectations
13+
14+
- Keep the plugin Codex-native.
15+
- Preserve honest positioning around the current installed-plugin hook limitation.
16+
- Add or update tests for behavior changes.
17+
- Avoid disturbing unrelated worktree changes.
18+
19+
## Pull Requests
20+
21+
- Keep changes focused.
22+
- Include verification notes in the PR description.
23+
- Update docs when behavior, install steps, or user-visible positioning changes.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Pejman Pour-Moezzi
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

PRIVACY.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Privacy Policy
2+
3+
CC Plugin Codex is an open-source local plugin. The repository maintainers do not operate a hosted service for this project and do not intentionally collect telemetry from your local use of the plugin.
4+
5+
## What This Project Does
6+
7+
The plugin runs on your machine and can invoke local Codex and Claude CLI tooling. Any prompts, code, logs, or metadata handled by those tools are governed by the policies and settings of those tools and services, not by this repository alone.
8+
9+
## Data We Receive
10+
11+
Project maintainers may receive information you choose to send through:
12+
13+
- GitHub issues
14+
- pull requests
15+
- security reports
16+
- other direct maintainer contact
17+
18+
That information is processed through GitHub and any other platform you use to contact maintainers.
19+
20+
## Third-Party Services
21+
22+
If you use Codex, Claude, GitHub, or other external services with this plugin, their privacy policies apply to the data you send through them.
23+
24+
## Changes
25+
26+
This document may change as the project evolves. Material updates should be made in the repository history.

README.md

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# CC Plugin Codex
2+
3+
Use Claude from inside Codex for code reviews or to delegate tasks to Claude Code.
4+
5+
This repository is the source for the Codex-native Claude Companion plugin bundle. It is meant to be a reverse port of [`openai/codex-plugin-cc`](https://github.com/openai/codex-plugin-cc): the original brings Codex into Claude Code, while this project brings Claude-backed review and delegation workflows into Codex.
6+
7+
The installable plugin bundle lives under [`claude/README.md`](./claude/README.md).
8+
9+
## What You Get
10+
11+
- `$claude-review` for a normal read-only Claude review from Codex
12+
- `$claude-adversarial-review` for a steerable challenge review
13+
- `$claude-rescue`, `$claude-status`, `$claude-result`, and `$claude-cancel` to delegate and manage longer-running Claude tasks
14+
- `$claude-setup` to verify Claude Code readiness and report the current review-gate limitation honestly
15+
16+
## Requirements
17+
18+
- Codex with plugin support
19+
- Claude Code installed and available as `claude`
20+
- Node.js 18.18 or later for development and tests
21+
22+
## Install
23+
24+
```bash
25+
git clone https://github.com/pejmanjohn/cc-plugin-codex.git
26+
cd cc-plugin-codex
27+
./scripts/install.sh
28+
```
29+
30+
The installer uses Codex's official `plugin/install` backend against this repo's local marketplace file, so you do not need to edit any Codex marketplace configuration by hand.
31+
32+
## Verify
33+
34+
Open Codex:
35+
36+
```bash
37+
codex
38+
```
39+
40+
If you normally use the Codex Mac app and it is already open, restart it instead.
41+
42+
Then start a new thread and run:
43+
44+
```text
45+
$claude-setup
46+
```
47+
48+
After install, you should see the bundled Claude Companion skills in Codex. The full bundle-level usage guide lives in [`claude/README.md`](./claude/README.md).
49+
50+
## Update
51+
52+
```bash
53+
git pull
54+
./scripts/install.sh
55+
```
56+
57+
## Uninstall
58+
59+
```bash
60+
./scripts/uninstall.sh
61+
```
62+
63+
## Usage
64+
65+
### `$claude-review`
66+
67+
Runs a normal read-only Claude review on your current work or against a base ref.
68+
69+
### `$claude-adversarial-review`
70+
71+
Runs a more skeptical review that questions implementation choices, tradeoffs, and failure modes.
72+
73+
### `$claude-rescue`
74+
75+
Delegates a foreground or background task to Claude and stores durable job state for follow-up.
76+
77+
### `$claude-status`, `$claude-result`, `$claude-cancel`
78+
79+
Shows running and recent jobs, returns the stored final output, or cancels an active background task.
80+
81+
### `$claude-setup`
82+
83+
Checks whether Claude Code is installed and usable, and reports the current stop-time review-gate limitation.
84+
85+
## Current Limitation
86+
87+
The plugin is usable today, but it is not fully functionally equivalent to `openai/codex-plugin-cc`.
88+
89+
The missing piece is the automatic stop-time review gate. Codex supports repo-level and user-level hooks, but validated installed-plugin runs still did not execute bundled plugin hooks after official install, so this plugin reports that limitation honestly instead of pretending the gate works.
90+
91+
## Releases
92+
93+
This repo uses simple tag-based releases.
94+
95+
- Keep [`package.json`](./package.json) and [`claude/.codex-plugin/plugin.json`](./claude/.codex-plugin/plugin.json) on the same semantic version.
96+
- Create a tag like `v0.1.0`.
97+
- Push the tag to GitHub.
98+
99+
The release workflow will verify the tag matches both version files, run the Claude plugin test suite, and publish a GitHub release with generated notes.
100+
101+
## Development
102+
103+
```bash
104+
npm ci
105+
npm run test:claude
106+
```
107+
108+
Helpful files:
109+
110+
- [`claude/README.md`](./claude/README.md)
111+
- [`claude/.codex-plugin/plugin.json`](./claude/.codex-plugin/plugin.json)

SECURITY.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Security Policy
2+
3+
If you believe you have found a security issue in CC Plugin Codex, please avoid posting sensitive details in a public issue.
4+
5+
## Reporting
6+
7+
Prefer GitHub's private security reporting features if they are enabled for this repository. If private reporting is unavailable, contact the repository owner directly through GitHub before disclosing details publicly.
8+
9+
## Scope
10+
11+
This project invokes third-party tooling such as Codex and Claude CLI. Issues in those upstream tools may need to be reported to their respective maintainers.
12+
13+
## Response
14+
15+
Best-effort triage will be provided, but no response-time guarantee is offered.

TERMS.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Terms of Use
2+
3+
CC Plugin Codex is provided under the MIT License and is made available on an "as is" basis, without warranties or guarantees.
4+
5+
## Use At Your Own Risk
6+
7+
You are responsible for:
8+
9+
- reviewing the plugin before using it in your environment
10+
- complying with the terms of Codex, Claude, GitHub, and any other services you connect
11+
- monitoring usage limits, pricing, and data handling for external tools the plugin invokes
12+
13+
## No Service Commitment
14+
15+
This repository is an open-source project, not a managed service. Maintainers may change, pause, or discontinue development at any time.
16+
17+
## No Warranty
18+
19+
To the maximum extent permitted by law, the maintainers disclaim warranties of merchantability, fitness for a particular purpose, non-infringement, and uninterrupted availability.
20+
21+
## Liability
22+
23+
The maintainers are not liable for damages, data loss, outages, security incidents, or costs arising from use of the project.

0 commit comments

Comments
 (0)