[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JF4HM1EV0B9R7F032WCK29":3,"skill-same:01M6JF4HM1EV0B9R7F032WCK29":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6JF4HM1EV0B9R7F032WCK29","node-connect",null,"Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR\u002Fsetup code\u002Fmanual connect fails, local Wi-Fi works but VPS\u002Ftailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.","S3YED\u002Fappie-kit","S3YED","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F62743867?v=4","01M6JBKBRRVP6KMS0VWZ27T3R6","01M6JBKBX0KG30284PW1DBYJT1",14,"MIT","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fops\u002Fnode-connect\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"node connect","connect","node","pairing","openclaw","vps","qr","errors","companion","URL","fi","remote","apps","bind","invalid","token","local","pair","code","config","2026-11-10 10:12:30",false,"---\nname: node-connect\ndescription: Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR\u002Fsetup code\u002Fmanual connect fails, local Wi-Fi works but VPS\u002Ftailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale, or plugins.entries.device-pair.config.publicUrl.\n---\n\n# Node Connect\n\nGoal: find the one real route from node -> gateway, verify OpenClaw is advertising that route, then fix pairing\u002Fauth.\n\n## Topology first\n\nDecide which case you are in before proposing fixes:\n\n- same machine \u002F emulator \u002F USB tunnel\n- same LAN \u002F local Wi-Fi\n- same Tailscale tailnet\n- public URL \u002F reverse proxy\n\nDo not mix them.\n\n- Local Wi-Fi problem: do not switch to Tailscale unless remote access is actually needed.\n- VPS \u002F remote gateway problem: do not keep debugging `localhost` or LAN IPs.\n\n## If ambiguous, ask first\n\nIf the setup is unclear or the failure report is vague, ask short clarifying questions before diagnosing.\n\nAsk for:\n\n- which route they intend: same machine, same LAN, Tailscale tailnet, or public URL\n- whether they used QR\u002Fsetup code or manual host\u002Fport\n- the exact app text\u002Fstatus\u002Ferror, quoted exactly if possible\n- whether `openclaw devices list` shows a pending pairing request\n\nDo not guess from `can't connect`.\n\n## Canonical checks\n\nPrefer `openclaw qr --json`. It uses the same setup-code payload Android scans.\n\n```bash\nopenclaw config get gateway.mode\nopenclaw config get gateway.bind\nopenclaw config get gateway.tailscale.mode\nopenclaw config get gateway.remote.url\nopenclaw config get gateway.auth.mode\nopenclaw config get gateway.auth.allowTailscale\nopenclaw config get plugins.entries.device-pair.config.publicUrl\nopenclaw qr --json\nopenclaw devices list\nopenclaw nodes status\n```\n\nIf this OpenClaw instance is pointed at a remote gateway, also run:\n\n```bash\nopenclaw qr --remote --json\n```\n\nIf Tailscale is part of the story:\n\n```bash\ntailscale status --json\n```\n\n## Read the result, not guesses\n\n`openclaw qr --json` success means:\n\n- `gatewayUrl`: this is the actual endpoint the app should use.\n- `urlSource`: this tells you which config path won.\n\nCommon good sources:\n\n- `gateway.bind=lan`: same Wi-Fi \u002F LAN only\n- `gateway.bind=tailnet`: direct tailnet access\n- `gateway.tailscale.mode=serve` or `gateway.tailscale.mode=funnel`: Tailscale route\n- `plugins.entries.device-pair.config.publicUrl`: explicit public\u002Freverse-proxy route\n- `gateway.remote.url`: remote gateway route\n\n## Root-cause map\n\nIf `openclaw qr --json` says `Gateway is only bound to loopback`:\n\n- remote node cannot connect yet\n- fix the route, then generate a fresh setup code\n- `gateway.bind=auto` is not enough if the effective QR route is still loopback\n- same LAN: use `gateway.bind=lan`\n- same tailnet: prefer `gateway.tailscale.mode=serve` or use `gateway.bind=tailnet`\n- public internet: set a real `plugins.entries.device-pair.config.publicUrl` or `gateway.remote.url`\n\nIf `gateway.bind=tailnet set, but no tailnet IP was found`:\n\n- gateway host is not actually on Tailscale\n\nIf `qr --remote requires gateway.remote.url`:\n\n- remote-mode config is incomplete\n\nIf the app says `pairing required`:\n\n- network route and auth worked\n- approve the pending device\n\n```bash\nopenclaw devices list\nopenclaw devices approve --latest\n```\n\nIf the app says `bootstrap token invalid or expired`:\n\n- old setup code\n- generate a fresh one and rescan\n- do this after any URL\u002Fauth fix too\n\nIf the app says `unauthorized`:\n\n- wrong token\u002Fpassword, or wrong Tailscale expectation\n- for Tailscale Serve, `gateway.auth.allowTailscale` must match the intended flow\n- otherwise use explicit token\u002Fpassword\n\n## Fast heuristics\n\n- Same Wi-Fi setup + gateway advertises `127.0.0.1`, `localhost`, or loopback-only config: wrong.\n- Remote setup + setup\u002Fmanual uses private LAN IP: wrong.\n- Tailnet setup + gateway advertises LAN IP instead of MagicDNS \u002F tailnet route: wrong.\n- Public URL set but QR still advertises something else: inspect `urlSource`; config is not what you think.\n- `openclaw devices list` shows pending requests: stop changing network config and approve first.\n\n## Fix style\n\nReply with one concrete diagnosis and one route.\n\nIf there is not enough signal yet, ask for setup + exact app text instead of guessing.\n\nGood:\n\n- `The gateway is still loopback-only, so a node on another network can never reach it. Enable Tailscale Serve, restart the gateway, run openclaw qr again, rescan, then approve the pending device pairing.`\n\nBad:\n\n- `Maybe LAN, maybe Tailscale, maybe port forwarding, maybe public URL.`\n","# Node Connect\n\nGoal: find the one real route from node -> gateway, verify OpenClaw is advertising that route, then fix pairing\u002Fauth.\n\n## Topology first\n\nDecide which case you are in before proposing fixes:\n\n- same machine \u002F emulator \u002F USB tunnel\n- same LAN \u002F local Wi-Fi\n- same Tailscale tailnet\n- public URL \u002F reverse proxy\n\nDo not mix them.\n\n- Local Wi-Fi problem: do not switch to Tailscale unless remote access is actually needed.\n- VPS \u002F remote gateway problem: do not keep debugging `localhost` or LAN IPs.\n\n## If ambiguous, ask first\n\nIf the setup is unclear or the failure report is vague, ask short clarifying questions before diagnosing.\n\nAsk for:\n\n- which route they intend: same machine, same LAN, Tailscale tailnet, or public URL\n- whether they used QR\u002Fsetup code or manual host\u002Fport\n- the exact app text\u002Fstatus\u002Ferror, quoted exactly if possible\n- whether `openclaw devices list` shows a pending pairing request\n\nDo not guess from `can't connect`.\n\n## Canonical checks\n\nPrefer `openclaw qr --json`. It uses the same setup-code payload Android scans.\n\n```bash\nopenclaw config get gateway.mode\nopenclaw config get gateway.bind\nopenclaw config get gateway.tailscale.mode\nopenclaw config get gateway.remote.url\nopenclaw config get gateway.auth.mode\nopenclaw config get gateway.auth.allowTailscale\nopenclaw config get plugins.entries.device-pair.config.publicUrl\nopenclaw qr --json\nopenclaw devices list\nopenclaw nodes status\n```\n\nIf this OpenClaw instance is pointed at a remote gateway, also run:\n\n```bash\nopenclaw qr --remote --json\n```\n\nIf Tailscale is part of the story:\n\n```bash\ntailscale status --json\n```\n\n## Read the result, not guesses\n\n`openclaw qr --json` success means:\n\n- `gatewayUrl`: this is the actual endpoint the app should use.\n- `urlSource`: this tells you which config path won.\n\nCommon good sources:\n\n- `gateway.bind=lan`: same Wi-Fi \u002F LAN only\n- `gateway.bind=tailnet`: direct tailnet access\n- `gateway.tailscale.mode=serve` or `gateway.tailscale.mode=funnel`: Tailscale route\n- `plugins.entries.device-pair.config.publicUrl`: explicit public\u002Freverse-proxy route\n- `gateway.remote.url`: remote gateway route\n\n## Root-cause map\n\nIf `openclaw qr --json` says `Gateway is only bound to loopback`:\n\n- remote node cannot connect yet\n- fix the route, then generate a fresh setup code\n- `gateway.bind=auto` is not enough if the effective QR route is still loopback\n- same LAN: use `gateway.bind=lan`\n- same tailnet: prefer `gateway.tailscale.mode=serve` or use `gateway.bind=tailnet`\n- public internet: set a real `plugins.entries.device-pair.config.publicUrl` or `gateway.remote.url`\n\nIf `gateway.bind=tailnet set, but no tailnet IP was found`:\n\n- gateway host is not actually on Tailscale\n\nIf `qr --remote requires gateway.remote.url`:\n\n- remote-mode config is incomplete\n\nIf the app says `pairing required`:\n\n- network route and auth worked\n- approve the pending device\n\n```bash\nopenclaw devices list\nopenclaw devices approve --latest\n```\n\nIf the app says `bootstrap token invalid or expired`:\n\n- old setup code\n- generate a fresh one and rescan\n- do this after any URL\u002Fauth fix too\n\nIf the app says `unauthorized`:\n\n- wrong token\u002Fpassword, or wrong Tailscale expectation\n- for Tailscale Serve, `gateway.auth.allowTailscale` must match the intended flow\n- otherwise use explicit token\u002Fpassword\n\n## Fast heuristics\n\n- Same Wi-Fi setup + gateway advertises `127.0.0.1`, `localhost`, or loopback-only config: wrong.\n- Remote setup + setup\u002Fmanual uses private LAN IP: wrong.\n- Tailnet setup + gateway advertises LAN IP instead of MagicDNS \u002F tailnet route: wrong.\n- Public URL set but QR still advertises something else: inspect `urlSource`; config is not what you think.\n- `openclaw devices list` shows pending requests: stop changing network config and approve first.\n\n## Fix style\n\nReply with one concrete diagnosis and one route.\n\nIf there is not enough signal yet, ask for setup + exact app text instead of guessing.\n\nGood:\n\n- `The gateway is still loopback-only, so a node on another network can never reach it. Enable Tailscale Serve, restart the gateway, run openclaw qr again, rescan, then approve the pending device pairing.`\n\nBad:\n\n- `Maybe LAN, maybe Tailscale, maybe port forwarding, maybe public URL.`\n",{"name":5,"description":7},"master","8ec37df6d71fb664ea19d32c079e7d3ff931a8e0","skills\u002Fops\u002Fnode-connect",3,"https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit","https:\u002F\u002Fweblyfe.ai","https:\u002F\u002Fgithub.com\u002FS3YED","2026-08-27 01:54:02",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add S3YED\u002Fappie-kit --skill node-connect",{"tool":57,"command":58},"bunx","bunx skills add S3YED\u002Fappie-kit --skill node-connect",{"tool":60,"command":61},"pnpm","pnpm dlx skills add S3YED\u002Fappie-kit --skill node-connect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fops\u002Fnode-connect\u002FSKILL.md",true,[],[66,102,137,163,193,217],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":83,"publishedAt":38},"01M6JFD4M6N4DSGC7TXEJ5R3J2","ai-music","AI music generation and audio tools: HeartMuLa lyrics-to-music generation, songwriting craft (+ Suno prompts), and audio spectrogram\u002Ffeature visualization.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fwethlete\u002Fai-music\u002FSKILL.md",[72,77,80],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":78,"categoryName":79,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":81,"categoryName":82,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000023","Skill与智能体开发",[84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101],"music","ai music","humanizer","visualization","Tools","Audio","hermes","hermes agent","songwriting","suno","lyrics","prompts","heartmula","craft","generation","feature","ai music generation","music generation",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":116,"publishedAt":38},"01M6JFCZE4XNFQFMNZDHKHT5V5","agentic-webdesign-design-system-ingestion","Use v0 Design Systems 2.0, Bolt Design System Agents, or Lovable to generate production UI from a client's real design system components — not generic Tailwind. Use when building a client website where brand consistency matters.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-design-system-ingestion\u002FSKILL.md",[108,111],{"categoryNo":109,"categoryName":110,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],"design","agentic","design system","system","ingestion","webdesign","agentic webdesign design system ingestion","components","generate","design systems","website","ui","Tailwind","bolt","lovable","v0","design-system","wed","design system components","appie",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":145,"publishedAt":38},"01M6JFCVPX3913CFAS6QQJ33ZB","agentic-webdesign-agent-elements","Use 21st.dev Agent Elements — 25 shadcn\u002Fui components purpose-built for AI agent UIs. Tool cards (Bash, Edit, Search, Plan, Subagent, MCP), chat, input, streaming. Open source, shadcn-registry install, no runtime lock-in.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-agent-elements\u002FSKILL.md",[143,144],{"categoryNo":81,"categoryName":82,"taxonomyType":75,"taxonomyTypeDesc":76},{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},[118,146,122,147,148,149,124,150,151,152,153,154,155,156,157,158,159,160,161,162],"elements","agentic webdesign agent elements","MCP","ai agent","registry","search","streaming","open source","open","Bash","plan","subagent","edit","install","input","lock","source",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":173,"publishedAt":38},"01M6JFCQC7H65M9QJ6TRE71BS1","vercel-deployment","Deploy static sites and frontends to Vercel — handles both CLI and REST API paths, including the CLI token sanitization workaround.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fvercel-deployment\u002FSKILL.md",[169,172],{"categoryNo":170,"categoryName":171,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":81,"categoryName":82,"taxonomyType":75,"taxonomyTypeDesc":76},[174,175,176,177,178,179,180,181,182,183,184,185,186,33,187,188,189,190,191,192],"deployment","vercel deployment","vercel","macos","cli","linux","windows","deploy","vercel deploy","REST","api","site","deploy to vercel","rest api","host","sites","paths","sanitization","static site",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":200,"publishedAt":38},"01M6JFCM4SMTXBM5A01BK2YQG1","software-quality-workflows","Umbrella workflow for TDD, debugging, code simplification, spikes, pre-commit review, and debugger-assisted investigation.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fsoftware-quality-workflows\u002FSKILL.md",[199],{"categoryNo":81,"categoryName":82,"taxonomyType":75,"taxonomyTypeDesc":76},[201,202,203,204,205,206,207,208,209,36,210,211,212,213,214,215,216],"workflows","quality","software","software quality workflows","review","tdd","workflow","commit","debugging","debugger","pre-commit","investigation","code simplification","user","simplification","for",{"skillNo":218,"name":219,"nameZh":6,"description":220,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":221,"categories":222,"keywords":230,"publishedAt":38},"01M6JFCGD0M6CEATY01W7YN6DB","react-component-refactoring","Safely refactor large React components into smaller, maintainable pieces using proven patterns","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Freact-component-refactoring\u002FSKILL.md",[223,226,229],{"categoryNo":224,"categoryName":225,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":227,"categoryName":228,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":81,"categoryName":82,"taxonomyType":75,"taxonomyTypeDesc":76},[231,232,233,234,235,236,237,238,177,239,240,124,241,180,242,36,243,244,245,246],"react","component","refactoring","component refactoring","react component","react component refactoring","frontend","writing","safe","typescript","react components","modular","refactor","simplify","patterns","test-driven-development"]