blog/developers·Sep 22, 2026·5 min·by the eroq team
The eroq plugin for Claude Code — remote server, sign-in and a skill that knows the prices
Install eroq in Claude Code from our own marketplace: the remote MCP server with OAuth sign-in plus a skill that teaches Claude Code the models, prices and async renders. How it differs from the one-line command and the CLI.
There are now three ways to give Claude Code the eroq tools, and they are not the same thing. The one-line claude mcp add gives it the tools. The plugin gives it the tools and a skill — a short document that tells Claude Code how eroq prices, which model to pick, and how to wait for a video without being told. The CLI gives it a local server that writes files. This guide is the plugin: install, what the skill says, and when to pick which.
Install
Claude Code plugins come from marketplaces, and eroq serves its own from eroq.ai — no git repository involved:
/plugin marketplace add https://eroq.ai/claude-code/marketplace.json
/plugin install eroq@eroq
Then /mcp, select eroq, choose Authenticate. eroq opens in the browser; sign in and click Allow. Claude Code gets its own key, « Claude Code (connected) », under Developers → API keys — revoke it there to disconnect.
The marketplace entry is an archive pinned by SHA-256, so what installs is exactly what we published. Without the plugin, the server alone is:
claude mcp add --transport http eroq https://eroq.ai/mcp
(add --scope user to have it in every project), followed by the same /mcp → Authenticate. Prefer a key in a header? --header "Authorization: Bearer eroq_sk_…" works too.
What the skill teaches
A skill is a markdown file Claude Code reads when the task matches its description. The eroq skill triggers when you ask for a picture, a clip, a voice line or visual assets for the project, and it says, in short:
- Do not guess prices. Call
list_modelsonce per session when the user has not named a model; it returns every model with its price and whether the plan unlocks it. Callget_accountfor the balance, and say so instead of rendering when a generation would clearly exceed it. - Enhance rough briefs.
enhance_promptis free; use it on a vague ask and show the user the prompt when it changes the intent. - Images:
generate_imagewaits and returns the picture plus a signed link valid thirty minutes;aspectfrom the five ratios at the same price; save into the project right away withcurl -L -o <path> "<url>"because the link expires. A job id on a slow start means pollget_image_status. - Video: asynchronous.
generate_videowaits up to about 45 seconds, then returns a job id; pollget_video_statusevery ten seconds or so; renders take one to five minutes. Name the engine withmodelwhen the look matters;secondsis capped by the plan and snapped to the engine's grid;reference_image_urlis the first frame on engines with image-to-video. - Speech:
generate_speechreturns MP3; pick a voice fromlist_voices, orchar:<id>fromlist_charactersto speak as one of the user's characters. - Prompts: one flowing paragraph — subject, action, setting, light, lens or camera move, mood; concrete nouns over adjectives; for video, describe the motion and the camera.
- Policy: adults only; never request minors or real people without consent; surface eroq's refusal messages as they come.
None of this is magic. It is the difference between an agent that renders a 20-second clip on the most expensive engine because you said « make a video », and one that asks which engine, quotes 45 credits for five seconds on the default, and polls until the file exists.
A session with the plugin
You: The onboarding screens need illustrations — one per step in
steps.ts, 4:3, flat pastel style, consistent.Claude Code reads
steps.ts(five steps), callslist_modelsandget_account(« 1,240 credits; five Krea 2 images are 50 »), runsenhance_prompton the style once and reuses the enhanced style line for each step, callsgenerate_imagefive times withaspect: "4:3", saves each topublic/onboarding/step-N.webpwithcurl, and updatessteps.tswith the paths. « Spent 50 credits, 1,190 remaining. »
Without the skill, the same ask usually gets five separate style guesses and no budget line.
Plugin, command or CLI
claude mcp add |
Plugin | CLI (eroq mcp) |
|
|---|---|---|---|
| Tools | Remote server | Remote server | Local server |
| Sign-in | OAuth via /mcp |
OAuth via /mcp |
Key in env |
| Skill | No | Yes | No |
| Output | Links + inline images | Links + inline images | Files at paths |
| Best for | Trying it | Daily use | Build steps, CI |
The plugin and the command are the same server; the plugin adds the skill and pins a version. The CLI is a different server, local, that writes files — combine it with the plugin if you want both the skill's judgement and file output, since the skill's advice applies to either.
Updating
The marketplace entry carries a version; /plugin update eroq@eroq when we publish a new one (the skill changes as models and prices do). Validate a local copy with claude plugin validate if you fork it.
FAQ
What does the plugin add over the one-line command?
The same server, plus a skill that teaches Claude Code how eroq prompts, prices and async video work — so it picks sensible models, quotes credits, and polls clips without being told.
Do I need an API key?
No — /mcp → Authenticate runs the browser sign-in. A key in a header still works for scripted setups.
Can it save renders into my repo?
The remote server answers with links and inline images; the skill tells Claude Code to curl them into the project. For direct file output, use the CLI's local server: npx -y @eroq/cli mcp.
Is the marketplace safe to add?
It is served from eroq.ai over HTTPS and the plugin archive is pinned by SHA-256 in the marketplace file, so Claude Code verifies what it installs.
The Claude Code page has both commands to copy.
Make this with the models behind the post — start with 50 free credits , or browse every engine and its price .