Octocode Harness Status
Audit every agent vendor on this machine, measure skill context budget, and expose one-click removal β all in a local interactive browser dashboard.
When to Activate
- "Show my harness", "harness status", "show my AI setup"
- "What skills/MCPs are installed?", "check all vendors"
- "What CLIs are installed and authenticated?"
- "How much context do my skills use?"
- "Remove a skill or MCP", "clean up my agent config"
Workflow
One command. That's it.
node skills/octocode-harness-status/scripts/build_harness.mjs
The script:
- Reads MCP configs for all supported vendors (Cursor, Claude Code, Claude Desktop, Windsurf, Antigravity, Zed, Codex, Gemini CLI, Kiro, Goose, Trae, VS Code Cline/Roo/Continue, Opencode)
- Scans all skill directories per vendor
- Checks installed CLIs and auth status (octocode, gh, claude, cursor, gemini, codex, goose, opencode)
- Queries GitHub token rate limits
- Measures SKILL.md context load per vendor and rates it vs typical agent context windows
- Starts a local HTTP server, opens the dashboard in your default browser
- Handles live remove/delete actions from the dashboard UI
Flags
| Flag | Description | Default |
|------|-------------|---------|
| --port <n> | HTTP server port | auto (random free port) |
| --no-open | Generate but don't open browser | opens |
| --timeout <s> | Server auto-shutdown after N seconds | 300 |
| --help | Print usage | β |
Dashboard sections
| Section | What it shows | |---------|---------------| | Summary bar | Vendor count, total MCPs, total skills, auth status | | Per-vendor cards | MCP list + Skills list, each with a β remove button | | CLI inventory | Version, auth state, rate limits for each CLI | | Context budget | Total SKILL.md bytes per vendor, estimated tokens, % of agent context window, colour-coded health |
Context rating scale
| Colour | Budget used | Meaning | |--------|-------------|---------| | π’ Green | < 5 % | Lean β almost no context overhead | | π‘ Yellow | 5β15 % | Moderate β normal for active setups | | π Orange | 15β30 % | Heavy β consider trimming inactive skills | | π΄ Red | > 30 % | Critical β may crowd out useful context |
Context window baselines: Claude 200 k tokens Β· GPT-4o 128 k tokens Β· Gemini 1 M tokens Β· Codex 32 k tokens.
Remove / edit actions (from the browser UI)
- Remove MCP β deletes the server entry from the vendor's JSON config file (preserves other entries)
- Edit MCP β edits command/args/type/env in place; all other fields (
url,headers,disabled,autoApprove,cwd, β¦) are preserved, not dropped - Remove Skill β deletes the skill folder (
rm -rf) from the vendor's skills directory - Delete script β deletes a single script file under the skill
Both actions prompt for confirmation in the dashboard before writing to disk.
Read-only configs: TOML (Codex) and YAML (Goose) configs are parsed for display but never written β their MCP rows show a π and have no edit/remove buttons, so the dashboard can't corrupt non-JSON files.
Safety: the local server only accepts same-origin requests (no website you visit can drive it), rejects MCP/skill names containing path separators or .., and refuses to delete anything outside your home directory or any directory.
Keyboard & navigation
/β focus the filter boxEscβ close any open modal- Expand all / Collapse all β toggle every vendor card at once
Server lifecycle
The script prints the dashboard URL and keeps the server alive for --timeout seconds (default 5 min). Hit Ctrl-C or wait for auto-shutdown.
Error handling
| Situation | Behaviour | |-----------|-----------| | Config file missing | Vendor shown as "not configured" β no error | | Skills directory missing | Skills count 0 β no error | | CLI not installed | CLI row shown as "not installed" | | GitHub rate limit API unreachable | Rate limit shown as "N/A" | | Port in use | Auto-increments to next free port | | TOML (Codex) / YAML (Goose) config | Parsed read-only for display; MCP rows are locked (no edit/remove) |