Skip to content

Commit 98cb3af

Browse files
Add Codex plugin compatibility (#16)
* Add Codex plugin compatibility * docs: clarify shared Claude and Codex support
1 parent 6910673 commit 98cb3af

15 files changed

Lines changed: 570 additions & 46 deletions

File tree

‎.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": "orcasecurity",
3+
"interface": {
4+
"displayName": "Orca Security"
5+
},
6+
"plugins": [
7+
{
8+
"name": "orca-skills",
9+
"source": {
10+
"source": "local",
11+
"path": "./"
12+
},
13+
"policy": {
14+
"installation": "AVAILABLE",
15+
"authentication": "ON_INSTALL"
16+
},
17+
"category": "Security"
18+
}
19+
]
20+
}

‎.codex-plugin/plugin.json‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"name": "orca-skills",
3+
"version": "2.0.0",
4+
"description": "Orca Security skills collection for cloud security workflows with the Orca Cloud Platform.",
5+
"author": {
6+
"name": "Orca Security",
7+
"email": "support@orca.security",
8+
"url": "https://orca.security"
9+
},
10+
"homepage": "https://github.com/orcasecurity/orca-skills",
11+
"repository": "https://github.com/orcasecurity/orca-skills",
12+
"license": "MIT",
13+
"keywords": [
14+
"security",
15+
"orca",
16+
"triage",
17+
"alerts",
18+
"soc",
19+
"incident-response",
20+
"cloud-security",
21+
"compliance",
22+
"identity",
23+
"exposure",
24+
"dspm",
25+
"investigation",
26+
"asset-profile",
27+
"codex",
28+
"claude",
29+
"cursor",
30+
"mcp"
31+
],
32+
"skills": "./skills/",
33+
"interface": {
34+
"displayName": "Orca Security Skills",
35+
"shortDescription": "Cloud security workflows powered by Orca MCP data.",
36+
"longDescription": "Install Orca Security skills for alert triage, impact analysis, compliance gaps, exposure mapping, incident investigation, cloud cost optimization, and daily security briefings.",
37+
"developerName": "Orca Security",
38+
"category": "Security",
39+
"capabilities": [
40+
"Security Analysis",
41+
"Cloud Security",
42+
"MCP"
43+
],
44+
"defaultPrompt": [
45+
"Give me an Orca morning briefing.",
46+
"Triage Orca alert orca-1234567.",
47+
"Show my external exposure map."
48+
],
49+
"brandColor": "#00D4AA"
50+
}
51+
}

‎.codex/plugin.json‎

Lines changed: 0 additions & 26 deletions
This file was deleted.

