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 with any plan; 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: never request content involving 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 145 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 it in eroq
Build it on the API
An API key takes a minute. The same engines, the same prices, async jobs and webhooks.
40 free credits · no card · private mode on every account
