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

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.

03

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

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

Sell a thread

Upload your .thread.json to the Atelier. Set a price, choose a license. WebLoom holds 25% as a marketplace fee; 75% lands in your payout account.

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.

06

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