GitHub: https://github.com/laziobird/openclaw-rpa — source, README, install, sample scripts under rpa/.
openclaw-rpa is an LLM-based RPA Agent framework. You describe a task in plain language; the AI executes it step by step in a real browser, on your computer, or via API services — with screenshot proof at every step — then compiles everything into a standalone Playwright Python script. Replay runs that script directly — no model call, no token burn, no hallucination risk — faster and cheaper than having the AI click every time.
Why this matters
What you can automate (record once, replay many times — follow each site’s terms and local law):
CategoryExamplesBrowserLogin, navigate, click, fill forms, extract text, sort / filter tablesHTTP APIGET / POST any REST endpoint, save JSON, embed API keys directly in the script ( #rpa-api)Excel ( .xlsx)Create / update workbooks, multiple sheets, headers, freeze panes, dynamic rows from JSON or another fileWord ( .docx)Generate reports with paragraphs and tables — no Microsoft Office requiredAuto-loginSave cookies once with #rpa-login, auto-inject on every recording and replay — skip OTP / CAPTCHA / QR-code flowsMixed flowsAny combination above in a single recorded task (e.g. API + Excel + Word, or browser + login + extract)
These scripts are registered in
registry.json. Run any of them instantly — no re-recording, no tokens.text
#rpa-list ← see all registered tasks #rpa-run:amazonbestseller ← run one directly python3 rpa_manager.py run <name> ← or via CLI
#CaseWhat it doesRun name🛒**Amazon Best Sellers ScraperScrape top 40 products (title, price, rating, reviews, URL) → Word tableamazonbestseller🏨Airbnb Competitor Price TrackerOpen browser → vision recognition → extract prices & ratings → Word reportairbnb民宿比价分析v11🏦AP Reconciliation (EN)Mock GET open payables → Excel match → Word table reportreconciliationV2🔑Auto-login: Ctrip HotelSave cookies once → skip OTP forever → extract hotel info → Word doc携程酒店V3📈Yahoo Finance NewsSearch NVDA → News tab → save top 5 headlines to DesktopYahooNew🎬Douban MovieSearch a film → detail page → title, rating, synopsis → Desktop file获取豆瓣电影数据🌐Alpha Vantage API**TIME_SERIES_DAILY for NVDA → nvda_time_series_daily.json (no browser)apiV3🛍️Sauce Demo ShoppingSign in → sort by price → add two most expensive → log outonlineShoppingV1
📖 Full case gallery & videos → README.md
You want to…SendStart recording a new flow#automation robot, #RPA, #rpa, or mention Playwright automation****See saved tasks you can run#rpa-listRun a saved task (e.g. new chat)#rpa-run:{task name}Run in this chatrun:{task name} ( zh-CN: #run:{task-name})
text
#rpa-list
#rpa-run:your-task-name
Full protocol, state machine, two-line signup (task name + capability A–G/N), deps-check / deps-install, record-step JSON, progressive probing, and selector strength (composite CSS — container + tag / attributes / :has(); avoid bare h3) live in the locale file below.
Generated file is ordinary Python ( rpa/*.py) — runs standalone with python3, editable, no OpenClaw dependency at replay time.
macOS ( darwin), Linux, and Windows ( win32). The skill metadata lists all three for marketplaces (e.g. ClawHub). Stack: Python 3 + Playwright + httpx / openpyxl / python-docx — all support Windows. Details: README.md → Platforms (runtime).
Browser — goto, click, fill, select_option, scroll, wait, snapshot, extract_text, dom_inspect.
HTTP API — api_call (httpx GET/POST, key embedding, save_response_to); independent of the browser page.
Local files — merge_files (concatenate Desktop files); extract_text writes to disk; patch rpa/*.py for folder / file ops after recording.
Excel / Word — excel_write (openpyxl, multi-sheet, dynamic rows from JSON or another file); word_write (python-docx, paragraphs + tables); no Microsoft apps required.
Computed logic — python_snippet injects arbitrary Python into the generated script; executed and validated at record time.
Out of scope — large ETL, databases, heavy OS automation.
Good fits — predictable structure, works well out of the box:
CategoryExamplesFinance / dataYahoo Finance, investing.comE-commerceSauce Demo ( saucedemo.com), AliExpress, eBayNews / mediaBBC News, Reuters, Hacker News, Reddit listing pagesReferenceWikipedia, GitHub public repo / issues pages
Not recommended — likely to break or require manual intervention:
SituationWhyWorkaroundLogin-gated flows (password / SMS OTP / slider / QR code)Credentials and 2FA must be handled manuallyUse #rpa-login to log in once manually → cookies saved automatically → #rpa-autologin injects them on every future recording and replay, skipping the login flow entirely
Tip: on a new site, start with
goto+snapshotto confirm the page structure is readable before building a full flow.
Read config.json in this skill directory. If it does not exist, read config.example.json (same shape; default locale is en-US).
Read the "locale" field. Allowed values: zh-CN and en-US (repository default in config.example.json: en-US).
Immediately use the Read tool to load the full skill body:
zh-CN → SKILL.zh-CN.mden-US → SKILL.en-US.mdFollow only that file for state machine, triggers, record-step JSON, onboarding text, and user-facing replies.
Reply to the user in the active locale’s language:
zh-CN → Simplified Chinese for agent messages (user may still type English).en-US → English for agent messages (user may still type Chinese).config.example.json → config.json if needed ( python3 scripts/bootstrap_config.py), then edit "locale", orpython3 scripts/set_locale.py en-US / python3 scripts/set_locale.py zh-CN (creates config.json from the example when missing).After a locale change, the agent should re-read the matching SKILL.*.md in a new turn or session. See README.md in this directory for the full workflow.
When the loaded file references playwright-templates.md, synthesis-prompt.md, or rpa_manager.py, resolve paths relative to this skill directory (parent of SKILL.md).