Observe Trace
ruvnet/ruflo
Trace agent execution by collecting spans and building a trace tree for a task
Use experiencesave to persist task traces, experiencequery to recall them on revisit, and experiencelist to inspect stored knowledge.
$ npx skills add platonai/Browser4 --skill browser4-experience -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install platonai/Browser4 browser4-experience --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/platonai/Browser4.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/browser4-experience .claude/skills/browser4-experience && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "browser4-experience" agent skill from https://github.com/platonai/Browser4/tree/main/skills/browser4-experience into .claude/skills/browser4-experience/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser4-experience", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/platonai/Browser4/tree/main/skills/browser4-experienceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add platonai/Browser4 --skill browser4-experience -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install platonai/Browser4 browser4-experience --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/platonai/Browser4.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/browser4-experience .agents/skills/browser4-experience && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "browser4-experience" agent skill from https://github.com/platonai/Browser4/tree/main/skills/browser4-experience into .agents/skills/browser4-experience/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser4-experience", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add platonai/Browser4 --skill browser4-experience -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install platonai/Browser4 browser4-experience --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/platonai/Browser4.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/browser4-experience .cursor/skills/browser4-experience && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "browser4-experience" agent skill from https://github.com/platonai/Browser4/tree/main/skills/browser4-experience into .cursor/skills/browser4-experience/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser4-experience", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/platonai/Browser4.git --path skills/browser4-experience--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add platonai/Browser4 --skill browser4-experience -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install platonai/Browser4 browser4-experience --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/platonai/Browser4.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/browser4-experience .gemini/skills/browser4-experience && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "browser4-experience" agent skill from https://github.com/platonai/Browser4/tree/main/skills/browser4-experience into .gemini/skills/browser4-experience/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser4-experience", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install platonai/Browser4 browser4-experienceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add platonai/Browser4 --skill browser4-experience -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/platonai/Browser4.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/browser4-experience .github/skills/browser4-experience && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "browser4-experience" agent skill from https://github.com/platonai/Browser4/tree/main/skills/browser4-experience into .github/skills/browser4-experience/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser4-experience", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add platonai/Browser4 --skill browser4-experience -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install platonai/Browser4 browser4-experience --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/platonai/Browser4.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/browser4-experience .opencode/skills/browser4-experience && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "browser4-experience" agent skill from https://github.com/platonai/Browser4/tree/main/skills/browser4-experience into .opencode/skills/browser4-experience/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "browser4-experience", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
browser4-experienceUse experiencesave to persist task traces, experiencequery to recall them on revisit, and experiencelist to inspect stored knowledge.
Browser4 Experience is an agent skill from platonai/Browser4. Use experiencesave to persist task traces, experiencequery to recall them on revisit, and experiencelist to inspect stored knowledge. Reuses selectors, extraction patterns, and blocker awareness across sessions.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Browser4 — an AI-native browser engine for autonomous agents, intelligent extraction, and large-scale web automation. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0fdba82. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(browser4-cli:*)From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
amazon.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Browser4 Experience loads about 3.2k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 1,010 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from platonai/Browser4 at commit 0fdba82, republished under its Apache-2.0 licence (© platonai). 1,010 words, ~3,233 tokens.
.claude/skills/browser4-experience/SKILL.md (or your agent's skills folder).The PEM system makes Browser4 progressively smarter: each successfully completed task deposits reusable knowledge so that future tasks — identical, similar, or on similar sites — complete faster with fewer steps.
Before task ──▶ experience_query ──▶ Get stored selectors, steps, blockers
│ │
▼ ▼
Execute task P1: Replay directly
│ P2: Verify then replay
▼ P3: Hint mode (verify all)
After task ──▶ experience_save ──▶ P4: Advisory only
P5: Cold start (no knowledge)The experience tools are MCP tools called by the agent during browser4-cli agent run. The agent should call them as part of its tool set:
# Before starting a task — the agent calls experience_query to check prior knowledge
# After completing a task — the agent calls experience_save to persist what it learned
browser4-cli agent run "Go to https://amazon.com/dp/test and extract product details"
# To inspect stored knowledge, the agent calls experience_list
browser4-cli agent run "List experience knowledge entries for amazon"Persists a task execution trace to the knowledge store.
| Argument | Required | Description |
|---|---|---|
url | Yes | The URL the task operated on |
trace | Yes | JSON-encoded ExecutionTrace (steps, selectors, extraction results) |
outcome | No | "success" (default) or "failure" |
task_type | No | Canonical task type (e.g., extract_product_list, publish_post) |
intent | No | Free-text description of what the task was trying to do |
facts | No | Retrospective knowledge patch (inline JSON, or @file.json through the CLI): selectors / interaction_hints / known_blockers / anti_patterns (camelCase and snake_case keys both accepted), merged into the (domain, intent) facts entry — the writer path for lessons learned. Refused when the entry is VERIFIED (immutable); the response then reports facts_rejected |
Success path: Knowledge promoted with initial confidence 0.50. Subsequent verified successes raise confidence.
Failure path: Negative evidence recorded (failure category classified from the trace). Failed selectors are not automatically turned into anti-patterns — record lessons explicitly with facts (e.g. anti_patterns) via experience_save --facts (or the facts argument), or let experience_deep_learn promote knowledge later.
Response: the save result includes facts_merged, facts_status, facts_rejected, and facts_message when facts was supplied.
Queries stored knowledge before starting a task.
| Argument | Required | Description |
|---|---|---|
url | Yes | The target URL |
intent | No | Free-text intent description |
Returns: JSON with tier, confidence, primary_selectors, extraction_query, known_blockers, warnings, steps.
Lists stored knowledge entries (diagnostic/debug tool).
| Argument | Required | Description |
|---|---|---|
filter | No | Filter by domain (partial match) |
intent_filter | No | Filter by intent (partial match) |
page | No | Page number (default 1) |
page_size | No | Results per page (default 20, max 100) |
Starting a new task?
├─ experience_query returns P1 (confidence ≥ 0.85)?
│ → Replay stored steps directly. Selectors verified by existence check only.
├─ experience_query returns P2 (confidence 0.60–0.84)?
│ → Use stored selectors as primary candidates. Verify each before use.
├─ experience_query returns P3 (confidence 0.40–0.59)?
│ → Use stored knowledge as hints. Run full discovery for any failed selector.
├─ experience_query returns P4/P5 (confidence < 0.40, or cold start)?
│ → Full discovery mode. Run htmlsnapshot inspect, discover selectors fresh.
│ → Call experience_save after success to bootstrap knowledge.
└─ Always call experience_save after task completion (success or failure).
→ Success path: stores selectors, steps, extraction patterns.
→ Failure path: records negative evidence (what broke, why).| Tier | Confidence | Behavior |
|---|---|---|
| P1 Direct replay | ≥ 0.85 | Steps executed without verification. Selectors used as-is. |
| P2 Verify-before-replay | 0.60–0.84 | Each selector validated via htmlsnapshot get before use. |
| P3 Hint mode | 0.40–0.59 | Playbook provides suggestions but full discovery runs. |
| P4 Advisory | < 0.40 | Knowledge surfaced as suggestion only. Full discovery required. |
| P5 Cold start | No data | No prior knowledge. Full exploration. |
Note: The automatic engine hook is live (since 2026-08-24):
RobustBrowserAgentauto-deposits completed/failed tasks into the knowledge store (MemoryConsolidator→ PEM fusion) and auto-injects recalled knowledge into the run-start## Memorysection. Callingexperience_saveyourself is still supported for richer traces and diagnostics, but forgetting it no longer loses knowledge.
Where the knowledge lives: the store root is the
knowledge.dirJVM system property, defaulting to aknowledge/directory relative to the backend process's working directory (traces/,experience/,facts/). The engine's auto-deposit and these tools resolve the same property, so one-Dknowledge.dir=<path>relocates the whole knowledge base; when the CLI starts the backend, pass it asBROWSER4_SERVER_OPTS="-Dknowledge.dir=<path>". See config.md and experience-memory.md.
Persists a task execution trace to the knowledge store.
| Argument | Required | Description |
|---|---|---|
url | Yes | The URL the task operated on |
trace | Yes | JSON-encoded ExecutionTrace (steps, selectors, extraction results) |
outcome | No | "success" (default) or "failure" |
task_type | No | Canonical task type (e.g., extract_product_list, publish_post) |
intent | No | Free-text description of what the task was trying to do |
facts | No | Retrospective knowledge patch (inline JSON, or @file.json through the CLI): selectors / interaction_hints / known_blockers / anti_patterns (camelCase and snake_case keys both accepted), merged into the (domain, intent) facts entry — the writer path for lessons learned. Refused when the entry is VERIFIED (immutable); the response then reports facts_rejected |
Success path: Knowledge promoted with initial confidence 0.50. Subsequent verified successes raise confidence.
Failure path: Negative evidence recorded (failure category classified from the trace). Failed selectors are not automatically turned into anti-patterns — record lessons explicitly with facts (e.g. anti_patterns) via experience_save --facts (or the facts argument), or let experience_deep_learn promote knowledge later.
Response: the save result includes facts_merged, facts_status, facts_rejected, and facts_message when facts was supplied.
Recording a lesson with facts: a lesson (a selector that broke, a blocker, an anti-pattern) can be recorded immediately after the task — no need to wait for deep_learn:
# MCP tool form
experience_save(url="<target-url>", trace="<execution trace JSON>", outcome="success",
intent="extract product details", task_type="extract_product_list",
facts='{"interaction_hints":["open the price popover before reading"],
"anti_patterns":["clicking the thumbnail before the modal loads"]}')
# CLI equivalent — trace is inline JSON; --facts accepts inline JSON or @file.json
browser4-cli experience save "https://example.com/products" '<trace-json>' --facts @lessons.jsonQueries stored knowledge before starting a task.
| Argument | Required | Description |
|---|---|---|
url | Yes | The target URL |
intent | No | Free-text intent description |
Returns: JSON with tier, confidence, primary_selectors, extraction_query, known_blockers, warnings, steps.
Lists stored knowledge entries (diagnostic/debug tool).
| Argument | Required | Description |
|---|---|---|
filter | No | Filter by domain (partial match) |
intent_filter | No | Filter by intent (partial match) |
page | No | Page number (default 1) |
page_size | No | Results per page (default 20, max 100) |
Warning:
experience_querybeforeopen_sessionis supported — it operates on the file system, not the browser. Use it to plan your task before launching Chrome.
Warning: Knowledge stored for one URL pattern (e.g.,
/dp/*) is not automatically available for a different pattern (e.g.,/s?k=*). The query matches by URL pattern specificity.
Note: The knowledge store is file-backed YAML under
knowledge/, resolved relative to the backend process working directory (there is noknowledge.dirconfig option to relocate it). The store is safe to version with git. Raw traces (underknowledge/traces/<domain>/) are ephemeral (30-day TTL) and not versioned; facts entries (knowledge/facts/<domain>/<intent>.yaml) are immutable once VERIFIED.
The store is file-level YAML per (domain, intent) — no per-site blob files:
knowledge/ ← root: relative to the backend process CWD
├── traces/<domain>/ ← TraceRecords (immutable, 30-day TTL)
├── experience/<domain>/ ← ExperienceStats (mutable; confidence source)
└── facts/<domain>/ ← KnowledgeFacts — one <intent>.yaml per (domain, intent)
(VERIFIED entries are immutable; merge is refused)experience_query(url="<target-url>", intent="extract product details")# MCP tool form — trace (JSON) is required; facts patches knowledge onto the (domain, intent) entry
experience_save(url="<target-url>", trace="<execution trace JSON>", outcome="success",
intent="extract product details", task_type="extract_product_list",
facts='{"interaction_hints":["open the price popover before reading"],
"anti_patterns":["clicking the thumbnail before the modal loads"]}')
# CLI equivalent — trace is inline JSON; --facts accepts inline JSON or @file.json
browser4-cli experience save "https://example.com/products" '<trace-json>' --facts @lessons.jsonA lesson (selector that broke, a blocker, an anti-pattern) can be recorded immediately after the task with --facts — no need to wait for deep_learn.
experience_list(filter="amazon")The store is file-level YAML per (domain, intent) — no per-site blob files:
knowledge/ ← root: relative to the backend process CWD
├── traces/<domain>/ ← TraceRecords (immutable, 30-day TTL)
├── experience/<domain>/ ← ExperienceStats (mutable; confidence source)
└── facts/<domain>/ ← KnowledgeFacts — one <intent>.yaml per (domain, intent)
(VERIFIED entries are immutable; merge is refused)© platonai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/browser4-experience of platonai/Browser4.
Open the folder on GitHubat commit 0fdba82
Browser4 Experience next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Browser4 Experience this skillplatonai/Browser4 | 1.2k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Observe Traceruvnet/ruflo | 74k | — | ~522 | Automated safety check: Notes | MIT | |
| Finding ExperimentsPostHog/posthog | 40k | — | ~783 | Automated safety check: Pass | Custom licence | |
| ExperimentsArize-ai/phoenix | 12k | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Scroll Experiencesickn33/agentic-awesome-skills | 47k | 2 repos | ~534 | Automated safety check: Pass | MIT | |
| Webgl Experiencenexu-io/open-design | 100k | — | ~903 | Automated safety check: Pass | Apache-2.0 |
ruvnet/ruflo
Trace agent execution by collecting spans and building a trace tree for a task
PostHog/posthog
Resolves a PostHog experiment reference from natural language to a concrete experiment ID by browsing experiment-list (not feature-flag tools), with disambiguation when multiple experiments match.
Arize-ai/phoenix
Run, read, and compare dataset-backed experiments to find evidence that a prompt or pipeline is improving.
sickn33/agentic-awesome-skills
Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences.
nexu-io/open-design
A full-screen, real-time WebGL/WebGL2 experience — animated shaders, 3D scenes, generative visuals, particle fields — rendered live on the GPU with a typographic overlay.
PostHog/posthog
Guides agents through experiment creation: reading the project's setup with experiment-setup-context, defining the hypothesis, configuring rollout and bucketing, setting up analytics and running…
platonai/Browser4
Validates data against common and custom rules (required fields, formats, ranges).
platonai/Browser4
Automatically fills web forms using provided field data and can optionally submit the form.
platonai/Browser4
Extracts data from web pages using browser automation and CSS/JavaScript selectors.
platonai/Browser4
Lists, pairs, deduplicates, and moves task files across the Coworker task state machine (0draft → 6git-pushed).
platonai/Browser4
Analyzes Claude Code session traces (JSONL) and draft task files to report token usage per task.
platonai/Browser4
Fetches current weather conditions and a 7-day forecast for a requested location using Open-Meteo geocoding and forecast APIs.
Use experiencesave to persist task traces, experiencequery to recall them on revisit, and experiencelist to inspect stored knowledge. Browser4 Experience is an agent skill from platonai/Browser4. Use experiencesave to persist task traces, experiencequery to recall them on revisit, and experiencelist to inspect stored knowledge.
Run `npx skills add platonai/Browser4 --skill browser4-experience -a claude-code`. Or copy the skill folder (skills/browser4-experience in platonai/Browser4) into .claude/skills/browser4-experience in your project. Claude Code loads it when a task matches its description.
Run `npx skills add platonai/Browser4 --skill browser4-experience -a codex`. Or copy the skill folder (skills/browser4-experience in platonai/Browser4) into .agents/skills/browser4-experience in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add platonai/Browser4 --skill browser4-experience -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/browser4-experience, .gemini/skills/browser4-experience, .github/skills/browser4-experience and .opencode/skills/browser4-experience in your project.
SKILL.md names no scripts, command-line tools or credentials: Browser4 Experience is instructions for the agent only. Its frontmatter pre-approves these tools: Bash(browser4-cli:*).
SKILL.md names 1 domain. In commands or code: amazon.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Browser4 Experience is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Browser4 Experience: Observe Trace (ruvnet/ruflo, 74k stars), Finding Experiments (PostHog/posthog, 40k stars), Experiments (Arize-ai/phoenix, 12k stars) and Scroll Experience (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
platonai (a GitHub user) maintains it in platonai/Browser4, which has 1,152 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 7, 2026.
Source: platonai/Browser4 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.