# Setup (/skills/setup)



The RiffAds plugin gives Claude Code the RiffAds tools plus seven skills that price a job before they spend. Using another client? Go to [MCP setup](/mcp/setup).

You need Claude Code and a RiffAds workspace on a paid plan or an active trial.

## Install [#install]

### Add the marketplace and install [#add-the-marketplace-and-install]

Type these two lines in Claude Code:

```bash title="Claude Code"
/plugin marketplace add riffads-ai/skills
/plugin install riffads@riffads
```

`riffads@riffads` means the plugin `riffads` from the marketplace `riffads`. The public repo is its own marketplace:

<https://github.com/riffads-ai/skills>

### Sign in [#sign-in]

The plugin adds the RiffAds MCP server for you. There is no API key: you sign in with your RiffAds account.

* Not asked to sign in? Run `/mcp`, pick the RiffAds server (`plugin:riffads:riffads`) and sign in when the browser opens.
* If a RiffAds approve screen opens, keep **Generate and spend credits**. **Read only** can browse and price, but never make anything.

No RiffAds server in `/mcp` at all? Add it by hand in a terminal:

```bash title="Terminal"
claude mcp add --transport http riffads https://mcp.riffads.com
```

### Pick a workspace (only if you have several) [#pick-a-workspace-only-if-you-have-several]

* One workspace: the connection uses it. Nothing to do.
* The approve screen opened: you already picked it under **Which workspace pays**. Nothing to do.
* Several workspaces and no approve screen: every ask is refused until you pick one. Open your connections page, switch to the workspace that pays, and press &#x2A;*Use (workspace name)** next to the waiting agent.

<https://app.riffads.com/connections>

## Check it [#check-it]

Ask Claude:

**Try asking:**

> What are you connected to?

Claude calls `riffads_ping`, which is free. The answer names the workspace, its plan, and whether this connection may spend.

## First video [#first-video]

There is no command to type. Ask in plain words:

**Try asking:**

> Make a 5 second vertical video of a matte black water bottle on a gym bench, morning light, with sound. Use Kling 3 Pro.

The `cost-aware-generation` skill loads and:

1. Checks which workspace pays and how many credits you have.
2. Reads what the model accepts, so the job is set up right.
3. Prices the exact job for free and tells you the price.
4. Waits for your yes, then starts the job.
5. Follows the job by itself and hands you the link when it is ready.

The calls, in order: `riffads_ping` and `get_credit_balance`, `get_capability_schema` for `kling_3_pro`, `estimate_generation`, then `submit_generation` with the estimate's `max_credits_needed` as `max_credits`, then `wait_for_generation`.

The same flow runs on every surface: [How it works](/how-it-works#the-flow). Links expire, so say "send it again" for a fresh one ([Download links](/how-it-works#download-links)).

More asks to try: [Prompting guide](/prompting). What each skill does: [All skills](/skills/list).

## Update the plugin [#update-the-plugin]

Version 0.2.0 has all seven skills. An early install (0.1.0) has only three. Check yours in a terminal with `claude plugin list`.

To update, run these in a terminal, then restart Claude Code:

```bash title="Terminal"
claude plugin marketplace update riffads
claude plugin update riffads@riffads
```

Still on the old version? Uninstall the plugin and install it again with the two lines in [Install](#install).

## Troubleshooting [#troubleshooting]

**Plugin installed, but nothing happens**

The RiffAds tools are missing, so the skill says RiffAds is not connected. Run `/mcp`, sign in to the RiffAds server, then ask again.

**Every ask says it does not know which workspace to spend from**

You have several workspaces and none is picked for this connection (`connection_not_configured`). Pick one as shown in [Install](#install). Asking again before you pick changes nothing.

**Claude can browse and price, but not make anything**

This connection is read only (`read_only_connection`). An owner or admin allows spending on the [connections page](https://app.riffads.com/connections), then you reconnect in `/mcp`.

**A job is refused over a spending limit or not enough credits**

A spending limit (`spend_limit_exceeded`): a workspace limit stopped the job, and the refusal names which one ([Spend limits](/how-it-works#spend-limits)). Not enough credits (`insufficient_credits`): top up on the [billing page](https://app.riffads.com/settings/billing).

Every refusal code: [Errors](/reference/errors).
