Run skills on OpenCode, Codex, and Hermes Agent (verified live)#31
Merged
Conversation
The 71 skills are Agent Skills, so the knowledge runs beyond Claude Code. VERIFIED END-TO-END on this machine (skills load + live Burp MCP connects): - OpenCode 1.15.11 — 48 hunt-* loaded (debug logs); `opencode mcp list` → burp connected - Hermes v0.14.0 — skills enabled in `hermes skills list`; `hermes mcp test burp` → 24 tools - Codex 0.137.0 — 0 skill-load errors; session mcp_servers="burp,codex_apps"; model OK install.sh: - --agents → ~/.agents/skills (read natively by Codex + OpenCode) - --hermes → ~/.hermes/skills (Hermes); --all → Claude + agents + hermes - --burp-mcp → translate the existing Burp MCP (from ~/.claude.json) into each harness via scripts/setup_harness_mcp.py (opt-in; backs up configs first) - Auto-truncates descriptions >1024 chars in the ~/.agents (Codex) copy ONLY — Codex hard-rejects longer ones; ~/.claude and ~/.hermes keep full descriptions. - Fixed a set -e footgun (`[ ] && cmd` → if/fi) that aborted the default install. scripts/setup_harness_mcp.py (new): writes OpenCode JSON (verified: burp connected), Codex TOML (verified: mcp get burp parses + proxy launches), and Hermes YAML (verified: mcp test burp → 24 tools) — all backed up first; --dry-run supported. Two real bugs surfaced by the live Codex test (strict YAML + 1024 limit) and fixed: - skills/hunt-ntlm-info: quoted the description (unquoted `WWW-Authenticate: NTLM` broke strict YAML — Codex rejected it; lenient parsers didn't). - lint_skills.py: added a YAML-safety check (catches that unquoted-colon class) and noted the Codex 1024 limit in the over-length message. Docs: new docs/multi-harness.md (matrix + per-harness install + MCP snippets + the OpenCode dual-path / Codex-strictness caveats); README + INSTALL sections (also fixed stale "51 skills" + old backup wording in INSTALL). Claude-Code-only (do not port, by design): 15 slash commands, plugin marketplace, hunt-dispatch subagent routing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the 71 skills run on OpenCode, Codex, and Hermes Agent from one source — not just Claude Code. Verified end-to-end on each (skills load and live Burp MCP connects), per a strict "test every harness + MCP" bar.
Verified on this machine
opencode mcp list→burp connectedhermes skills listhermes mcp test burp→ 24 toolsmcp_servers="burp, codex_apps", model OKWhat's added
install.shflags:--agents(→~/.agents/skills, read by Codex + OpenCode),--hermes(→~/.hermes/skills),--all,--burp-mcp. Default behavior unchanged. (Also fixed aset -efootgun that would've aborted the default install.)scripts/setup_harness_mcp.py— translates your existing Burp MCP (from~/.claude.json) into OpenCode JSON / Codex TOML / Hermes YAML, backing up each first.--dry-runsupported.docs/multi-harness.md— compatibility matrix, per-harness install, MCP snippets, caveats.Two real bugs the live Codex test caught (Codex enforces strict YAML + a 1024-char description cap)
hunt-ntlm-infohad an unquoted`WWW-Authenticate: NTLM`in its description — the:broke strict YAML. Claude/OpenCode/Hermes tolerated it; Codex rejected it. Fixed (quoted).install.sh --agentsnow auto-truncates them in the~/.agents(Codex) copy only;~/.claude/~/.hermeskeep full descriptions (incl. non-English triggers). Repo descriptions untouched.lint_skills.pyhardened: YAML-safety check (catches the unquoted-colon class) + Codex-limit note.Boundary (by design)
Slash commands (
/hunt…), the plugin marketplace, andhunt-dispatchare Claude-Code-only — other harnesses get the skill knowledge + Burp MCP, not the/huntengine.🤖 Generated with Claude Code