Test Claude Code mods and check compatibility
What the repository's gate checks, where it can pass without a type check, what each CI workflow covers, and how platform support differs from a tested mod.
Requirements
package.json requires Node 20 or later; the CI workflows use Node 22. The scripts require Claude Code 2.1.287 or later and stop with a plain message if claude --version is older. Set CLAUDE_BIN to point at a newer binary.
What scripts/check.sh does
Run these from the root of a local claude-code-mods clone after npm ci.
Replace <mod> with a mod name, such as redline, before running a command.
For each mod folder, check.sh runs claude plugin validate, then tsc if engine types are present, then claude plugin test. A named folder that is not a mod fails, and checking zero mods fails.
--strict is added only when STRICT is set, so warnings fail only in this form, which is how CI runs it:
STRICT=1 bash scripts/check.sh mods/<mod>npm run check -- mods/<mod> runs the same script without STRICT, so validation is not strict there.
The type check can be skipped
The script looks for engine types at CLAUDE_TYPES, or .cache/claude-code.d.ts by default. If neither exists it prints -- skip tsc: no engine types at ... and carries on, so the run can still end all green without a type check. SECURITY.md says CI does not have those types yet, so CI runs validate and tests but not tsc.
To include it, let Claude Code write the types by loading the mod from its folder once, as CONTRIBUTING.md describes, then exit that session and copy them in your shell:
claude --plugin-dir mods/<mod>This opens an interactive Claude Code session. When it has loaded the mod, exit the session (for example with /exit), confirm mods/<mod>/.claude-plugin/types/ now exists, then run:
mkdir -p .cache
cp mods/<mod>/.claude-plugin/types/claude-code/index.d.ts .cache/claude-code.d.ts
STRICT=1 bash scripts/check.sh mods/<mod>Confirm the output has no skip tsc line. The types path follows CONTRIBUTING.md; check it on your Claude Code version.
CI workflows
| Workflow | When | Claude Code | Runs |
|---|---|---|---|
check.yml | Push to main, pull requests, daily, manual | Pinned 2.1.293 and latest. The latest job is advisory: continue-on-error | Strict check of every mod, marketplace install smoke test, generated files up to date; plus links, sound specs, no dashes, version bumps |
compat.yml | Daily, manual | Latest only | The same strict check and install smoke test. A failure here is red, not advisory |
install.yml | Daily, manual | 2.1.293 and latest | Both documented install paths from GitHub in a throwaway config |
A workflow file shows what is checked, not that the last run passed. See the Actions page for current results.
What the tests prove
Redline's wiring.test.tsx raises mock events (measurements, model requests, commands) in Claude Code's test kit and mounts the band and pane on the terminal and desktop surfaces. That shows the logic and rendering react to events as written. It is not a manual end-to-end session, and it does not cover VS Code.
Platform support and per-mod testing
Use Claude Code 2.1.287 or later in a terminal, or a local Code session in Claude Desktop. Desktop includes its own Claude Code; the official minimum there is 2.1.286, while this collection conservatively requires 2.1.287.
The current official mods documentation also allows mod UI in the VS Code chat panel with extension 2.1.299 or later, in a session that fetches feature flags. That platform capability is not a compatibility test of every mod. Desktop WSL sessions have no plugins. Remote Control shows mod UI in the terminal on the host machine.
The repository README, at the reviewed commit, still says the VS Code extension does not draw mods. That predates the current official documentation above. Redline's own README says VS Code and mobile draw its pane through the same hooks but are not tested. Treat VS Code as supported by the platform and untested per mod. See the install guide for setup.
Sources
Source-reviewed on against modmyclaude/claude-code-mods at commit 8628e8f. This page describes what the repository files say and do. We did not run the repository's tests or a new live Claude Code session for it.