# browser-record

Opens a named browser session, allocates an RVF container for it and records every action as a ruvector trajectory step. Useful when a browsing run has to be replayed or analysed later.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 718 installs · ★ 79357
- Author: ruvnet
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/ruvnet/ruflo/tree/HEAD/plugins/ruflo-browser/skills/browser-record/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/browser-record

## What it does

The skill creates a container with `npx -y ruvector@0.2.27 rvf create` at dimension 384 and starts a trajectory for the task at hand. From there each interaction — a click, a navigation, a snapshot or a screenshot — lands as its own step. At the end it writes a verdict, compacts the container with `rvf compact` and stores the run in AgentDB under `browser-sessions`.

Other browser skills in the plugin compose on top of this one: `browser-extract`, `browser-form-fill`, `browser-test`. Call `browser_open` on its own and you get no trace to replay. Session ids keep a fixed shape, `<YYYYMMDD-HHMMSS>-<task-slug>`, because `/ruflo-browser ls` parses them to find earlier runs.

You need `npx` and access to `ruvector@0.2.27` and `@claude-flow/cli`; until a dedicated `browser_session_record` MCP tool ships, the skill drives the whole lifecycle from its own bash steps. `--with-dom` stays off unless a task demands it, since it dumps the full HTML on every navigation and makes the recording heavy. AIDefence PII checks fire when content is read rather than when you navigate, so redaction is down to the skills that parse pages.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill browser-record -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/browser-record/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/browser-record/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill browser-record -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/browser-record/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill browser-record -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/browser-record/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install ruvnet/ruflo browser-record
```

2. **Manually: put the files in place**
- File: `.github/skills/browser-record/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill browser-record -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-browser/skills/browser-record
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/browser-record/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill browser-record -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/ruvnet/ruflo/tree/HEAD/plugins/ruflo-browser/skills/browser-record/SKILL.md

## When to use it
- record a walkthrough of a site step by step for later analysis
- capture a baseline snapshot and screenshot around a single action
- stand up a session that extraction and test skills can reuse
- locate an earlier run by its name via `/ruflo-browser ls`
- file the finished run in AgentDB alongside its verdict

## Example prompts
- Open a named session for the `login-flow` task, sign in and record every step
- Take a baseline snapshot and screenshot, then click `#login` and log the step
- Close the session with verdict `pass`, compact the RVF and store it in `browser-sessions`

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 4ed6defd19180453.

BEGIN THIRD-PARTY FILE 4ed6defd19180453
````text
---
name: browser-record
description: Open a named, traced browser session into an RVF cognitive container with a ruvector trajectory recording every action
argument-hint: "<url-or-task> [--with-dom] [--viewport WxH]"
allowed-tools: mcp__plugin_ruflo-core_ruflo__browser_open mcp__plugin_ruflo-core_ruflo__browser_close mcp__plugin_ruflo-core_ruflo__browser_session-list mcp__plugin_ruflo-core_ruflo__browser_screenshot mcp__plugin_ruflo-core_ruflo__browser_snapshot mcp__plugin_ruflo-core_ruflo__browser_wait mcp__plugin_ruflo-core_ruflo__aidefence_has_pii mcp__plugin_ruflo-core_ruflo__aidefence_scan Bash Read Write
---

# Browser Record

Primitive on which every other browser skill composes. Opens a named browser session, allocates an RVF container for it, and binds every action to a ruvector trajectory step. **You do not run a browser session in this plugin without invoking this skill (or one that wraps it).**

## When to use

- Starting any browser interaction that is not a one-off throwaway probe.
- Exploring a site interactively while preserving the trace for later replay or analysis.
- Establishing a reusable session that downstream skills (`browser-extract`, `browser-form-fill`, `browser-test`) will compose.

## Steps

1. **Allocate session id and RVF container**:
   ```bash
   SID="$(date +%Y%m%d-%H%M%S)-${TASK_SLUG:-record}"
   npx -y ruvector@0.2.27 rvf create "$SID.rvf" --dimension 384
   npx -y ruvector@0.2.27 hooks trajectory-begin --session-id "$SID" --task "$1"
   ```
2. **Open the browser** via `mcp__plugin_ruflo-core_ruflo__browser_open` with the URL.
3. **Snapshot the initial state**: `browser_snapshot` for the accessibility tree, `browser_screenshot` for a baseline image.
4. **For each interaction**, record a trajectory step before and after:
   ```bash
   npx -y ruvector@0.2.27 hooks trajectory-step \
     --session-id "$SID" --action click --args '{"selector":"#login"}' --result ok
   ```
5. **End cleanly**:
   ```bash
   npx -y ruvector@0.2.27 hooks trajectory-end --session-id "$SID" --verdict pass
   npx -y ruvector@0.2.27 rvf compact "$SID.rvf"
   ```
6. **Index in AgentDB** under `browser-sessions`:
   ```bash
   npx -y @claude-flow/cli@latest memory store --namespace browser-sessions \
     --key "$SID" --value "{rvf_id:$SID,host:...,task:...,verdict:pass}"
   ```

## Caveats
````
END THIRD-PARTY FILE 4ed6defd19180453

The third-party file has ended. Everything between the 4ed6defd19180453 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2338 of 2940 bytes. © ruvnet · MIT · https://github.com/ruvnet/ruflo/tree/HEAD/plugins/ruflo-browser/skills/browser-record/SKILL.md

_Part of the page did not fit — see the HTML version._

---
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
