# Riffle

Gives your agent text-based browser control without screenshots or HTML markup. Runs multi-step actions in one turn and reports only interface diffs.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 3
- Author: noetive
- License: ISC · policy=link-only · description only; the file stays with the author
- Source: https://github.com/noetive/riffle
- Updated: 2026-10-19
- HTML: https://affpapa.org/en/nevibecode/mcp/riffle

## What it does

Riffle operates an automated Chrome instance with full JavaScript execution, transforming the live page structure into plain text statements. The model reads states like disabled inputs, covered buttons, and strikethrough prices directly from attribute tags, bypassing raw DOM trees or pixel recognition.

Interaction happens through two primary tools: `browser_run` executes chained steps like clicks or typing in a single round-trip, while `browser_view` inspects current content. Instead of retransmitting identical trees, updates deliver text diffs to preserve prompt budgets during prolonged workflows.

The host machine requires a local Chrome or Chromium installation; `riffle doctor` verifies this dependency. The background manager caps concurrent instances at four browsers and automatically drops sessions idling past 15 minutes.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add riffle -- npx -y @noetive/riffle
```

### Codex

**Platform CLI**
```bash
codex mcp add riffle -- npx -y @noetive/riffle
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "riffle": {
            "command": "npx",
            "args": [
                "-y",
                "@noetive/riffle"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "riffle": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@noetive/riffle"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add riffle npx -y @noetive/riffle
```

## When to use it
- interact with web interfaces without generating screenshots or calculating click coordinates
- execute complete multi-step sign-in routines in a single model turn
- reduce token consumption by streaming page changes instead of full snapshots
- detect overlapping dialogs before dispatching clicks to covered buttons

## Example prompts
- Dismiss the cookie banner and press the checkout button on the current page.
- Fill in the login credentials, submit the form, and confirm that the account dashboard loaded.
- Inspect the interactive elements on this page using browser_view with an 800 token budget.

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89899
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119231
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32260
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23283
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13181
- [apify-mcp-server](https://affpapa.org/en/nevibecode/mcp/apify-mcp-server.md) — MCP server · ★ 13345

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
