ir-plugin

Industry Rockstar Brain

A Claude plugin (slug industry-rockstar-brain) that bundles your IR MCP server with skills + commands so your Rockstar / IR agents render as live UI in Claude: inline widgets for the conversation, a per-user command center, one-click live artifacts, and thumbs feedback — instead of plain chat text.

What’s inside

ir-plugin/
├── .claude-plugin/
│   ├── plugin.json                    # plugin manifest
│   └── marketplace.json               # marketplace listing (for publishing)
├── .mcp.json                          # ir-mcp server (remote HTTP)
├── commands/
│   ├── rockstar.md                    # /rockstar — entry point to any orchestrator
│   └── agents-home.md                 # /agents-home — the command center
├── skills/
│   ├── render-live-artifact/
│   │   ├── SKILL.md                   # picks inline widgets vs. live artifact
│   │   ├── references/
│   │   │   └── inline-widgets.md      # the inline-widget contract + emit budget
│   │   └── templates/
│   │       ├── inline-ask.html        # interview form
│   │       ├── inline-choice.html     # pick-one list
│   │       ├── inline-result.html     # deliverable card
│   │       └── live-artifact.html     # durable re-fetching page
│   └── rockstar-agents-home/
│       └── templates/
│           └── agents-home.html       # the command center artifact
├── CHANGELOG.md
└── README.md

The skill is what makes the behavior automatic; the plugin packages the skill + server together so it installs in one step. The plugin adds no new capability beyond Cowork’s existing create_artifact — it just makes the setup repeatable and shippable.

Already configured

Ready to publish

Repo: https://github.com/industryrockstar/ir-plugin. Nothing left to fill in. (In the artifact template, TOOL is a placeholder Claude substitutes with the actual orchestrator name at artifact-creation time — you don’t hardcode it.)

If your server uses SSE rather than streamable HTTP, change "type": "http" to "type": "sse" in .mcp.json. (HTTP is recommended where supported.)

Publish it

  1. Push this folder to a GitHub repo (it can be both the plugin and the marketplace, since marketplace.json lists itself).
  2. Validate locally: claude plugin validate . (from the plugin root)

Install it (what your users run)

/plugin marketplace add industryrockstar/ir-plugin
/plugin install industry-rockstar-brain@hotei-marketplace
/reload-plugins

After install, the MCP server connects and the skill activates automatically — when any ir-mcp orchestrator produces output, Claude renders it as a live artifact.

A note on render speed

Everything in templates/ is emitted token by token by the model when it calls show_widget or create_artifact, so template size is render time — the browser is never the bottleneck. Measured on a 37-option client picker: ~10k tokens took ~2m15s, the same picker rebuilt around a data array took ~1.3k tokens and ~30s, against a 15s no-widget baseline.

So, when editing anything under templates/:

A note on “live” + LLM output

Live artifacts re-run your tool every time the page is opened. If your tool regenerates LLM output on each call, the page will produce different results on each reload. The skill handles this: if the output isn’t meaningfully refreshable, it falls back to a one-time static artifact. Decide which fits your tool.

Host portability (Cowork, Codex, and beyond)

Every runtime template ships with a small host adapter at the top (look for HOST ADAPTER). It lets the same artifact run across hosts instead of hard-binding to Cowork’s window.cowork global — and, just as important, it degrades to a clear message instead of throwing on an undefined global when opened with no host.

Resolution order for every callMcpTool / askClaude the templates make:

  1. Claude Cowork — native window.cowork.callMcpTool / askClaude (untouched when present).
  2. OpenAI / Codex Apps — window.openai.callTool, and sendFollowUpMessage for “launch a skill”.
  3. Generic MCP host — window.{craftAgent|codex|mcpHost|host}.callMcpTool / callTool / tools.call.
  4. Authenticated HTTP fallback — a minimal MCP Streamable-HTTP client (initialize → notifications/initialized → tools/call, SSE-aware).

The HTTP fallback is opt-in and reads config from globals or <meta> tags an embedder can inject before the artifact loads:

Config <meta> equivalent Purpose
window.__MCP_ENDPOINT <meta name="mcp-endpoint"> MCP Streamable-HTTP URL
window.__MCP_TOKEN <meta name="mcp-token"> Bearer token for that URL
window.__LOA_NEW_CHAT_URL — “launch a skill” URL base (default claude://cowork/new?q=)

Notes: