Skip to content

About

GenClass plugin for Claude Code, Codex, Cursor and Gemini CLI: see the race, replay it, prove the fix. Assembled from genclass-dev/GenClass-lib.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

GenClass plugin

For Claude Code, Codex, Cursor, Gemini CLI and other agents that read plugins or skills. GenClass lets the agent see what happens inside the pages of your web app running on your machine (each click, request and response, the order the responses were delivered, what each response wrote into the app's state, uncaught errors), find race conditions by re-running a page with the network answering in different orders, replay one exact order to prove a fix, and write a Playwright test that fails while the bug is there.

Install

Claude Code (the server, a prompt hook that brings new findings to each prompt, and the genclass skill):

/plugin marketplace add genclass-dev/genclass-plugin
/plugin install genclass@genclass

Codex (the server and the skill): codex plugin marketplace add genclass-dev/genclass-plugin, then codex plugin add genclass@genclass. Gemini CLI (the same): gemini extensions install https://github.com/genclass-dev/genclass-plugin. The skill alone, in any agent the skills CLI knows: npx skills add genclass-dev/genclass-plugin; for GitHub Copilot, gh skill install genclass-dev/genclass-plugin genclass.

Then connect your app's development build (two lines; genclass_setup prints them for your framework) and load a page of the dev server. The page side needs @genclass/runtime 0.3.0-beta.1 or later. See the package README.

What it installs

part file what it does
MCP server genclass .mcp.json runs the GenClass MCP server, @genclass/mcp@0.2.1 (vendored as server/cli.mjs in the plugin repository and run with node; the copy inside GenClass-lib runs npx -y @genclass/mcp@0.2.1): nine tools (genclass_status, genclass_findings, genclass_explain, genclass_explore, genclass_replay, genclass_analytics, genclass_setup, genclass_scan, genclass_clear) and a bridge on 127.0.0.1:47357 that your app's pages connect to
UserPromptSubmit hook hooks/hooks.json runs the same server's hook command before each prompt: up to five findings recorded since the last prompt are added to the prompt as context
skill genclass skills/genclass/SKILL.md the procedure once Claude reaches for the tools (the explore arguments and Playwright pairing, how to read a report, what to say when done, what to do when the tools are missing); its description carries the triggers (an intermittent frontend bug; after changing code that fetches, submits, autosaves, polls or debounces; before calling a UI change done), as do the server's instructions. Without the plugin, npx -y @genclass/mcp@0.2.1 init writes the same file to .claude/skills/genclass/SKILL.md

In the plugin repository the server is vendored: server/cli.mjs is the published @genclass/mcp@0.2.1 build (its dist/cli.js, byte for byte, fetched from npm by the daily sync), server/genclass-mcp.mjs is the package's command importing it, and .mcp.json and the hook run them with node from ${CLAUDE_PLUGIN_ROOT}, so installing the plugin installs nothing and runs the exact release it was reviewed with; there is no package.json or lockfile. The copy of this folder inside GenClass-lib runs npx -y @genclass/mcp@0.2.1 instead (nothing built is committed there). plugin.json and mcp.json at this folder's root are the same server in the Agent Plugins format, for Cursor, Codex and other clients that read it (server and skill, no hook); that format has no plugin-root variable, so they keep npx.

What the hook sends, and where

Only to this machine. It reads the bridge's token from ~/.genclass/bridge-47357.token (mode 0600), asks the bridge at http://127.0.0.1:47357 for findings newer than its cursor, keeps that cursor in .genclass/agent/hook-cursor in the project, and prints the new findings' ids, kinds, pages and titles for Claude Code to add to the prompt. Page strings are quoted and labelled as recorded data, not instructions. It sends nothing else anywhere, prints nothing when no bridge is running or nothing is new, and gives up after 0.8 seconds if the bridge does not answer. The first prompt of a session only sets the cursor (genclass_findings has the backlog).

The server listens on 127.0.0.1 only and accepts pages from this machine (localhost, 127.0.0.1, *.localhost) or origins you list in GENCLASS_AGENT_ORIGINS. Nothing leaves your machine, except genclass_analytics {source: "production"}, which reads your own GenClass dashboard when you set GENCLASS_DASHBOARD to its link, and genclass_scan with hosted: true, which sends the URL to the genclass.dev page check (without it, the page loads in a local headless browser). Details: AGENT.md section 6.

Privacy

The plugin collects nothing and sends nothing to GenClass or anyone else. Findings stay in .genclass/agent/ in your project (gitignored by the server) and in the bridge's memory. The runtime in your app has its own disclosed diagnostics, which GenClass.init({ telemetry: false }) turns off (PRIVACY.md).

Turn it off

  • Everything: /plugin disable genclass@genclass (or /plugin uninstall genclass@genclass).
  • Only the hook: Claude Code has no switch for one plugin hook; uninstall the plugin and add the server alone (claude mcp add genclass -- npx -y @genclass/mcp@0.2.1), or set "disableAllHooks": true in your settings, which turns off every hook.
  • In the app: remove the connectAgent(rt) line; the page then never talks to the bridge.

Where this comes from

This folder is packages/mcp/plugin in genclass-dev/GenClass-lib. The repository genclass-dev/genclass-plugin is this folder at a repository root with the marketplace files and the vendored server, assembled by node packages/mcp/scripts/plugin-repo.mjs and re-synced daily, so issues and pull requests go to GenClass-lib.

License

Apache-2.0. Source: packages/mcp.

About

GenClass plugin for Claude Code, Codex, Cursor and Gemini CLI: see the race, replay it, prove the fix. Assembled from genclass-dev/GenClass-lib.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages