№ 04 — docs
Engine v0.1
MoR · Polar
License · MIT

Operating manual.

WebLoom is a Python MCP server that drives any real Chrome instance via the Chrome DevTools Protocol. Below: how to install, how Threads work, and how to author your own.

01

Install

WebLoom ships as an MCP server. The fastest way to install: download webloom-install.md and drop it into your AI chat (Claude Code, Cursor, Continue, Cline). The assistant clones the engine, creates the folders, and wires the MCP config for you.

Or wire it manually with this config:

~/.mcp.json
{
  "mcpServers": {
    "webloom": {
      "type": "stdio",
      "command": "python",
      "args": ["path/to/webloom/server.py"],
      "env": {
        "ANTHROPIC_API_KEY": "<for vision layer 2.5>"
      }
    }
  }
}

On next message you should see 62 tools appear under the webloom namespace.

On first run WebLoom creates a folder at ~/.webloom/:

~/.webloom/
├── playbook.json          # live learning (auto-built)
├── threads/               # installed profile packs
│   ├── kdp.amazon.com.thread.json
│   ├── draft2digital.com.thread.json
│   └── …
├── sessions.json          # chrome session configs
└── startup-check.json

v0.3.9:WebLoom also works as a standalone CLI, no MCP client needed. Same engine, same Threads, same playbook. Useful for scripting, one-off ops, or plugging into agent frameworks that don't speak MCP yet:

terminal
# after the same install as above
python ~/.webloom/engine/server.py version
# → 0.3.9

python ~/.webloom/engine/server.py help
# → full command list

python ~/.webloom/engine/server.py navigate https://linkedin.com/feed
python ~/.webloom/engine/server.py scan --mode ax-min
python ~/.webloom/engine/server.py click "@e3"
python ~/.webloom/engine/server.py threads list
python ~/.webloom/engine/server.py docs scan_tab

# alias in your shell for daily use:
alias webloom="python ~/.webloom/engine/server.py"
webloom scan --mode ax-min --tab 0

MCP stdio mode still runs on python server.pywith no arguments (that's how MCP clients start it). Any argument switches to CLI mode.

02

Skills pack

Every Thread in the catalog is also published as an installable Agent Skill at github.com/webloomhq/skills. When you install the pack, your agent auto-discovers a skill for every site the WebLoom catalog covers, and activates it when the user mentions that site. The skill triggers the standard WebLoom install flow — trial, paywall, or Pro subscription — unchanged from what you get calling the tools directly.

Works with any agent that speaks the agentskills.io format: Claude Code, Claude Desktop, claude.ai, Cursor, Codex/ChatGPT, GitHub Copilot, VS Code, Gemini CLI, Amp, Goose, OpenCode, and 30+ others.

Claude Code
# Personal (all your projects)
git clone https://github.com/webloomhq/skills.git ~/.claude/skills/webloom

# Per-project
cd your-project
git clone https://github.com/webloomhq/skills.git .claude/skills/webloom

# Restart Claude Code — 116 site skills auto-discover.
# Say something like "post to LinkedIn" and the LinkedIn skill activates.

The skills bundle NO thread payload (no proven_actions, no selectors). They're triggers + workflow guides that instruct the agent to call install_thread(domain=...) which runs the normal WebLoom flow: trial for 3 days, $5 one-time, or included with WebLoom Pro.

03

Architecture

Two layers, top to bottom:

Threads
profile packs

JSON knowledge about ONE site. Selectors, endpoints, quirks, click + fill strategies, anti-bot pacing. Merged into the live playbook at runtime; user observations override Thread defaults.

WebLoom
engine

62 tools covering click ladder, 4 upload strategies, React/Redux/AUI/Backbone awareness, vision Layer 2.5, network capture, recipe record/replay. Stays lean — complexity migrates to Threads.

04

Thread schema

A Thread is a single JSON file with one required field — domain — and a fistful of optional fields the engine knows how to consume:

example.com.thread.json
{
  "domain": "kdp.amazon.com",
  "name": "KDP Auto-Publish Profile",
  "version": "1.0.0",
  "author": "username",
  "license": "proprietary | mit | cc-by | …",
  "framework": "amazon-aui",
  "default_strategy": "js",
  "notes": [
    "AjaxInput clears input.files after onchange — use xhr_upload",
    "Modal save needs A.declarative.fire('a:click', target)"
  ],
  "selectors": {
    "title_input": "#data-print-book-title",
    "categories_button": "#categories-modal-button"
  },
  "actions": {
    "submit_form": {
      "type": "aui_dispatch",
      "event": "a:click",
      "target": "#submit-button"
    }
  },
  "captured_endpoints": [
    { "type": "fetch", "url": "https://kdp.amazon.com/api/…" }
  ],
  "click_log": {
    "Choose categories": {
      "strategy": "cdp", "successes": 12, "failures": 1, "last_at": 1716000000
    }
  }
}
05

Author a thread

The fastest path is to let WebLoom build a starter for you:

from any session
> Use webloom to visit https://example.com
> seed_from_tab(session=..., capture_seconds=4, save=true)

→ Generated Thread draft for example.com → ~/.webloom/threads/example.com.thread.json
  framework: react-17+  ·  anti-bot: normal  ·  ax elements: 23  ·  endpoints captured: 11

Then refine: edit notes, add quirks, document upload endpoints and submit actions. Once the Thread covers your workflow, export it as a portable file:

from any session
> export_thread(
    domain="example.com",
    name="Example Pro Profile",
    version="1.0.0",
    author="@you",
    license="proprietary"
  )

→ Wrote ~/.webloom/threads/example.com.thread.json
  12 keys captured · ready to share, install on another machine, or sell.
06

Sell a thread

As an invited author, submit your .thread.json via webloom_publish_thread() or the website. Curator approves + sets pricing. Authors keep 90% of every sale; WebLoom keeps 10%.

Payments run through Polar (Merchant of Record). They handle global tax, chargebacks, refunds. You handle: nothing operational. Sites drift — buyers report it in one click, and the engine can self-repair a Thread in minutes. Your reputation and new sales stay intact.

Creator dashboard + Polar integration land in v0.2.

07

Engine tools

62 tools, grouped:

Interaction
  • click — actionability + CDP + JS dispatch + vision
  • fill — React-aware native setter
  • key_type — 3 modes (keystrokes, insertText, fast)
  • key_press — Enter, Tab, Esc, Arrows, ...
  • scroll_tab, screenshot, navigate
Upload
  • upload_file — Strategy A/B/C/D
  • xhr_upload — direct FormData to endpoint
  • replay_xhr — replay captured calls
Detection
  • scan_tab — full or ax-tree mode
  • scan_tab_diff — incremental
  • framework_detect — React/Redux/AUI/Backbone/Radix
  • detect_anti_bot — Cloudflare/DataDome/Akamai
  • detect_blocker — CAPTCHA/2FA prompts
State manipulation
  • react_force_change — fiber-walk onChange
  • react_inspect_store — 4-tier discovery
  • redux_dispatch — direct action dispatch
  • aui_dispatch — A.declarative.fire
  • backbone_inspect
Mobile / touch
  • touch_tap — CDP Input.dispatchTouchEvent
Recipes & Threads
  • start_recording / end_recording
  • replay_recipe
  • seed_from_tab — author thread from current tab
  • list_threads / install_thread / export_thread
  • save_playbook / get_playbook / note
Auth & session
  • auth_totp — pyotp
  • pause_for_human — clean handoff
  • export_profile / import_profile
Network & timing
  • capture_network_start / stop
  • get_captured_requests
  • wait_for / wait_for_idle