[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FNEARAW87RPEPH0QD0BPDY":3,"skill-same:01M6FNEARAW87RPEPH0QD0BPDY":68},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":22,"linkOnly":23,"markdownContent":24,"markdownBody":25,"frontMatter":26,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":6,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":33,"install":34,"resources":47},"01M6FNEARAW87RPEPH0QD0BPDY","browser-use-local",null,"kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffengjiajie\u002Fbrowser-use-local\u002FSKILL.md",[],[17,18,19,20,21],"browser","browser use","use","local","browser use local","2026-11-10 10:12:30",false,"---\nname: browser-use-local\ndescription: Use when you need browser automation via the browser-use CLI or Python code in this OpenClaw container\u002Fhost: open pages, click\u002Ftype, take screenshots, extract HTML\u002Flinks, or run an Agent with an OpenAI-compatible LLM (e.g. Moonshot\u002FKimi) using a custom base_url. Also use for debugging browser-use sessions (state empty, page readiness timeouts), and for extracting login QR codes from demo\u002Flogin pages via screenshots or HTML data:image.\n---\n\n# browser-use (local) playbook\n\n## Default constraints in this environment\n\n- Prefer **browser-use** (CLI\u002FPython) over OpenClaw `browser` tool here; OpenClaw `browser` may fail if no supported system browser is present.\n- Use **persistent sessions** to do multi-step flows: `--session \u003Cname>`.\n\n## Quick CLI workflow (non-agent)\n\n1) Open\n\n```bash\nbrowser-use --session demo open https:\u002F\u002Fexample.com\n```\n\n2) Inspect (sometimes `state` returns 0 elements on heavy\u002FJS sites)\n\n```bash\nbrowser-use --session demo --json state | jq '.data | {url,title,elements:(.elements|length)}'\n```\n\n3) Screenshot (always works; best debugging primitive)\n\n```bash\nbrowser-use --session demo screenshot \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fpage.png\n```\n\n4) HTML for link discovery (works even when `state` is empty)\n\n```bash\nbrowser-use --session demo --json get html > \u002Ftmp\u002Fpage_html.json\npython3 - \u003C\u003C'PY'\nimport json,re\nhtml=json.load(open('\u002Ftmp\u002Fpage_html.json')).get('data',{}).get('html','')\nurls=set(re.findall(r\"https?:\u002F\u002F[^\\s\\\"'\u003C>]+\", html))\nfor u in sorted([u for u in urls if any(k in u for k in ['demo','login','console','qr','qrcode'])])[:200]:\n    print(u)\nPY\n```\n\n5) Lightweight DOM queries via JS (useful when `state` is empty)\n\n```bash\nbrowser-use --session demo --json eval \"location.href\"\nbrowser-use --session demo --json eval \"document.title\"\n```\n\n## Agent workflow with OpenAI-compatible LLM (Moonshot\u002FKimi)\n\nUse Python for Agent runs when the CLI `run` path requires Browser-Use cloud keys or when you need strict control over LLM parameters.\n\n### Minimal working Kimi example\n\nCreate `.env` (or export env vars) with:\n\n- `OPENAI_API_KEY=...`\n- `OPENAI_BASE_URL=https:\u002F\u002Fapi.moonshot.cn\u002Fv1`\n\nThen run the bundled script:\n\n```bash\nsource \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002F.venv-browser-use\u002Fbin\u002Factivate\npython \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fbrowser-use-local\u002Fscripts\u002Frun_agent_kimi.py\n```\n\n**Kimi\u002FMoonshot quirks observed in practice** (fixes):\n\n- `temperature` must be `1` for `kimi-k2.5`.\n- `frequency_penalty` must be `0` for `kimi-k2.5`.\n- Moonshot can reject strict JSON Schema used for structured output. Enable:\n  - `remove_defaults_from_schema=True`\n  - `remove_min_items_from_schema=True`\n\nIf you get a 400 error mentioning `response_format.json_schema ... keyword 'default' is not allowed` or `min_items unsupported`, those two flags are the first thing to set.\n\n## QR code extraction (login\u002Fdemo pages)\n\n### Preferred order\n\n1) **Screenshot the page** and crop candidate regions (fast, robust).\n2) If HTML contains `data:image\u002Fpng;base64,...`, extract and decode it.\n\n### Crop candidates\n\nUse `scripts\u002Fcrop_candidates.py` to generate multiple likely QR crops from a screenshot.\n\n```bash\nsource \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002F.venv-browser-use\u002Fbin\u002Factivate\npython skills\u002Fbrowser-use-local\u002Fscripts\u002Fcrop_candidates.py \\\n  --in \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Flogin.png \\\n  --outdir \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fqr_crops\n```\n\n### Extract base64-embedded images from HTML\n\n```bash\nsource \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002F.venv-browser-use\u002Fbin\u002Factivate\nbrowser-use --session demo --json get html > \u002Ftmp\u002Fpage_html.json\npython skills\u002Fbrowser-use-local\u002Fscripts\u002Fextract_data_images.py \\\n  --in \u002Ftmp\u002Fpage_html.json \\\n  --outdir \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fdata_imgs\n```\n\n## Troubleshooting\n\n- **`state` shows `elements: 0`**: use `get html` + regex discovery, plus screenshots; use `eval` to query DOM.\n- **Page readiness timeout warnings**: usually harmless; rely on screenshot + HTML.\n- **CLI flags order**: global flags go *before* the subcommand:\n  - ✅ `browser-use --browser chromium --json open https:\u002F\u002F...`\n  - ❌ `browser-use open https:\u002F\u002F... --browser chromium`\n\n","# browser-use (local) playbook\n\n## Default constraints in this environment\n\n- Prefer **browser-use** (CLI\u002FPython) over OpenClaw `browser` tool here; OpenClaw `browser` may fail if no supported system browser is present.\n- Use **persistent sessions** to do multi-step flows: `--session \u003Cname>`.\n\n## Quick CLI workflow (non-agent)\n\n1) Open\n\n```bash\nbrowser-use --session demo open https:\u002F\u002Fexample.com\n```\n\n2) Inspect (sometimes `state` returns 0 elements on heavy\u002FJS sites)\n\n```bash\nbrowser-use --session demo --json state | jq '.data | {url,title,elements:(.elements|length)}'\n```\n\n3) Screenshot (always works; best debugging primitive)\n\n```bash\nbrowser-use --session demo screenshot \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fpage.png\n```\n\n4) HTML for link discovery (works even when `state` is empty)\n\n```bash\nbrowser-use --session demo --json get html > \u002Ftmp\u002Fpage_html.json\npython3 - \u003C\u003C'PY'\nimport json,re\nhtml=json.load(open('\u002Ftmp\u002Fpage_html.json')).get('data',{}).get('html','')\nurls=set(re.findall(r\"https?:\u002F\u002F[^\\s\\\"'\u003C>]+\", html))\nfor u in sorted([u for u in urls if any(k in u for k in ['demo','login','console','qr','qrcode'])])[:200]:\n    print(u)\nPY\n```\n\n5) Lightweight DOM queries via JS (useful when `state` is empty)\n\n```bash\nbrowser-use --session demo --json eval \"location.href\"\nbrowser-use --session demo --json eval \"document.title\"\n```\n\n## Agent workflow with OpenAI-compatible LLM (Moonshot\u002FKimi)\n\nUse Python for Agent runs when the CLI `run` path requires Browser-Use cloud keys or when you need strict control over LLM parameters.\n\n### Minimal working Kimi example\n\nCreate `.env` (or export env vars) with:\n\n- `OPENAI_API_KEY=...`\n- `OPENAI_BASE_URL=https:\u002F\u002Fapi.moonshot.cn\u002Fv1`\n\nThen run the bundled script:\n\n```bash\nsource \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002F.venv-browser-use\u002Fbin\u002Factivate\npython \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fskills\u002Fbrowser-use-local\u002Fscripts\u002Frun_agent_kimi.py\n```\n\n**Kimi\u002FMoonshot quirks observed in practice** (fixes):\n\n- `temperature` must be `1` for `kimi-k2.5`.\n- `frequency_penalty` must be `0` for `kimi-k2.5`.\n- Moonshot can reject strict JSON Schema used for structured output. Enable:\n  - `remove_defaults_from_schema=True`\n  - `remove_min_items_from_schema=True`\n\nIf you get a 400 error mentioning `response_format.json_schema ... keyword 'default' is not allowed` or `min_items unsupported`, those two flags are the first thing to set.\n\n## QR code extraction (login\u002Fdemo pages)\n\n### Preferred order\n\n1) **Screenshot the page** and crop candidate regions (fast, robust).\n2) If HTML contains `data:image\u002Fpng;base64,...`, extract and decode it.\n\n### Crop candidates\n\nUse `scripts\u002Fcrop_candidates.py` to generate multiple likely QR crops from a screenshot.\n\n```bash\nsource \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002F.venv-browser-use\u002Fbin\u002Factivate\npython skills\u002Fbrowser-use-local\u002Fscripts\u002Fcrop_candidates.py \\\n  --in \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Flogin.png \\\n  --outdir \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fqr_crops\n```\n\n### Extract base64-embedded images from HTML\n\n```bash\nsource \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002F.venv-browser-use\u002Fbin\u002Factivate\nbrowser-use --session demo --json get html > \u002Ftmp\u002Fpage_html.json\npython skills\u002Fbrowser-use-local\u002Fscripts\u002Fextract_data_images.py \\\n  --in \u002Ftmp\u002Fpage_html.json \\\n  --outdir \u002Fhome\u002Fnode\u002F.openclaw\u002Fworkspace\u002Fdata_imgs\n```\n\n## Troubleshooting\n\n- **`state` shows `elements: 0`**: use `get html` + regex discovery, plus screenshots; use `eval` to query DOM.\n- **Page readiness timeout warnings**: usually harmless; rely on screenshot + HTML.\n- **CLI flags order**: global flags go *before* the subcommand:\n  - ✅ `browser-use --browser chromium --json open https:\u002F\u002F...`\n  - ❌ `browser-use open https:\u002F\u002F... --browser chromium`\n\n",{},"main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Ffengjiajie\u002Fbrowser-use-local",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add kbarbel640-del\u002Fskills --skill browser-use-local",{"tool":40,"command":41},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill browser-use-local",{"tool":43,"command":44},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill browser-use-local","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffengjiajie\u002Fbrowser-use-local\u002FSKILL.md",true,[48,54,60,64],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"_meta.json","REFERENCE","参考文档",290,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffengjiajie\u002Fbrowser-use-local\u002F_meta.json",{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"scripts\u002Fcrop_candidates.py","SCRIPT","脚本",1172,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffengjiajie\u002Fbrowser-use-local\u002Fscripts\u002Fcrop_candidates.py",{"path":61,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":62,"sourceHtmlUrl":63},"scripts\u002Fextract_data_images.py",1143,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffengjiajie\u002Fbrowser-use-local\u002Fscripts\u002Fextract_data_images.py",{"path":65,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":66,"sourceHtmlUrl":67},"scripts\u002Frun_agent_kimi.py",1205,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffengjiajie\u002Fbrowser-use-local\u002Fscripts\u002Frun_agent_kimi.py",[69,100,127,148,154,174],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":80,"publishedAt":22},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[75],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":111,"publishedAt":22},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[112,83,113,114,17,115,116,117,118,119,120,121,122,123,124,125,126,88,19],"dilemm ai","arena","analyze","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":136,"publishedAt":22},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[133],{"categoryNo":134,"categoryName":135,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000021","资料检索与研究",[137,138,139,140,141,142,143,84,144,125,19,145,83,146,147],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":149,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":153,"publishedAt":22},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[152],{"categoryNo":134,"categoryName":135,"taxonomyType":109,"taxonomyTypeDesc":110},[140,139,138,137,147,142,143,84,141,125,19,144,145,83,146],{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":22},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[161,162,163,164,165,166,167,168,169,170,171,172,173],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":184,"publishedAt":22},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[180,181],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},{"categoryNo":182,"categoryName":183,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000037","律师与法务",[185,186,187,188,84,189,190,27,191,145,192,193,194,195,196,97,197,198,199],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]