‎.cursor-plugin/plugin.json‎

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
2-
"name": "orca-triage",
3-
"displayName": "Orca Security Alert Triage",
4-
"description": "Triage Orca Security alerts with analyst-friendly formatting, timeline analysis, and progressive disclosure",
5-
"version": "1.0.0",
2+
"name": "orca-skills",
3+
"displayName": "Orca Security Skills",
4+
"description": "Skills and plugins to accelerate security workflows with the Orca Cloud Platform",
5+
"version": "2.0.0",
66
"author": {
77
"name": "Orca Security",
88
"email": "support@orca.security"
99
},
10-
"homepage": "https://github.com/orca-security/orca-triage-skill",
11-
"repository": "https://github.com/orca-security/orca-triage-skill",
10+
"homepage": "https://github.com/orcasecurity/orca-skills",
11+
"repository": "https://github.com/orcasecurity/orca-skills",
1212
"license": "MIT",
1313
"keywords": [
1414
"security",
@@ -17,7 +17,18 @@
1717
"alerts",
1818
"soc",
1919
"incident-response",
20-
"threat-intelligence"
20+
"threat-intelligence",
21+
"cloud-security",
22+
"compliance",
23+
"identity",
24+
"exposure",
25+
"dspm",
26+
"investigation",
27+
"asset-profile",
28+
"codex",
29+
"claude",
30+
"cursor",
31+
"mcp"
2132
],
2233
"skills": "./skills/",
2334
"mcp_required": [
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Packaging
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: packaging-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
jobs:
16+
validate:
17+
name: packaging (node ${{ matrix.node-version }})
18+
runs-on: ubuntu-latest
19+
strategy:
20+
matrix:
21+
node-version: [20, 24]
22+
steps:
23+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
24+
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
25+
with:
26+
node-version: ${{ matrix.node-version }}
27+
- run: npm test

‎CONTRIBUTING.md‎

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ If a skill produces unexpected output, fails to trigger, or behaves incorrectly:
2222
- The skill name (e.g., `orca-alert-triage`)
2323
- The exact prompt or input you used
2424
- What you expected vs. what you got
25-
- Your Claude Code version (`claude --version`) and OS
25+
- Your client and version (`claude --version` or `codex --version`) and OS
2626
- Any error output or unexpected MCP behavior
2727

2828
> For security vulnerabilities, **do not open a public issue**. See [SECURITY.md](SECURITY.md).
@@ -43,13 +43,22 @@ This avoids wasted effort and keeps the repo focused.
4343

4444
## Development Setup
4545

46+
Skills are plain Markdown files under `skills/<skill-name>/SKILL.md`. There is no build step or runtime dependency to author them. Node.js 20+ is required to run the repository packaging checks.
47+
4648
```bash
4749
# Fork and clone
4850
git clone https://github.com/<your-username>/orca-skills.git
4951
cd orca-skills
52+
53+
# Validate plugin packaging and run regression tests
54+
npm test
5055
```
5156

52-
Skills are plain Markdown files under `skills/<skill-name>/SKILL.md` — no build step or runtime is required to author or modify them. Install them via the Claude Code plugin marketplace (see [README](README.md)) to try them locally.
57+
Claude, Cursor, and Codex all use this single root `skills/` tree. Edit it once; do not create copies under `plugins/orca-skills/`. `npm test` checks the plugin manifests, marketplace sources, and skill metadata. With Codex CLI installed, `npm run test:codex` also verifies installation and discovery in a temporary home. See [README](README.md#testing).
58+
59+
Keep shared skill instructions usable in both Claude and Codex. Label client-specific setup commands and usage examples clearly.
60+
61+
The independent `security-engineer` plugin has its own [development setup and test suite](plugins/security-engineer/README.md#developing).
5362

5463
**Note:** `.mcp.json` is gitignored. Never commit API tokens or credentials.
5564

@@ -64,7 +73,7 @@ Skills are plain Markdown files under `skills/<skill-name>/SKILL.md` — no buil
6473
git checkout -b docs/update-readme
6574
```
6675

67-
2. **Make your changes.** Edit or add `SKILL.md` files under `skills/<skill-name>/`.
76+
2. **Make your changes.** Edit or add `SKILL.md` files under `skills/<skill-name>/`. Run `npm test` before pushing; the packaging workflow runs it on every pull request.
6877

6978
3. **Keep PRs focused.** One bug fix or one new skill per PR. Do not bundle unrelated changes.
7079

@@ -77,9 +86,10 @@ Skills are plain Markdown files under `skills/<skill-name>/SKILL.md` — no buil
7786
5. **PR description** must include:
7887
- What changed and why
7988
- A link to the related issue (if applicable)
80-
- For new skills: a brief validation note (did you test with a real Orca environment?)
89+
- Confirmation that `npm test` passes locally
90+
- For new skills: a brief Claude and/or Codex validation note, including whether you tested with a real Orca environment
8191

82-
6. **One approving review** from a maintainer is required to merge.
92+
6. **CI must pass**, and one approving review from a maintainer is required to merge.
8393

8494
---
8595

‎README.md‎

Lines changed: 83 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,15 @@
1414

1515
---
1616

17+
Orca Skills supports both **Claude Code and Codex**. Both clients use the same
18+
`skills/` directory, with separate plugin manifests and installation instructions.
19+
1720
### Table of Contents
1821
- [Plugins](#plugins)
1922
- [Skills Overview](#skills-overview)
2023
- [Installation](#installation)
2124
- [MCP Configuration](#mcp-configuration)
25+
- [Usage Notes](#usage-notes)
2226
- [Skill Details](#skill-details)
2327
- [Testing](#testing)
2428
- [Contributing](#contributing)
@@ -34,7 +38,7 @@ people want the first one.
3438

3539
| Plugin | What it is | Prerequisites |
3640
|---|---|---|
37-
| [`orca-skills`](#skills-overview) | 16 read-only skills that answer questions about your cloud environment through the Orca MCP server | The Orca MCP server. Nothing else |
41+
| [`orca-skills`](#skills-overview) | 20 skills for cloud security analysis and guided remediation through the Orca MCP server | The Orca MCP server. Nothing else |
3842
| [`security-engineer`](plugins/security-engineer/) | An autonomous agent that **remediates** Orca findings in your source code and opens a pull request per fix | Python 3.10+, authenticated [`gh`](https://cli.github.com/), `ORCA_API_TOKEN` in the environment, network access to OSV.dev and deps.dev |
3943

4044
They answer different questions and are kept apart on purpose: `orca-skills`
@@ -97,14 +101,23 @@ second plugin or any of its prerequisites.
97101
Then install whichever plugins you want:
98102

99103
```bash
100-
claude plugin install orca-skills@orcasecurity # the 16 MCP skills
104+
claude plugin install orca-skills@orcasecurity # the MCP skills
101105
claude plugin install security-engineer@orcasecurity # autonomous remediation
102106
```
103107

104108
**Next step:** Configure the Orca Security MCP server (see [MCP Configuration](#mcp-configuration) below).
105109
`security-engineer` does not use MCP — its setup is in
106110
[its own README](plugins/security-engineer/README.md).
107111

112+
### Codex CLI
113+
114+
```bash
115+
codex plugin marketplace add orcasecurity/orca-skills
116+
codex plugin add orca-skills --marketplace orcasecurity
117+
```
118+
119+
This installs `orca-skills` from the root `skills/` directory. Configure the Orca Security MCP server using the [Codex instructions](#codex-mcp-configuration) below. The separate `security-engineer` plugin uses Claude Code; see [its README](plugins/security-engineer/README.md).
120+
108121
### Claude Desktop
109122

110123
Add the marketplace to your Claude Desktop configuration, then install skills from the marketplace UI.
@@ -118,12 +131,18 @@ cd orca-skills
118131

119132
# Copy skills to your skills directory
120133
cp -r skills/* ~/.claude/skills/
134+
135+
# Or install into Codex's user skills directory
136+
mkdir -p ~/.agents/skills
137+
cp -r skills/* ~/.agents/skills/
121138
```
122139

123140
## MCP Configuration
124141

125142
**Required:** These skills need the Orca Security MCP server to access your environment data.
126143

144+
### Claude Code / Claude Desktop
145+
127146
Add to your `.mcp.json` (in project root or `~/.claude/.mcp.json`):
128147

129148
**Uses OAuth2 for authentication**
@@ -164,6 +183,42 @@ Add to your `.mcp.json` (in project root or `~/.claude/.mcp.json`):
164183
> `.mcp.json`. Configuring one does not configure the other.
165184
166185

186+
### Codex MCP Configuration
187+
188+
For OAuth2 authentication:
189+
190+
```bash
191+
codex mcp add orca-security --url https://mcp.orcasecurity.io
192+
codex mcp login orca-security
193+
```
194+
195+
For token based authentication, set the authorization value in an environment variable:
196+
197+
```bash
198+
export ORCA_AUTHORIZATION="Token YOUR_ORCA_API_TOKEN"
199+
```
200+
201+
Reference the variable in `~/.codex/config.toml` (or `$CODEX_HOME/config.toml` when using a custom home):
202+
203+
```toml
204+
[mcp_servers.orca-security]
205+
url = "https://api.orcasecurity.io/mcp"
206+
env_http_headers = { Authorization = "ORCA_AUTHORIZATION" }
207+
```
208+
209+
Check the connection with `codex mcp list`. See the [official Codex MCP documentation](https://developers.openai.com/codex/mcp/).
210+
211+
## Usage Notes
212+
213+
Claude examples use slash commands such as `/orca-alert-triage`. In Codex, use natural language or explicitly mention the installed skill:
214+
215+
```text
216+
triage Orca alert orca-1234567
217+
$orca-skills:orca-morning-briefing what needs attention today?
218+
```
219+
220+
For a manually copied skill, use its standalone name, such as `$orca-morning-briefing`.
221+
167222
## Skill Details
168223

169224
<details>
@@ -1440,6 +1495,32 @@ ADMIN GROUPING SUMMARY (window: last 90 days; artifact: daily snapshot)
14401495
14411496
</details>
14421497
1498+
## Testing
1499+
1500+
With Node.js 20+ installed, run the packaging validation and regression tests:
1501+
1502+
```bash
1503+
npm test
1504+
```
1505+
1506+
These dependency-free checks validate the Claude, Cursor, and Codex manifests, the marketplace sources, and each root skill's metadata. The packaging workflow runs them on every pull request.
1507+
1508+
### Codex Smoke Test
1509+
1510+
With Codex CLI installed, verify the complete local marketplace install:
1511+
1512+
```bash
1513+
npm run test:codex
1514+
```
1515+
1516+
The script uses a temporary Codex home, runs outside the repository, installs the root plugin, compares every installed skill and reference file with `skills/`, and verifies that Codex discovers the skills from the installed cache. It removes its temporary files on completion. This tests packaging and discovery without an Orca account or model call; it does not exercise the Orca MCP workflows.
1517+
1518+
### Claude Smoke Test
1519+
1520+
After installing the marketplace in Claude Code, run `claude mcp list` to check the Orca MCP connection, then try `/orca-alert-triage` with an alert from your environment.
1521+
1522+
The separate `security-engineer` tests and development setup are documented in [its README](plugins/security-engineer/README.md#developing).
1523+
14431524
## Contributing
14441525
14451526
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

‎package.json‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"version": "2.0.0",
44
"type": "module",
55
"description": "Skills and plugins to accelerate security workflows with the Orca Cloud Platform",
6+
"scripts": {
7+
"test": "node scripts/validate-packaging.mjs && node --test scripts/validate-packaging.test.mjs",
8+
"test:codex": "node scripts/smoke-test-codex.mjs"
9+
},
610
"repository": {
711
"type": "git",
812
"url": "https://github.com/orcasecurity/orca-skills.git"
@@ -14,6 +18,11 @@
1418
"alerts",
1519
"soc",
1620
"claude",
21+
"codex",
22+
"cursor",
23+
"mcp",
24+
"cloud-security",
25+
"compliance",
1726
"skills"
1827
],
1928
"author": "Orca Security",

0 commit comments

Comments
 (0)