[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71KR4HCX41BPAK9GP7RPRRP":3,"skill-same:01M71KR4HCX41BPAK9GP7RPRRP":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":33,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M71KR4HCX41BPAK9GP7RPRRP","workflows",null,"Manage application workflows including configuration, restart, and removal.","clawdsolana\u002FOpenClawd","clawdsolana","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F279036008?v=4","01M71JTVF9FNGKE2SVJRPTQM31","OpenClawd","01M71JTVGCKWBSS8ZYC1HYWVA5",2,"MIT","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fworkflows\u002FSKILL.md",[],[5,19,20,21,22],"manage","configuration","application","restart","2026-11-10 10:56:23",false,"---\nname: workflows\ndescription: Manage application workflows including configuration, restart, and removal.\n---\n\n## Overview\n\nA workflow binds a shell command (e.g., `npm run dev`, `python run.py`, `cargo run`) to a long-running task managed by Replit. Workflows are used to run webservers, background services, TUIs, and other persistent processes.\n\n**Key characteristics:**\n\n- Workflows run until explicitly stopped\n- The system tracks workflows automatically — no separate configuration file is required\n- Workflows auto-restart after package installation and module installation\n- You can only get console logs from a workflow if it is running\n\n## Setup Tips\n\n1. **Keep workflows minimal**: One workflow per project is usually sufficient. Use the main frontend server or TUI as your primary workflow.\n\n2. **Choose the right workflow**: If your project has a frontend or TUI, set the workflow to the process that updates what the user sees.\n\n3. **Clean up unused workflows**: When adding new workflows, remove any existing workflows that are no longer needed.\n\n4. **Always restart after changes**: Restart workflows after making server-side code changes to ensure updates are visible to the user. Verify they run without errors before returning to the user.\n\n5. **Use bash for one-off commands**: Workflows are for persistent processes. Use bash for build scripts, testing, or commands that don't need to keep running.\n\n## When to Use\n\nUse this skill when:\n\n- You need to create or configure a workflow (background process)\n- You need to restart the application after making code changes\n- The application needs to be restarted to pick up new environment variables\n- You need to remove a workflow that's no longer needed\n- The user asks to start, stop, or restart the application\n- You need to check what workflows are configured\n- You need to check workflow status, output, or open ports\n\n## When NOT to Use\n\n- For debugging runtime errors (fix the code first, then restart)\n- When the application is already running and changes are hot-reloaded\n- One-off commands (use bash for commands that don't need to persist)\n- Build scripts (use bash for npm build, webpack, etc.)\n- Testing commands (use bash or runTest callback)\n- More than 10 workflows (keep workflows minimal; combine services if needed)\n\n## Available Functions\n\n### listWorkflows()\n\nList all configured workflows with their current state.\n\n**Parameters:** None\n\n**Returns:** List of workflow info dicts with `name` (str), `command` (str), and `state` (\"not_started\", \"running\", \"finished\", \"failed\").\n\n**Example:**\n\n```javascript\nconst workflows = await listWorkflows();\nfor (const w of workflows) {\n    console.log(`${w.name}: ${w.state}`);\n}\n```\n\n### getWorkflowStatus(name, maxScrollbackLines)\n\nGet detailed status of a specific workflow including output logs and open ports.\n\n**Parameters:**\n\n- `name` (str, required): Name of the workflow to check\n- `maxScrollbackLines` (int, default 100): Number of output lines to include\n\n**Returns:** Dict with `name`, `command`, `state`, `output` (recent terminal output), `openPorts` (list of listening ports), and `waitForPort`.\n\n**Example:**\n\n```javascript\n\u002F\u002F Check if the server is running and see its output\nconst status = await getWorkflowStatus({ name: \"Start application\" });\nconsole.log(`State: ${status.state}`);\nif (status.output) {\n    console.log(`Output:\\n${status.output}`);\n}\nif (status.openPorts) {\n    console.log(`Listening on ports: ${status.openPorts}`);\n}\n```\n\n### configureWorkflow({ name, command, waitForPort, outputType, autoStart, isCanvasWorkflow })\n\nConfigure or create a workflow. This is the primary way to set up background processes.\n\n**Parameters:**\n\n- `name` (str, default \"Start application\"): Unique workflow identifier\n- `command` (str, required): Shell command to execute\n- `waitForPort` (int, optional): Port the process listens on\n- `outputType` (str, default \"webview\"): \"webview\", \"console\", or \"vnc\"\n- `autoStart` (bool, default True): Auto-start after configuration\n- `isCanvasWorkflow` (bool, default false): Whether this workflow serves canvas iframe content\n\n**Output Type Rules:**\n\n- **webview** - For web applications. MUST use port 5000.\n- **console** - For backend services, CLIs, TUIs. Can use any supported port.\n- **vnc** - For desktop\u002FGUI apps (Electron, PyQt, etc.). No port needed.\n\n**Supported Ports:** 3000, 3001, 3002, 3003, 4200, 5000 (webview only), 5173, 6000, 6800, 8000, 8008, 8080, 8099, 9000\n\n**Examples:**\n\n```javascript\n\u002F\u002F Web application (React, Next.js, etc.)\nawait configureWorkflow({\n    name: \"Start application\",\n    command: \"npm run dev\",\n    waitForPort: 5000,\n    outputType: \"webview\"\n});\n\n\u002F\u002F Backend API\nawait configureWorkflow({\n    name: \"Backend API\",\n    command: \"python api.py\",\n    waitForPort: 8000,\n    outputType: \"console\"\n});\n\n\u002F\u002F Desktop application\nawait configureWorkflow({\n    name: \"Desktop App\",\n    command: \"python gui_app.py\",\n    outputType: \"vnc\"\n});\n```\n\n\n### removeWorkflow(name)\n\nRemove a workflow by name. Automatically stops it if running.\n\n**Parameters:**\n\n- `name` (str, required): Name of the workflow to remove\n\n**Returns:** Dict with `success`, `message`, `workflowName`, and `wasRunning`\n\n**Example:**\n\n```javascript\nawait removeWorkflow({ name: \"Backend API\" });\n```\n\n### restartWorkflow(workflowName, timeout)\n\nRestart a workflow by name.\n\n**Parameters:**\n\n- `workflowName` (str, required): Name of the workflow (e.g., \"Start application\")\n- `timeout` (int, default 30): Timeout in seconds to wait for restart\n\n**Returns:** Dict with restart status and optional screenshot URL\n\n**Example:**\n\n```javascript\n\u002F\u002F Restart the main application\nconst result = await restartWorkflow({ workflowName: \"Start application\" });\nconsole.log(result.message);\n\n\u002F\u002F Restart with custom timeout\nconst result2 = await restartWorkflow({\n    workflowName: \"Start application\",\n    timeout: 60\n});\n```\n\n## Best Practices\n\n1. **Restart after code changes**: Always restart workflows after modifying server-side code\n2. **Use appropriate timeouts**: Increase timeout for applications with slow startup\n3. **Check logs on failure**: If restart fails, check workflow logs for error details\n4. **One restart at a time**: Avoid parallel restarts of the same workflow\n\n5. **Port 5000 for web apps**: Always use port 5000 with webview output type\n\n\n## Common Workflow Names\n\n- `Start application` - Main application workflow\n- `Start Backend` - Backend server (in Expo\u002Fmobile apps)\n- `Project` - Parent workflow for multi-service apps\n\n## Error Handling\n\nThe workflow functions may raise errors in these cases:\n\n- **Workflow not found**: The specified workflow name doesn't exist\n- **Port not opened**: The application didn't start listening on expected port\n- **Preview not available**: The application endpoint isn't responding with HTTP 200\n- **Workflow limit exceeded**: Maximum of 10 workflows reached\n\n- **Port\u002Foutput type mismatch**: Port 5000 requires webview, webview requires port 5000\n\n\nWhen errors occur, check:\n\n1. Workflow logs for error details\n2. Application code for startup issues\n3. Port configuration in the workflow settings\n\n## Example Workflow\n\n```javascript\n\u002F\u002F Create a web application workflow\nawait configureWorkflow({\n    name: \"Start application\",\n    command: \"npm run dev\",\n\n    waitForPort: 5000,\n\n    outputType: \"webview\"\n});\n\n\u002F\u002F After making code changes, restart the application\nconst result = await restartWorkflow({ workflowName: \"Start application\" });\n\nif (result.success) {\n    console.log(\"Application restarted successfully\");\n    if (result.screenshotUrl) {\n        console.log(`Screenshot: ${result.screenshotUrl}`);\n    }\n} else {\n    console.log(`Restart failed: ${result.message}`);\n}\n\n\u002F\u002F Clean up unused workflows\nawait removeWorkflow({ name: \"Old Backend\" });\n```\n","## Overview\n\nA workflow binds a shell command (e.g., `npm run dev`, `python run.py`, `cargo run`) to a long-running task managed by Replit. Workflows are used to run webservers, background services, TUIs, and other persistent processes.\n\n**Key characteristics:**\n\n- Workflows run until explicitly stopped\n- The system tracks workflows automatically — no separate configuration file is required\n- Workflows auto-restart after package installation and module installation\n- You can only get console logs from a workflow if it is running\n\n## Setup Tips\n\n1. **Keep workflows minimal**: One workflow per project is usually sufficient. Use the main frontend server or TUI as your primary workflow.\n\n2. **Choose the right workflow**: If your project has a frontend or TUI, set the workflow to the process that updates what the user sees.\n\n3. **Clean up unused workflows**: When adding new workflows, remove any existing workflows that are no longer needed.\n\n4. **Always restart after changes**: Restart workflows after making server-side code changes to ensure updates are visible to the user. Verify they run without errors before returning to the user.\n\n5. **Use bash for one-off commands**: Workflows are for persistent processes. Use bash for build scripts, testing, or commands that don't need to keep running.\n\n## When to Use\n\nUse this skill when:\n\n- You need to create or configure a workflow (background process)\n- You need to restart the application after making code changes\n- The application needs to be restarted to pick up new environment variables\n- You need to remove a workflow that's no longer needed\n- The user asks to start, stop, or restart the application\n- You need to check what workflows are configured\n- You need to check workflow status, output, or open ports\n\n## When NOT to Use\n\n- For debugging runtime errors (fix the code first, then restart)\n- When the application is already running and changes are hot-reloaded\n- One-off commands (use bash for commands that don't need to persist)\n- Build scripts (use bash for npm build, webpack, etc.)\n- Testing commands (use bash or runTest callback)\n- More than 10 workflows (keep workflows minimal; combine services if needed)\n\n## Available Functions\n\n### listWorkflows()\n\nList all configured workflows with their current state.\n\n**Parameters:** None\n\n**Returns:** List of workflow info dicts with `name` (str), `command` (str), and `state` (\"not_started\", \"running\", \"finished\", \"failed\").\n\n**Example:**\n\n```javascript\nconst workflows = await listWorkflows();\nfor (const w of workflows) {\n    console.log(`${w.name}: ${w.state}`);\n}\n```\n\n### getWorkflowStatus(name, maxScrollbackLines)\n\nGet detailed status of a specific workflow including output logs and open ports.\n\n**Parameters:**\n\n- `name` (str, required): Name of the workflow to check\n- `maxScrollbackLines` (int, default 100): Number of output lines to include\n\n**Returns:** Dict with `name`, `command`, `state`, `output` (recent terminal output), `openPorts` (list of listening ports), and `waitForPort`.\n\n**Example:**\n\n```javascript\n\u002F\u002F Check if the server is running and see its output\nconst status = await getWorkflowStatus({ name: \"Start application\" });\nconsole.log(`State: ${status.state}`);\nif (status.output) {\n    console.log(`Output:\\n${status.output}`);\n}\nif (status.openPorts) {\n    console.log(`Listening on ports: ${status.openPorts}`);\n}\n```\n\n### configureWorkflow({ name, command, waitForPort, outputType, autoStart, isCanvasWorkflow })\n\nConfigure or create a workflow. This is the primary way to set up background processes.\n\n**Parameters:**\n\n- `name` (str, default \"Start application\"): Unique workflow identifier\n- `command` (str, required): Shell command to execute\n- `waitForPort` (int, optional): Port the process listens on\n- `outputType` (str, default \"webview\"): \"webview\", \"console\", or \"vnc\"\n- `autoStart` (bool, default True): Auto-start after configuration\n- `isCanvasWorkflow` (bool, default false): Whether this workflow serves canvas iframe content\n\n**Output Type Rules:**\n\n- **webview** - For web applications. MUST use port 5000.\n- **console** - For backend services, CLIs, TUIs. Can use any supported port.\n- **vnc** - For desktop\u002FGUI apps (Electron, PyQt, etc.). No port needed.\n\n**Supported Ports:** 3000, 3001, 3002, 3003, 4200, 5000 (webview only), 5173, 6000, 6800, 8000, 8008, 8080, 8099, 9000\n\n**Examples:**\n\n```javascript\n\u002F\u002F Web application (React, Next.js, etc.)\nawait configureWorkflow({\n    name: \"Start application\",\n    command: \"npm run dev\",\n    waitForPort: 5000,\n    outputType: \"webview\"\n});\n\n\u002F\u002F Backend API\nawait configureWorkflow({\n    name: \"Backend API\",\n    command: \"python api.py\",\n    waitForPort: 8000,\n    outputType: \"console\"\n});\n\n\u002F\u002F Desktop application\nawait configureWorkflow({\n    name: \"Desktop App\",\n    command: \"python gui_app.py\",\n    outputType: \"vnc\"\n});\n```\n\n\n### removeWorkflow(name)\n\nRemove a workflow by name. Automatically stops it if running.\n\n**Parameters:**\n\n- `name` (str, required): Name of the workflow to remove\n\n**Returns:** Dict with `success`, `message`, `workflowName`, and `wasRunning`\n\n**Example:**\n\n```javascript\nawait removeWorkflow({ name: \"Backend API\" });\n```\n\n### restartWorkflow(workflowName, timeout)\n\nRestart a workflow by name.\n\n**Parameters:**\n\n- `workflowName` (str, required): Name of the workflow (e.g., \"Start application\")\n- `timeout` (int, default 30): Timeout in seconds to wait for restart\n\n**Returns:** Dict with restart status and optional screenshot URL\n\n**Example:**\n\n```javascript\n\u002F\u002F Restart the main application\nconst result = await restartWorkflow({ workflowName: \"Start application\" });\nconsole.log(result.message);\n\n\u002F\u002F Restart with custom timeout\nconst result2 = await restartWorkflow({\n    workflowName: \"Start application\",\n    timeout: 60\n});\n```\n\n## Best Practices\n\n1. **Restart after code changes**: Always restart workflows after modifying server-side code\n2. **Use appropriate timeouts**: Increase timeout for applications with slow startup\n3. **Check logs on failure**: If restart fails, check workflow logs for error details\n4. **One restart at a time**: Avoid parallel restarts of the same workflow\n\n5. **Port 5000 for web apps**: Always use port 5000 with webview output type\n\n\n## Common Workflow Names\n\n- `Start application` - Main application workflow\n- `Start Backend` - Backend server (in Expo\u002Fmobile apps)\n- `Project` - Parent workflow for multi-service apps\n\n## Error Handling\n\nThe workflow functions may raise errors in these cases:\n\n- **Workflow not found**: The specified workflow name doesn't exist\n- **Port not opened**: The application didn't start listening on expected port\n- **Preview not available**: The application endpoint isn't responding with HTTP 200\n- **Workflow limit exceeded**: Maximum of 10 workflows reached\n\n- **Port\u002Foutput type mismatch**: Port 5000 requires webview, webview requires port 5000\n\n\nWhen errors occur, check:\n\n1. Workflow logs for error details\n2. Application code for startup issues\n3. Port configuration in the workflow settings\n\n## Example Workflow\n\n```javascript\n\u002F\u002F Create a web application workflow\nawait configureWorkflow({\n    name: \"Start application\",\n    command: \"npm run dev\",\n\n    waitForPort: 5000,\n\n    outputType: \"webview\"\n});\n\n\u002F\u002F After making code changes, restart the application\nconst result = await restartWorkflow({ workflowName: \"Start application\" });\n\nif (result.success) {\n    console.log(\"Application restarted successfully\");\n    if (result.screenshotUrl) {\n        console.log(`Screenshot: ${result.screenshotUrl}`);\n    }\n} else {\n    console.log(`Restart failed: ${result.message}`);\n}\n\n\u002F\u002F Clean up unused workflows\nawait removeWorkflow({ name: \"Old Backend\" });\n```\n",{"name":5,"description":7},"main","6b4a291df75c639681e93b4b5b812126443fd6ed","skills\u002Fworkflows",3,"https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd","https:\u002F\u002Fsolanaclawd.com\u002Fopenclawd","https:\u002F\u002Fgithub.com\u002Fclawdsolana","https:\u002F\u002Fmusebook.trade","Welcome to Open Clawd. The future of Ai on and off chain. Bringing webMCP to web 3 using X402, A2A, MPP and so much more!","2026-08-01 09:30:51",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add clawdsolana\u002FOpenClawd --skill workflows",{"tool":44,"command":45},"bunx","bunx skills add clawdsolana\u002FOpenClawd --skill workflows",{"tool":47,"command":48},"pnpm","pnpm dlx skills add clawdsolana\u002FOpenClawd --skill workflows","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fworkflows\u002FSKILL.md",true,[52],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},".fingerprint","OTHER","其他",32,"https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fworkflows\u002F.fingerprint",[59,91,118,144,168,188],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":70,"publishedAt":23},"01M71KRBD0W01EAXJ8YM4M1SJ2","solana-dev","End-to-end Solana development playbook (Jan 2026). Prefer Solana Foundation framework-kit (@solana\u002Fclient + @solana\u002Freact-hooks) for React\u002FNext.js UI. Prefer @solana\u002Fkit for all new client\u002FRPC\u002Ftransaction code. When legacy dependencies require web3.js, isolate it behind @solana\u002Fweb3-compat (or @solana\u002Fweb3.js as a true legacy fallback). Covers wallet-standard-first connection (incl. ConnectorKit), Anchor\u002FPinocchio programs, Codama-based client generation, LiteSVM\u002FMollusk\u002FSurfpool testing, and security checklists.","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Fsolana-dev\u002FSKILL.md",[65],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],"solana dev","dev","solana","Wallet","end","testing","hooks","kit","new","when","web3","code","react","next","2026","playbook","security","ui","fallback","framework",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":100,"publishedAt":23},"01M71KR8QPESSY61SVE8ZTFNVT","xurl","A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fxurl\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000023","Skill与智能体开发",[93,101,102,103,104,105,106,80,107,108,109,110,111,112,113,114,115,19,116,117],"posts","Media","x api","search","send","tap","you","api","cli","read","install","cli tool","endpoint","brew","for","tool","twitter",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":23},"01M71KR6FSXV88YDKWP7NBY3SH","wurk-integration","WURK API integration for monetizing agents with x402 payments on Solana\u002FBase - create social jobs, custom challenges, and agent help tasks","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fwurk-integration\u002FSKILL.md",[124],{"categoryNo":98,"categoryName":99,"taxonomyType":68,"taxonomyTypeDesc":69},[126,127,128,129,130,131,132,133,108,134,135,136,137,138,139,140,115,141,142,143],"wurk","wurk integration","integration","x402","social","payments","tasks","team","create","social-jobs","command","agent-help","custom-jobs","clawd","safe","api integration","custom","true",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":23},"01M71KR1VM0F5GPEQDNG5J7A0H","web-search","Search the web, fetch content, extract branding profiles, and capture screenshots from URLs. Use for real-time information, API documentation, current events, design matching, and visual reference.","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fweb-search\u002FSKILL.md",[],[151,104,152,153,154,115,155,156,157,158,159,160,161,108,162,163,164,165,166,167],"web search","web","fetch","api documentation","real-time","time","profiles","design","use","information","visual","documentation","branding","matching","reference","capture","content",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":23},"01M71KQZN5MR1JFQHG5GWXYAHS","weather","Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or detailed meteorological analysis. No API key needed.","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fweather\u002FSKILL.md",[],[170,175,115,176,159,80,177,108,178,179,180,181,182,183,184,185,186,187],"get","open","analysis","alerts","temperature","curl","via","help","about","https","location","data","user",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":194,"publishedAt":23},"01M71KQXS6WBXYKBFNCF5K83WC","wacli","Send WhatsApp messages to other people or search\u002Fsync WhatsApp history via the wacli CLI (not for normal user chats).","https:\u002F\u002Fgithub.com\u002Fclawdsolana\u002FOpenClawd\u002Fblob\u002Fmain\u002Fskills\u002Fwacli\u002FSKILL.md",[],[190,114,195,196,109,197,181,198,115,104,199,184,105,200,201,111,106,202,203,204],"cmd","history","github","normal","messages","sync","latest","go","whatsapp","people"]