yumweb
/install yumweb
yumweb — logged-in browser bridge for AI agents
Platform: Windows / macOS / Linux, with any Chromium-based browser (Microsoft Edge preferred; Chrome / Chromium also auto-detected). Python: 64-bit only — Playwright's
greenletdependency has no 32-bit Windows wheel.
A dedicated Chromium-based browser instance with Chrome DevTools Protocol (CDP)
enabled, running on port 9333 with its own user-data directory — separate
from your everyday browser by default. Cookies persist across runs, so you log
in once (e.g. to x.com, Gmail, Outlook, Amazon, LinkedIn, Facebook,
Instagram, or WeChat Web) and stay logged in for later agent sessions.
When multiple tabs are open, yumweb persists the last explicitly activated tab
(tab-switch, tab-new, goto, x-read, etc.) so follow-up commands like
read, click, and type target the intended page more reliably.
This skill exposes a single Python script (scripts/yumweb.py, Playwright
backend) that any AI agent (OpenClaw, Copilot CLI, Claude Code, Hermes, etc.)
can shell out to in order to: open URLs, read page contents as text or
markdown, click & type, take screenshots, run JavaScript, and operate inside
real logged-in websites.
Why this skill exists
Most browser tools focus on controlling a browser.
yumweb focuses on preserving a persistent, logged-in browser world that an agent can come back to later.
That makes it useful for personal-assistant style tasks like:
- checking X / LinkedIn / Facebook feeds
- reading Gmail / Outlook inboxes
- opening Amazon product pages or carts
- revisiting WeChat Web / other already-authenticated sites
Why a separate browser?
- No collision with whatever browser instance your day-to-day work uses.
- Persistent profile in
./profile/next to this skill — log in once, keep cookies across runs (treat that directory like credentials; the bundled.gitignoreexcludes it from git). - Headed by default so you can see what's happening and log in manually.
- One-shot CLI — every command attaches, does its job, exits.
- Multi-agent / cross-browser — works well with OpenClaw, Copilot CLI, Claude Code, Hermes, and Chromium-based browsers like Edge and Chrome.
Setup
See README.md for full installation. Quick version:
python -m pip install playwright html2text requests
python scripts\yumweb.py start
# Manually log in to x.com (or any site you want cached cookies for).
start is idempotent — running it again is a no-op if Edge is already up.
Commands
| Command | Description |
|---|---|
start |
Launch Edge with --remote-debugging-port=9333 + dedicated profile. Detached. |
stop |
Kill the Edge instance (only the one on port 9333) |
status |
Show whether Edge is up, current URL, list of tabs |
goto \x3Curl> |
Navigate active tab to URL (waits for load) |
read [--mode text|md|html] [--selector CSS] [--max N] |
Get page text/markdown/HTML. Default: text, body, max 8000 chars |
fetch \x3Curl> |
Shortcut: goto \x3Curl> && read --mode md |
click \x3Cselector> |
Click first element matching CSS |
type \x3Cselector> \x3Ctext> [--enter] |
Focus selector, type text (optionally press Enter) |
screenshot \x3Cpath> |
Save PNG screenshot of viewport |
eval \x3Cjs> |
Run JS in active tab, print JSON result |
tabs |
List all open tabs (idx, title, url) |
tab-new \x3Curl> |
Open new tab |
tab-switch \x3Cidx> |
Switch active tab |
tab-close \x3Cidx> |
Close tab |
x-read [--user \x3Chandle>] [--n 20] |
Read tweets from home timeline or user profile |
x-post \x3Ctext> |
Post a new tweet (requires prior login) |
All commands print to stdout. Errors go to stderr with non-zero exit.
Examples
:: Quick read of any URL (markdown form, good for LLMs)
python scripts\yumweb.py fetch https://example.com
:: Read your home timeline
python scripts\yumweb.py x-read --n 10
:: Read someone's tweets
python scripts\yumweb.py x-read --user satyanadella --n 5
:: Post a tweet
python scripts\yumweb.py x-post "Hello from CLI"
:: Click a button by CSS
python scripts\yumweb.py click "button[data-testid='login']"
:: Search box: type and press enter
python scripts\yumweb.py type "input[name=q]" "GB200 firmware" --enter
How AI tools should use this skill
When the user asks to "check what's on X about XYZ", "go look at this URL", "post a tweet about Y", or anything web-browsing related:
- Run
./scripts/run.sh status(orpython scripts\yumweb.py statuson Windows) —startif not running. - Use
fetch \x3Curl>for quick reads (LLM-friendly markdown output). - Use
x-read/x-postfor X. - Use
tab-switch \x3Cidx>beforeread/click/typewhen multiple tabs are open. - Use
evalfor anything custom (return must be JSON-serializable). - Output is plain text, ready to summarize back to the user.
Files
scripts/yumweb.py— main script (Playwright backend)scripts/config.json— port, profile dir, edge.exe path (paths blank → auto-resolve next to this skill)profile/— Edge user-data dir (created on firststart, gitignored)logs/yumweb.log— stderr from launched Edge (gitignored)logs/active_tab.json— last active tab metadata used to make follow-up commands target the intended page
Dependencies
- 64-bit Python 3.10+
playwright(>= 1.40) — attaches to existing browser via CDP; no bundled browser neededpsutil(>= 5.9) — cross-platform process management forstoprequestshtml2text(auto-installed on firstread --mode mdif missing)
Security notes
- Cookies live in
profile/— treat that directory like a credential. The bundled.gitignoreexcludes it. Don't commit it. evalruns arbitrary JS — only invoke with trusted strings.- Default port 9333 is localhost-only. Do not expose externally.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install yumweb - After installation, invoke the skill by name or use
/yumweb - Provide required inputs per the skill's parameter spec and get structured output
What is yumweb?
Use an already-logged-in Edge/Chrome/Chromium browser as the agent's hands. A persistent logged-in browser bridge for OpenClaw, Copilot CLI, Claude Code, Her... It is an AI Agent Skill for Claude Code / OpenClaw, with 36 downloads so far.
How do I install yumweb?
Run "/install yumweb" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is yumweb free?
Yes, yumweb is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does yumweb support?
yumweb is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created yumweb?
It is built and maintained by TommyYanPS (@yumyumtum); the current version is v0.1.0.