diff --git a/agents/haonan/agent/models.json b/agents/haonan/agent/models.json
index 598c196..5e07faf 100644
--- a/agents/haonan/agent/models.json
+++ b/agents/haonan/agent/models.json
@@ -42,7 +42,8 @@
"cacheWrite": 10
},
"contextWindow": 200000,
- "maxTokens": 8192
+ "maxTokens": 8192,
+ "api": "anthropic-messages"
}
]
},
@@ -65,7 +66,8 @@
"cacheWrite": 0
},
"contextWindow": 200000,
- "maxTokens": 8192
+ "maxTokens": 8192,
+ "api": "openai-completions"
},
{
"id": "glm-4.7-FlashX",
@@ -81,7 +83,8 @@
"cacheWrite": 0
},
"contextWindow": 200000,
- "maxTokens": 8192
+ "maxTokens": 8192,
+ "api": "openai-completions"
}
]
},
@@ -103,9 +106,34 @@
"cacheWrite": 0
},
"contextWindow": 262144,
- "maxTokens": 65536
+ "maxTokens": 65536,
+ "api": "openai-completions"
}
]
+ },
+ "kimi-coding": {
+ "baseUrl": "https://api.kimi.com/coding/",
+ "api": "anthropic-messages",
+ "models": [
+ {
+ "id": "k2p5",
+ "name": "Kimi for Coding",
+ "reasoning": true,
+ "input": [
+ "text",
+ "image"
+ ],
+ "cost": {
+ "input": 0,
+ "output": 0,
+ "cacheRead": 0,
+ "cacheWrite": 0
+ },
+ "contextWindow": 262144,
+ "maxTokens": 32768
+ }
+ ],
+ "apiKey": "sk-kimi-o8VFc619Hnv8IAfj3aawWYDAFlJeBseOEs1ybgTQzO66uWyfW91QoVLz9VlTT9A6"
}
}
}
diff --git a/agents/haonan/sessions/sessions.json b/agents/haonan/sessions/sessions.json
index f4531c4..6868527 100644
--- a/agents/haonan/sessions/sessions.json
+++ b/agents/haonan/sessions/sessions.json
@@ -1,7 +1,7 @@
{
"agent:haonan:main": {
- "sessionId": "1c46ae16-9382-4865-ac7a-6bdb8ec1400d",
- "updatedAt": 1772727088985,
+ "sessionId": "acdf6f57-1014-4869-aa7f-f95e6b6f363b",
+ "updatedAt": 1772767037688,
"systemSent": true,
"skillsSnapshot": {
"prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n capability-evolver\n A self-evolution engine for AI agents. Analyzes runtime history to identify improvements and applies protocol-constrained evolution.\n /home/starmen1265/.openclaw/skills/capability-evolver/SKILL.md\n \n",
@@ -30,42 +30,38 @@
"lastChannel": "feishu",
"lastTo": "user:ou_be83febac9ee2afaa343c642bc697c48",
"lastAccountId": "feishu-pm",
- "channel": "feishu",
"modelProvider": "zhipu",
"model": "glm-5",
- "contextTokens": 200000,
"abortedLastRun": false,
- "inputTokens": 7239,
- "outputTokens": 380,
- "totalTokens": 70087,
"chatType": "direct",
"origin": {
"label": "张青",
"provider": "feishu",
- "from": "feishu:ou_be83febac9ee2afaa343c642bc697c48",
- "to": "user:ou_be83febac9ee2afaa343c642bc697c48",
"surface": "feishu",
"chatType": "direct",
+ "from": "feishu:ou_be83febac9ee2afaa343c642bc697c48",
+ "to": "user:ou_be83febac9ee2afaa343c642bc697c48",
"accountId": "feishu-pm"
},
- "sessionFile": "/home/starmen1265/.openclaw/agents/haonan/sessions/1c46ae16-9382-4865-ac7a-6bdb8ec1400d.jsonl",
+ "sessionFile": "/home/starmen1265/.openclaw/agents/haonan/sessions/acdf6f57-1014-4869-aa7f-f95e6b6f363b.jsonl",
"systemPromptReport": {
"source": "run",
- "generatedAt": 1772726938920,
- "sessionId": "1c46ae16-9382-4865-ac7a-6bdb8ec1400d",
+ "generatedAt": 1772766934351,
+ "sessionId": "acdf6f57-1014-4869-aa7f-f95e6b6f363b",
"sessionKey": "agent:haonan:main",
"provider": "zhipu",
"model": "glm-5",
"workspaceDir": "/home/starmen1265/.openclaw/agents/haonan/workspace",
"bootstrapMaxChars": 20000,
+ "bootstrapTotalMaxChars": 150000,
"sandbox": {
"mode": "off",
"sandboxed": false
},
"systemPrompt": {
- "chars": 26049,
- "projectContextChars": 15982,
- "nonProjectContextChars": 10067
+ "chars": 31728,
+ "projectContextChars": 19013,
+ "nonProjectContextChars": 12715
},
"injectedWorkspaceFiles": [
{
@@ -132,6 +128,30 @@
"injectedChars": 1193,
"truncated": false
},
+ {
+ "path": "SELF_IMPROVEMENT_REMINDER.md",
+ "rawChars": 616,
+ "injectedChars": 616,
+ "truncated": false
+ },
+ {
+ "path": "SELF_IMPROVEMENT_REMINDER.md",
+ "rawChars": 616,
+ "injectedChars": 616,
+ "truncated": false
+ },
+ {
+ "path": "SELF_IMPROVEMENT_REMINDER.md",
+ "rawChars": 616,
+ "injectedChars": 616,
+ "truncated": false
+ },
+ {
+ "path": "SELF_IMPROVEMENT_REMINDER.md",
+ "rawChars": 616,
+ "injectedChars": 616,
+ "truncated": false
+ },
{
"path": "SELF_IMPROVEMENT_REMINDER.md",
"rawChars": 616,
@@ -149,8 +169,8 @@
]
},
"tools": {
- "listChars": 2378,
- "schemaChars": 16629,
+ "listChars": 3402,
+ "schemaChars": 24678,
"entries": [
{
"name": "read",
@@ -173,20 +193,20 @@
{
"name": "exec",
"summaryChars": 181,
- "schemaChars": 1037,
+ "schemaChars": 1086,
"propertiesCount": 12
},
{
"name": "process",
"summaryChars": 85,
- "schemaChars": 844,
- "propertiesCount": 11
+ "schemaChars": 961,
+ "propertiesCount": 12
},
{
"name": "browser",
"summaryChars": 1251,
- "schemaChars": 1869,
- "propertiesCount": 28
+ "schemaChars": 2799,
+ "propertiesCount": 48
},
{
"name": "canvas",
@@ -196,63 +216,57 @@
},
{
"name": "nodes",
- "summaryChars": 101,
- "schemaChars": 1479,
- "propertiesCount": 33
- },
- {
- "name": "cron",
- "summaryChars": 2444,
- "schemaChars": 581,
- "propertiesCount": 13
+ "summaryChars": 115,
+ "schemaChars": 1758,
+ "propertiesCount": 36
},
{
"name": "message",
"summaryChars": 89,
- "schemaChars": 3897,
- "propertiesCount": 84
+ "schemaChars": 4210,
+ "propertiesCount": 86
},
{
"name": "tts",
- "summaryChars": 129,
+ "summaryChars": 152,
"schemaChars": 223,
"propertiesCount": 2
},
- {
- "name": "gateway",
- "summaryChars": 225,
- "schemaChars": 465,
- "propertiesCount": 11
- },
{
"name": "agents_list",
- "summaryChars": 72,
+ "summaryChars": 118,
"schemaChars": 33,
"propertiesCount": 0
},
{
"name": "sessions_list",
"summaryChars": 54,
- "schemaChars": 176,
+ "schemaChars": 212,
"propertiesCount": 4
},
{
"name": "sessions_history",
"summaryChars": 36,
- "schemaChars": 149,
+ "schemaChars": 161,
"propertiesCount": 3
},
{
"name": "sessions_send",
"summaryChars": 84,
- "schemaChars": 203,
+ "schemaChars": 273,
"propertiesCount": 5
},
{
"name": "sessions_spawn",
- "summaryChars": 107,
- "schemaChars": 312,
- "propertiesCount": 8
+ "summaryChars": 134,
+ "schemaChars": 895,
+ "propertiesCount": 15
+ },
+ {
+ "name": "subagents",
+ "summaryChars": 105,
+ "schemaChars": 191,
+ "propertiesCount": 4
},
{
"name": "session_status",
@@ -263,20 +277,20 @@
{
"name": "web_search",
"summaryChars": 175,
- "schemaChars": 733,
+ "schemaChars": 895,
"propertiesCount": 6
},
{
"name": "web_fetch",
"summaryChars": 129,
- "schemaChars": 360,
+ "schemaChars": 374,
"propertiesCount": 3
},
{
"name": "feishu_doc",
- "summaryChars": 116,
- "schemaChars": 584,
- "propertiesCount": 6
+ "summaryChars": 321,
+ "schemaChars": 2898,
+ "propertiesCount": 27
},
{
"name": "feishu_app_scopes",
@@ -284,21 +298,75 @@
"schemaChars": 33,
"propertiesCount": 0
},
+ {
+ "name": "feishu_chat",
+ "summaryChars": 46,
+ "schemaChars": 508,
+ "propertiesCount": 5
+ },
{
"name": "feishu_wiki",
"summaryChars": 83,
- "schemaChars": 880,
+ "schemaChars": 971,
"propertiesCount": 10
},
{
"name": "feishu_drive",
"summaryChars": 81,
- "schemaChars": 458,
+ "schemaChars": 486,
+ "propertiesCount": 5
+ },
+ {
+ "name": "feishu_bitable_get_meta",
+ "summaryChars": 114,
+ "schemaChars": 170,
+ "propertiesCount": 1
+ },
+ {
+ "name": "feishu_bitable_list_fields",
+ "summaryChars": 76,
+ "schemaChars": 255,
+ "propertiesCount": 2
+ },
+ {
+ "name": "feishu_bitable_list_records",
+ "summaryChars": 64,
+ "schemaChars": 462,
+ "propertiesCount": 4
+ },
+ {
+ "name": "feishu_bitable_get_record",
+ "summaryChars": 46,
+ "schemaChars": 335,
+ "propertiesCount": 3
+ },
+ {
+ "name": "feishu_bitable_create_record",
+ "summaryChars": 44,
+ "schemaChars": 549,
+ "propertiesCount": 3
+ },
+ {
+ "name": "feishu_bitable_update_record",
+ "summaryChars": 50,
+ "schemaChars": 473,
+ "propertiesCount": 4
+ },
+ {
+ "name": "feishu_bitable_create_app",
+ "summaryChars": 57,
+ "schemaChars": 243,
+ "propertiesCount": 2
+ },
+ {
+ "name": "feishu_bitable_create_field",
+ "summaryChars": 46,
+ "schemaChars": 911,
"propertiesCount": 5
},
{
"name": "memory_search",
- "summaryChars": 235,
+ "summaryChars": 334,
"schemaChars": 139,
"propertiesCount": 3
},
@@ -311,8 +379,16 @@
]
}
},
- "lastHeartbeatText": "定时任务跑完了,给你同步一下:\n\n✅ 已创建备份分支 `backup/evolver-20260305-190024`\n📊 检测到 44 项待提交的变更(agent 配置、cron 配置、技能模块更新等)\n⚠️ 完整进化模式需要先配置 .env 才能启用\n\n要不要我帮你看看这些变更,整理一下然后提交?",
- "lastHeartbeatSentAt": 1772708684427
+ "compactionCount": 0,
+ "inputTokens": 43805,
+ "outputTokens": 531,
+ "totalTokens": 61234,
+ "contextTokens": 200000,
+ "memoryFlushAt": 1772764823004,
+ "memoryFlushCompactionCount": 0,
+ "totalTokensFresh": true,
+ "cacheRead": 60544,
+ "cacheWrite": 0
},
"agent:haonan:wecom:dm:zhangqing": {
"origin": {
@@ -643,8 +719,8 @@
"memoryFlushCompactionCount": 0
},
"agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc": {
- "sessionId": "32265b5b-b838-47f2-980b-d2a0c72af649",
- "updatedAt": 1772650800022,
+ "sessionId": "17553bf8-7e13-43ee-bde8-30af69a3afab",
+ "updatedAt": 1772737200044,
"systemSent": true,
"model": "glm-5",
"contextTokens": 200000,
@@ -823,749 +899,9 @@
"version": 0
},
"modelProvider": "zhipu",
- "inputTokens": 8331,
- "outputTokens": 290,
- "totalTokens": 29003
- },
- "agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc:run:ee89a8ee-836b-40e4-9e4d-4a6a19e493c6": {
- "sessionId": "ee89a8ee-836b-40e4-9e4d-4a6a19e493c6",
- "updatedAt": 1772305200064,
- "systemSent": true,
- "model": "MiniMax-M2.5",
- "contextTokens": 200000,
- "label": "Cron: backup-openclaw-json",
- "skillsSnapshot": {
- "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n",
- "skills": [
- {
- "name": "feishu-doc"
- },
- {
- "name": "feishu-drive"
- },
- {
- "name": "feishu-perm"
- },
- {
- "name": "feishu-wiki"
- },
- {
- "name": "healthcheck"
- },
- {
- "name": "skill-creator"
- },
- {
- "name": "video-frames"
- },
- {
- "name": "weather"
- },
- {
- "name": "clawlist"
- },
- {
- "name": "brainstorming"
- },
- {
- "name": "dispatch-multiple-agents"
- },
- {
- "name": "doing-tasks"
- },
- {
- "name": "verify-task"
- },
- {
- "name": "write-plan"
- },
- {
- "name": "find-skills"
- }
- ],
- "resolvedSkills": [
- {
- "name": "feishu-doc",
- "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-drive",
- "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-perm",
- "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-wiki",
- "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "healthcheck",
- "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "skill-creator",
- "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "video-frames",
- "description": "Extract frames or short clips from videos using ffmpeg.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "weather",
- "description": "Get current weather and forecasts (no API key required).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "clawlist",
- "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "brainstorming",
- "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "dispatch-multiple-agents",
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "doing-tasks",
- "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "verify-task",
- "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "write-plan",
- "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "find-skills",
- "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- }
- ],
- "version": 0
- },
- "modelProvider": "mm",
- "inputTokens": 287,
- "outputTokens": 137,
- "totalTokens": 31395
- },
- "agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc:run:a5c45b8d-43ed-4095-bc56-cc3e084e59ce": {
- "sessionId": "a5c45b8d-43ed-4095-bc56-cc3e084e59ce",
- "updatedAt": 1772391600016,
- "systemSent": true,
- "model": "MiniMax-M2.5",
- "contextTokens": 200000,
- "label": "Cron: backup-openclaw-json",
- "skillsSnapshot": {
- "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n",
- "skills": [
- {
- "name": "feishu-doc"
- },
- {
- "name": "feishu-drive"
- },
- {
- "name": "feishu-perm"
- },
- {
- "name": "feishu-wiki"
- },
- {
- "name": "healthcheck"
- },
- {
- "name": "skill-creator"
- },
- {
- "name": "video-frames"
- },
- {
- "name": "weather"
- },
- {
- "name": "clawlist"
- },
- {
- "name": "brainstorming"
- },
- {
- "name": "dispatch-multiple-agents"
- },
- {
- "name": "doing-tasks"
- },
- {
- "name": "verify-task"
- },
- {
- "name": "write-plan"
- },
- {
- "name": "find-skills"
- }
- ],
- "resolvedSkills": [
- {
- "name": "feishu-doc",
- "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-drive",
- "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-perm",
- "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-wiki",
- "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "healthcheck",
- "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "skill-creator",
- "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "video-frames",
- "description": "Extract frames or short clips from videos using ffmpeg.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "weather",
- "description": "Get current weather and forecasts (no API key required).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "clawlist",
- "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "brainstorming",
- "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "dispatch-multiple-agents",
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "doing-tasks",
- "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "verify-task",
- "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "write-plan",
- "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "find-skills",
- "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- }
- ],
- "version": 0
- },
- "modelProvider": "mm",
- "inputTokens": 284,
- "outputTokens": 106,
- "totalTokens": 31392
- },
- "agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc:run:8bef314d-e731-48ca-82dd-0b96a60b56c5": {
- "sessionId": "8bef314d-e731-48ca-82dd-0b96a60b56c5",
- "updatedAt": 1772478000038,
- "systemSent": true,
- "model": "MiniMax-M2.5",
- "contextTokens": 200000,
- "label": "Cron: backup-openclaw-json",
- "skillsSnapshot": {
- "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n",
- "skills": [
- {
- "name": "feishu-doc"
- },
- {
- "name": "feishu-drive"
- },
- {
- "name": "feishu-perm"
- },
- {
- "name": "feishu-wiki"
- },
- {
- "name": "healthcheck"
- },
- {
- "name": "skill-creator"
- },
- {
- "name": "video-frames"
- },
- {
- "name": "weather"
- },
- {
- "name": "clawlist"
- },
- {
- "name": "brainstorming"
- },
- {
- "name": "dispatch-multiple-agents"
- },
- {
- "name": "doing-tasks"
- },
- {
- "name": "verify-task"
- },
- {
- "name": "write-plan"
- },
- {
- "name": "find-skills"
- }
- ],
- "resolvedSkills": [
- {
- "name": "feishu-doc",
- "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-drive",
- "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-perm",
- "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-wiki",
- "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "healthcheck",
- "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "skill-creator",
- "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "video-frames",
- "description": "Extract frames or short clips from videos using ffmpeg.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "weather",
- "description": "Get current weather and forecasts (no API key required).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "clawlist",
- "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "brainstorming",
- "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "dispatch-multiple-agents",
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "doing-tasks",
- "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "verify-task",
- "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "write-plan",
- "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "find-skills",
- "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- }
- ],
- "version": 0
- },
- "modelProvider": "mm",
- "inputTokens": 317,
- "outputTokens": 178,
- "totalTokens": 31425
- },
- "agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc:run:1e56e128-1d42-45a4-b097-bd38f253c6cf": {
- "sessionId": "1e56e128-1d42-45a4-b097-bd38f253c6cf",
- "updatedAt": 1772564400042,
- "systemSent": true,
- "model": "MiniMax-M2.5",
- "contextTokens": 200000,
- "label": "Cron: backup-openclaw-json",
- "skillsSnapshot": {
- "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n",
- "skills": [
- {
- "name": "feishu-doc"
- },
- {
- "name": "feishu-drive"
- },
- {
- "name": "feishu-perm"
- },
- {
- "name": "feishu-wiki"
- },
- {
- "name": "healthcheck"
- },
- {
- "name": "skill-creator"
- },
- {
- "name": "video-frames"
- },
- {
- "name": "weather"
- },
- {
- "name": "clawlist"
- },
- {
- "name": "brainstorming"
- },
- {
- "name": "dispatch-multiple-agents"
- },
- {
- "name": "doing-tasks"
- },
- {
- "name": "verify-task"
- },
- {
- "name": "write-plan"
- },
- {
- "name": "find-skills"
- }
- ],
- "resolvedSkills": [
- {
- "name": "feishu-doc",
- "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-drive",
- "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-perm",
- "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-wiki",
- "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "healthcheck",
- "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "skill-creator",
- "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "video-frames",
- "description": "Extract frames or short clips from videos using ffmpeg.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "weather",
- "description": "Get current weather and forecasts (no API key required).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "clawlist",
- "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "brainstorming",
- "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "dispatch-multiple-agents",
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "doing-tasks",
- "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "verify-task",
- "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "write-plan",
- "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "find-skills",
- "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- }
- ],
- "version": 0
- },
- "modelProvider": "mm",
- "inputTokens": 878,
- "outputTokens": 220,
- "totalTokens": 43515
+ "inputTokens": 7526,
+ "outputTokens": 275,
+ "totalTokens": 31526
},
"agent:haonan:cron:f03b184f-5f1d-4093-ae1b-fc9fe0b59eef": {
"sessionId": "a604e4f3-5de4-4e81-bb9f-ebc25b5fbc1a",
@@ -1774,395 +1110,6 @@
"outputTokens": 2153,
"totalTokens": 87089
},
- "agent:haonan:cron:f03b184f-5f1d-4093-ae1b-fc9fe0b59eef:run:0fae7213-e67f-4cf1-87d1-6f44257bd02d": {
- "sessionId": "0fae7213-e67f-4cf1-87d1-6f44257bd02d",
- "updatedAt": 1772622000055,
- "systemSent": true,
- "model": "glm-4.7-FlashX",
- "contextTokens": 200000,
- "label": "Cron: capability-evolver-daily",
- "skillsSnapshot": {
- "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n capability-evolver\n A self-evolution engine for AI agents. Analyzes runtime history to identify improvements and applies protocol-constrained evolution.\n /home/starmen1265/.openclaw/skills/capability-evolver/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n \n self-improvement\n Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks.\n /home/starmen1265/.openclaw/skills/self-improving-agent/SKILL.md\n \n",
- "skills": [
- {
- "name": "feishu-doc"
- },
- {
- "name": "feishu-drive"
- },
- {
- "name": "feishu-perm"
- },
- {
- "name": "feishu-wiki"
- },
- {
- "name": "healthcheck"
- },
- {
- "name": "skill-creator"
- },
- {
- "name": "video-frames"
- },
- {
- "name": "weather"
- },
- {
- "name": "capability-evolver"
- },
- {
- "name": "clawlist"
- },
- {
- "name": "brainstorming"
- },
- {
- "name": "dispatch-multiple-agents"
- },
- {
- "name": "doing-tasks"
- },
- {
- "name": "verify-task"
- },
- {
- "name": "write-plan"
- },
- {
- "name": "find-skills"
- },
- {
- "name": "self-improvement"
- }
- ],
- "resolvedSkills": [
- {
- "name": "feishu-doc",
- "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-drive",
- "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-perm",
- "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-wiki",
- "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "healthcheck",
- "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "skill-creator",
- "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "video-frames",
- "description": "Extract frames or short clips from videos using ffmpeg.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "weather",
- "description": "Get current weather and forecasts (no API key required).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "capability-evolver",
- "description": "A self-evolution engine for AI agents. Analyzes runtime history to identify improvements and applies protocol-constrained evolution.",
- "filePath": "/home/starmen1265/.openclaw/skills/capability-evolver/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/capability-evolver",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "clawlist",
- "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "brainstorming",
- "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "dispatch-multiple-agents",
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "doing-tasks",
- "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "verify-task",
- "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "write-plan",
- "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "find-skills",
- "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "self-improvement",
- "description": "Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks.",
- "filePath": "/home/starmen1265/.openclaw/skills/self-improving-agent/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/self-improving-agent",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- }
- ],
- "version": 0
- },
- "modelProvider": "zhipu"
- },
- "agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc:run:32265b5b-b838-47f2-980b-d2a0c72af649": {
- "sessionId": "32265b5b-b838-47f2-980b-d2a0c72af649",
- "updatedAt": 1772650800022,
- "systemSent": true,
- "model": "glm-5",
- "contextTokens": 200000,
- "label": "Cron: backup-openclaw-json",
- "skillsSnapshot": {
- "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n",
- "skills": [
- {
- "name": "feishu-doc"
- },
- {
- "name": "feishu-drive"
- },
- {
- "name": "feishu-perm"
- },
- {
- "name": "feishu-wiki"
- },
- {
- "name": "healthcheck"
- },
- {
- "name": "skill-creator"
- },
- {
- "name": "video-frames"
- },
- {
- "name": "weather"
- },
- {
- "name": "clawlist"
- },
- {
- "name": "brainstorming"
- },
- {
- "name": "dispatch-multiple-agents"
- },
- {
- "name": "doing-tasks"
- },
- {
- "name": "verify-task"
- },
- {
- "name": "write-plan"
- },
- {
- "name": "find-skills"
- }
- ],
- "resolvedSkills": [
- {
- "name": "feishu-doc",
- "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-drive",
- "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-perm",
- "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "feishu-wiki",
- "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
- "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
- "source": "openclaw-extra",
- "disableModelInvocation": false
- },
- {
- "name": "healthcheck",
- "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "skill-creator",
- "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "video-frames",
- "description": "Extract frames or short clips from videos using ffmpeg.",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "weather",
- "description": "Get current weather and forecasts (no API key required).",
- "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
- "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
- "source": "openclaw-bundled",
- "disableModelInvocation": false
- },
- {
- "name": "clawlist",
- "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "brainstorming",
- "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "dispatch-multiple-agents",
- "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "doing-tasks",
- "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "verify-task",
- "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "write-plan",
- "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
- "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- },
- {
- "name": "find-skills",
- "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
- "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
- "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
- "source": "openclaw-managed",
- "disableModelInvocation": false
- }
- ],
- "version": 0
- },
- "modelProvider": "zhipu",
- "inputTokens": 8331,
- "outputTokens": 290,
- "totalTokens": 29003
- },
"agent:haonan:cron:f03b184f-5f1d-4093-ae1b-fc9fe0b59eef:run:a604e4f3-5de4-4e81-bb9f-ebc25b5fbc1a": {
"sessionId": "a604e4f3-5de4-4e81-bb9f-ebc25b5fbc1a",
"updatedAt": 1772708400038,
@@ -2369,5 +1316,190 @@
"inputTokens": 76011,
"outputTokens": 2153,
"totalTokens": 87089
+ },
+ "agent:haonan:cron:41396aeb-6e3a-47b2-9bd3-9156a348c1dc:run:17553bf8-7e13-43ee-bde8-30af69a3afab": {
+ "sessionId": "17553bf8-7e13-43ee-bde8-30af69a3afab",
+ "updatedAt": 1772737200044,
+ "systemSent": true,
+ "model": "glm-5",
+ "contextTokens": 200000,
+ "label": "Cron: backup-openclaw-json",
+ "skillsSnapshot": {
+ "prompt": "\n\nThe following skills provide specialized instructions for specific tasks.\nUse the read tool to load a skill's file when the task matches its description.\nWhen a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\n\n\n \n feishu-doc\n Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md\n \n \n feishu-drive\n Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md\n \n \n feishu-perm\n Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md\n \n \n feishu-wiki\n Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n\n /home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md\n \n \n healthcheck\n Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md\n \n \n skill-creator\n Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md\n \n \n video-frames\n Extract frames or short clips from videos using ffmpeg.\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md\n \n \n weather\n Get current weather and forecasts (no API key required).\n /home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md\n \n \n clawlist\n MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.\n /home/starmen1265/.openclaw/skills/clawlist/SKILL.md\n \n \n brainstorming\n MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.\n /home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md\n \n \n dispatch-multiple-agents\n Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.\n /home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md\n \n \n doing-tasks\n Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.\n /home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md\n \n \n verify-task\n MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.\n /home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md\n \n \n write-plan\n MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.\n /home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md\n \n \n find-skills\n Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.\n /home/starmen1265/.openclaw/skills/find-skills/SKILL.md\n \n",
+ "skills": [
+ {
+ "name": "feishu-doc"
+ },
+ {
+ "name": "feishu-drive"
+ },
+ {
+ "name": "feishu-perm"
+ },
+ {
+ "name": "feishu-wiki"
+ },
+ {
+ "name": "healthcheck"
+ },
+ {
+ "name": "skill-creator"
+ },
+ {
+ "name": "video-frames"
+ },
+ {
+ "name": "weather"
+ },
+ {
+ "name": "clawlist"
+ },
+ {
+ "name": "brainstorming"
+ },
+ {
+ "name": "dispatch-multiple-agents"
+ },
+ {
+ "name": "doing-tasks"
+ },
+ {
+ "name": "verify-task"
+ },
+ {
+ "name": "write-plan"
+ },
+ {
+ "name": "find-skills"
+ }
+ ],
+ "resolvedSkills": [
+ {
+ "name": "feishu-doc",
+ "description": "Feishu document read/write operations. Activate when user mentions Feishu docs, cloud docs, or docx links.\n",
+ "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-doc",
+ "source": "openclaw-extra",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "feishu-drive",
+ "description": "Feishu cloud storage file management. Activate when user mentions cloud space, folders, drive.\n",
+ "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-drive",
+ "source": "openclaw-extra",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "feishu-perm",
+ "description": "Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.\n",
+ "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-perm",
+ "source": "openclaw-extra",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "feishu-wiki",
+ "description": "Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.\n",
+ "filePath": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/extensions/feishu/skills/feishu-wiki",
+ "source": "openclaw-extra",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "healthcheck",
+ "description": "Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).",
+ "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck/SKILL.md",
+ "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/healthcheck",
+ "source": "openclaw-bundled",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "skill-creator",
+ "description": "Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.",
+ "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator/SKILL.md",
+ "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/skill-creator",
+ "source": "openclaw-bundled",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "video-frames",
+ "description": "Extract frames or short clips from videos using ffmpeg.",
+ "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames/SKILL.md",
+ "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/video-frames",
+ "source": "openclaw-bundled",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "weather",
+ "description": "Get current weather and forecasts (no API key required).",
+ "filePath": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather/SKILL.md",
+ "baseDir": "/home/starmen1265/.npm-global/lib/node_modules/openclaw/skills/weather",
+ "source": "openclaw-bundled",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "clawlist",
+ "description": "MUST use for any multi-step project, long-running task, or infinite monitoring workflow. Plan, execute, track, and verify tasks with checkpoint validation. For projects, automation, and ongoing operations.",
+ "filePath": "/home/starmen1265/.openclaw/skills/clawlist/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/clawlist",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "brainstorming",
+ "description": "MUST use before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.",
+ "filePath": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/brainstorming",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "dispatch-multiple-agents",
+ "description": "Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Dispatch subagents to work concurrently.",
+ "filePath": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/dispatch-multiple-agents",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "doing-tasks",
+ "description": "Use when executing any task. Work through plans systematically, tracking progress, handling blockers, and coordinating with other skills. The central execution skill.",
+ "filePath": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/doing-tasks",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "verify-task",
+ "description": "MUST use after completing any multi-step task or project. Verifies completion against the original plan, checks quality criteria, and documents outcomes.",
+ "filePath": "/home/starmen1265/.openclaw/skills/clawlist/verify-task/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/verify-task",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "write-plan",
+ "description": "MUST use after brainstorming and before executing. Creates detailed implementation plans with checkpoints, verification criteria, and execution options.",
+ "filePath": "/home/starmen1265/.openclaw/skills/clawlist/write-plan/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/clawlist/write-plan",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ },
+ {
+ "name": "find-skills",
+ "description": "Helps users discover and install agent skills when they ask questions like \"how do I do X\", \"find a skill for X\", \"is there a skill that can...\", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.",
+ "filePath": "/home/starmen1265/.openclaw/skills/find-skills/SKILL.md",
+ "baseDir": "/home/starmen1265/.openclaw/skills/find-skills",
+ "source": "openclaw-managed",
+ "disableModelInvocation": false
+ }
+ ],
+ "version": 0
+ },
+ "modelProvider": "zhipu",
+ "inputTokens": 7526,
+ "outputTokens": 275,
+ "totalTokens": 31526
}
}
\ No newline at end of file
diff --git a/agents/haonan/workspace/memory/2026-03-06.md b/agents/haonan/workspace/memory/2026-03-06.md
new file mode 100644
index 0000000..2112aba
--- /dev/null
+++ b/agents/haonan/workspace/memory/2026-03-06.md
@@ -0,0 +1,38 @@
+# 2026-03-06 工作记录
+
+## OpenClaw 版本查询
+
+### 当前环境
+- 本机安装版本:**2026.2.9**
+- 远端最新版本:**2026.3.3**
+- 安装路径:`~/.npm-global/lib/node_modules/openclaw/`
+
+### 版本升级要点(2026.2.9 → 2026.3.3)
+
+#### 重要新功能
+1. **PDF 工具**:新增一级 `pdf` 工具,支持 Anthropic/Google 原生 PDF 分析
+2. **密钥管理**:SecretRef 覆盖 64 个配置项,提升安全性
+3. **Ollama 嵌入**:memorySearch 支持 Ollama 作为 provider/fallback
+4. **Telegram 流式**:新装默认开启 streaming=partial,支持 draft 预览
+5. **sessions_spawn 附件**:支持内联文件附件(base64/utf8)
+
+#### 与当前环境相关的改进
+- Feishu:群广播/多机器人场景优化,提及检测增强
+- 企业微信:随插件生态改进整体更稳定
+- ACP:默认启用 acp.dispatch.enabled,需注意配置
+
+#### 升级注意事项
+- 新安装默认 `tools.profile=messaging`(不再是 coding/system)
+- ACP 分发默认启用,如需暂停需显式设置 `acp.dispatch.enabled=false`
+- 升级命令:`npm install -g openclaw@latest`
+- 升级后需运行:`openclaw doctor`
+
+### 决策记录
+- 蒋先生询问了版本差异,已提供详细功能对比
+- 待蒋先生确认是否需要执行升级
+
+## 配置状态
+- 配置文件:`~/.openclaw/openclaw.json`
+- 最后更新版本:2026.2.9(2026-03-03)
+- 多个 agent 配置:haonan, knowledge-base, dev-assist, ui-designer, thinker
+- 绑定了 5 个飞书账号:feishu-pm, feishu-dev, feishu-worker, feishu-qa, feishu-art
diff --git a/agents/main/agent/models.json b/agents/main/agent/models.json
index 598c196..5e07faf 100644
--- a/agents/main/agent/models.json
+++ b/agents/main/agent/models.json
@@ -42,7 +42,8 @@
"cacheWrite": 10
},
"contextWindow": 200000,
- "maxTokens": 8192
+ "maxTokens": 8192,
+ "api": "anthropic-messages"
}
]
},
@@ -65,7 +66,8 @@
"cacheWrite": 0
},
"contextWindow": 200000,
- "maxTokens": 8192
+ "maxTokens": 8192,
+ "api": "openai-completions"
},
{
"id": "glm-4.7-FlashX",
@@ -81,7 +83,8 @@
"cacheWrite": 0
},
"contextWindow": 200000,
- "maxTokens": 8192
+ "maxTokens": 8192,
+ "api": "openai-completions"
}
]
},
@@ -103,9 +106,34 @@
"cacheWrite": 0
},
"contextWindow": 262144,
- "maxTokens": 65536
+ "maxTokens": 65536,
+ "api": "openai-completions"
}
]
+ },
+ "kimi-coding": {
+ "baseUrl": "https://api.kimi.com/coding/",
+ "api": "anthropic-messages",
+ "models": [
+ {
+ "id": "k2p5",
+ "name": "Kimi for Coding",
+ "reasoning": true,
+ "input": [
+ "text",
+ "image"
+ ],
+ "cost": {
+ "input": 0,
+ "output": 0,
+ "cacheRead": 0,
+ "cacheWrite": 0
+ },
+ "contextWindow": 262144,
+ "maxTokens": 32768
+ }
+ ],
+ "apiKey": "sk-kimi-o8VFc619Hnv8IAfj3aawWYDAFlJeBseOEs1ybgTQzO66uWyfW91QoVLz9VlTT9A6"
}
}
}
diff --git a/completions/openclaw.bash b/completions/openclaw.bash
index cacb80f..376fde7 100644
--- a/completions/openclaw.bash
+++ b/completions/openclaw.bash
@@ -6,16 +6,21 @@ _openclaw_completion() {
prev="${COMP_WORDS[COMP_CWORD-1]}"
# Simple top-level completion for now
- opts="setup onboard configure config doctor dashboard reset uninstall message memory agent agents status health sessions browser completion acp gateway daemon logs system models approvals nodes devices node sandbox tui cron dns docs hooks webhooks pairing plugins channels directory security skills update -V, --dev --profile --no-color"
+ opts="completion setup onboard configure config doctor dashboard reset uninstall message memory agent agents status health sessions browser acp gateway daemon logs system models approvals nodes devices node sandbox tui cron dns docs hooks webhooks qr clawbot pairing plugins channels directory security secrets skills update -V, --dev --profile --log-level --no-color"
case "${prev}" in
+ completion)
+ opts=" -s, -i, --write-state -y,"
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+ ;;
setup)
opts=" --workspace --wizard --non-interactive --mode --remote-url --remote-token"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
onboard)
- opts=" --workspace --reset --non-interactive --accept-risk --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --anthropic-api-key --openai-api-key --openrouter-api-key --ai-gateway-api-key --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --cloudflare-ai-gateway-api-key --moonshot-api-key --kimi-code-api-key --gemini-api-key --zai-api-key --xiaomi-api-key --minimax-api-key --synthetic-api-key --venice-api-key --opencode-zen-api-key --xai-api-key --qianfan-api-key --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-password --remote-url --remote-token --tailscale --tailscale-reset-on-exit --install-daemon --no-install-daemon --skip-daemon --daemon-runtime --skip-channels --skip-skills --skip-health --skip-ui --node-manager --json"
+ opts=" --workspace --reset --reset-scope --non-interactive --accept-risk --flow --mode --auth-choice --token-provider --token --token-profile-id --token-expires-in --secret-input-mode --cloudflare-ai-gateway-account-id --cloudflare-ai-gateway-gateway-id --anthropic-api-key --openai-api-key --mistral-api-key --openrouter-api-key --kilocode-api-key --ai-gateway-api-key --cloudflare-ai-gateway-api-key --moonshot-api-key --kimi-code-api-key --gemini-api-key --zai-api-key --xiaomi-api-key --minimax-api-key --synthetic-api-key --venice-api-key --together-api-key --huggingface-api-key --opencode-zen-api-key --xai-api-key --litellm-api-key --qianfan-api-key --volcengine-api-key --byteplus-api-key --custom-base-url --custom-api-key --custom-model-id --custom-provider-id --custom-compatibility --gateway-port --gateway-bind --gateway-auth --gateway-token --gateway-password --remote-url --remote-token --tailscale --tailscale-reset-on-exit --install-daemon --no-install-daemon --skip-daemon --daemon-runtime --skip-channels --skip-skills --skip-health --skip-ui --node-manager --json"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -25,7 +30,7 @@ _openclaw_completion() {
return 0
;;
config)
- opts="get set unset --section"
+ opts="get set unset file validate --section"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -65,7 +70,7 @@ _openclaw_completion() {
return 0
;;
agents)
- opts="list add set-identity delete "
+ opts="list bindings bind unbind add set-identity delete "
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -80,7 +85,7 @@ _openclaw_completion() {
return 0
;;
sessions)
- opts=" --json --verbose --store --active"
+ opts="cleanup --json --verbose --store --agent --all-agents --active"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -89,13 +94,8 @@ _openclaw_completion() {
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
- completion)
- opts=" -s, -i, --write-state -y,"
- COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
- return 0
- ;;
acp)
- opts="client --url --token --password --session --session-label --require-existing --reset-session --no-prefix-cwd --verbose,"
+ opts="client --url --token --token-file --password --password-file --session --session-label --require-existing --reset-session --no-prefix-cwd -v,"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -110,7 +110,7 @@ _openclaw_completion() {
return 0
;;
logs)
- opts=" --limit --max-bytes --follow --interval --json --plain --no-color --url --token --timeout --expect-final"
+ opts=" --limit --max-bytes --follow --interval --json --plain --no-color --local-time --url --token --timeout --expect-final"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -130,12 +130,12 @@ _openclaw_completion() {
return 0
;;
nodes)
- opts="status describe list pending approve reject rename invoke run notify canvas camera screen location "
+ opts="status describe list pending approve reject rename invoke run notify push canvas camera screen location "
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
devices)
- opts="list approve reject rotate revoke "
+ opts="list remove clear approve reject rotate revoke "
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -179,13 +179,23 @@ _openclaw_completion() {
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
+ qr)
+ opts=" --remote --url --public-url --token --password --setup-code-only --no-ascii --json"
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+ ;;
+ clawbot)
+ opts="qr "
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+ ;;
pairing)
opts="list approve "
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
plugins)
- opts="list info enable disable install update doctor "
+ opts="list info enable disable uninstall install update doctor "
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
@@ -204,13 +214,18 @@ _openclaw_completion() {
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
+ secrets)
+ opts="reload audit configure apply "
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+ ;;
skills)
opts="list info check "
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
update)
- opts="wizard status --json --no-restart --channel --tag --timeout --yes"
+ opts="wizard status --json --no-restart --dry-run --channel --tag --timeout --yes"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
diff --git a/completions/openclaw.fish b/completions/openclaw.fish
index 52a8767..c0f9aa1 100644
--- a/completions/openclaw.fish
+++ b/completions/openclaw.fish
@@ -1,30 +1,30 @@
+complete -c openclaw -n "__fish_use_subcommand" -a "completion" -d 'Generate shell completion script'
complete -c openclaw -n "__fish_use_subcommand" -a "setup" -d 'Initialize ~/.openclaw/openclaw.json and the agent workspace'
complete -c openclaw -n "__fish_use_subcommand" -a "onboard" -d 'Interactive wizard to set up the gateway, workspace, and skills'
-complete -c openclaw -n "__fish_use_subcommand" -a "configure" -d 'Interactive prompt to set up credentials, devices, and agent defaults'
-complete -c openclaw -n "__fish_use_subcommand" -a "config" -d 'Config helpers (get/set/unset). Run without subcommand for the wizard.'
+complete -c openclaw -n "__fish_use_subcommand" -a "configure" -d 'Interactive setup wizard for credentials, channels, gateway, and agent defaults'
+complete -c openclaw -n "__fish_use_subcommand" -a "config" -d 'Non-interactive config helpers (get/set/unset/file/validate). Run without subcommand for the setup wizard.'
complete -c openclaw -n "__fish_use_subcommand" -a "doctor" -d 'Health checks + quick fixes for the gateway and channels'
complete -c openclaw -n "__fish_use_subcommand" -a "dashboard" -d 'Open the Control UI with your current token'
complete -c openclaw -n "__fish_use_subcommand" -a "reset" -d 'Reset local config/state (keeps the CLI installed)'
complete -c openclaw -n "__fish_use_subcommand" -a "uninstall" -d 'Uninstall the gateway service + local data (CLI remains)'
-complete -c openclaw -n "__fish_use_subcommand" -a "message" -d 'Send messages and channel actions'
-complete -c openclaw -n "__fish_use_subcommand" -a "memory" -d 'Memory search tools'
+complete -c openclaw -n "__fish_use_subcommand" -a "message" -d 'Send, read, and manage messages and channel actions'
+complete -c openclaw -n "__fish_use_subcommand" -a "memory" -d 'Search, inspect, and reindex memory files'
complete -c openclaw -n "__fish_use_subcommand" -a "agent" -d 'Run an agent turn via the Gateway (use --local for embedded)'
complete -c openclaw -n "__fish_use_subcommand" -a "agents" -d 'Manage isolated agents (workspaces + auth + routing)'
complete -c openclaw -n "__fish_use_subcommand" -a "status" -d 'Show channel health and recent session recipients'
complete -c openclaw -n "__fish_use_subcommand" -a "health" -d 'Fetch health from the running gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "sessions" -d 'List stored conversation sessions'
complete -c openclaw -n "__fish_use_subcommand" -a "browser" -d 'Manage OpenClaw'\''s dedicated browser (Chrome/Chromium)'
-complete -c openclaw -n "__fish_use_subcommand" -a "completion" -d 'Generate shell completion script'
complete -c openclaw -n "__fish_use_subcommand" -a "acp" -d 'Run an ACP bridge backed by the Gateway'
-complete -c openclaw -n "__fish_use_subcommand" -a "gateway" -d 'Run the WebSocket Gateway'
+complete -c openclaw -n "__fish_use_subcommand" -a "gateway" -d 'Run, inspect, and query the WebSocket Gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "daemon" -d 'Manage the Gateway service (launchd/systemd/schtasks)'
complete -c openclaw -n "__fish_use_subcommand" -a "logs" -d 'Tail gateway file logs via RPC'
complete -c openclaw -n "__fish_use_subcommand" -a "system" -d 'System tools (events, heartbeat, presence)'
complete -c openclaw -n "__fish_use_subcommand" -a "models" -d 'Model discovery, scanning, and configuration'
complete -c openclaw -n "__fish_use_subcommand" -a "approvals" -d 'Manage exec approvals (gateway or node host)'
-complete -c openclaw -n "__fish_use_subcommand" -a "nodes" -d 'Manage gateway-owned node pairing'
+complete -c openclaw -n "__fish_use_subcommand" -a "nodes" -d 'Manage gateway-owned nodes (pairing, status, invoke, and media)'
complete -c openclaw -n "__fish_use_subcommand" -a "devices" -d 'Device pairing and auth tokens'
-complete -c openclaw -n "__fish_use_subcommand" -a "node" -d 'Run a headless node host (system.run/system.which)'
+complete -c openclaw -n "__fish_use_subcommand" -a "node" -d 'Run and manage the headless node host service'
complete -c openclaw -n "__fish_use_subcommand" -a "sandbox" -d 'Manage sandbox containers (Docker-based agent isolation)'
complete -c openclaw -n "__fish_use_subcommand" -a "tui" -d 'Open a terminal UI connected to the Gateway'
complete -c openclaw -n "__fish_use_subcommand" -a "cron" -d 'Manage cron jobs (via Gateway)'
@@ -32,17 +32,25 @@ complete -c openclaw -n "__fish_use_subcommand" -a "dns" -d 'DNS helpers for wid
complete -c openclaw -n "__fish_use_subcommand" -a "docs" -d 'Search the live OpenClaw docs'
complete -c openclaw -n "__fish_use_subcommand" -a "hooks" -d 'Manage internal agent hooks'
complete -c openclaw -n "__fish_use_subcommand" -a "webhooks" -d 'Webhook helpers and integrations'
+complete -c openclaw -n "__fish_use_subcommand" -a "qr" -d 'Generate an iOS pairing QR code and setup code'
+complete -c openclaw -n "__fish_use_subcommand" -a "clawbot" -d 'Legacy clawbot command aliases'
complete -c openclaw -n "__fish_use_subcommand" -a "pairing" -d 'Secure DM pairing (approve inbound requests)'
-complete -c openclaw -n "__fish_use_subcommand" -a "plugins" -d 'Manage OpenClaw plugins/extensions'
-complete -c openclaw -n "__fish_use_subcommand" -a "channels" -d 'Manage chat channel accounts'
-complete -c openclaw -n "__fish_use_subcommand" -a "directory" -d 'Directory lookups (self, peers, groups) for channels that support it'
-complete -c openclaw -n "__fish_use_subcommand" -a "security" -d 'Security tools (audit)'
+complete -c openclaw -n "__fish_use_subcommand" -a "plugins" -d 'Manage OpenClaw plugins and extensions'
+complete -c openclaw -n "__fish_use_subcommand" -a "channels" -d 'Manage connected chat channels and accounts'
+complete -c openclaw -n "__fish_use_subcommand" -a "directory" -d 'Lookup contact and group IDs (self, peers, groups) for supported chat channels'
+complete -c openclaw -n "__fish_use_subcommand" -a "security" -d 'Audit local config and state for common security foot-guns'
+complete -c openclaw -n "__fish_use_subcommand" -a "secrets" -d 'Secrets runtime controls'
complete -c openclaw -n "__fish_use_subcommand" -a "skills" -d 'List and inspect available skills'
-complete -c openclaw -n "__fish_use_subcommand" -a "update" -d 'Update OpenClaw to the latest version'
+complete -c openclaw -n "__fish_use_subcommand" -a "update" -d 'Update OpenClaw and inspect update channel status'
complete -c openclaw -n "__fish_use_subcommand" -s V -l version -d 'output the version number'
complete -c openclaw -n "__fish_use_subcommand" -l dev -d 'Dev profile: isolate state under ~/.openclaw-dev, default gateway port 19001, and shift derived ports (browser/canvas)'
complete -c openclaw -n "__fish_use_subcommand" -l profile -d 'Use a named profile (isolates OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under ~/.openclaw-)'
+complete -c openclaw -n "__fish_use_subcommand" -l log-level -d 'Global log level override for file + console (silent|fatal|error|warn|info|debug|trace)'
complete -c openclaw -n "__fish_use_subcommand" -l no-color -d 'Disable ANSI colors'
+complete -c openclaw -n "__fish_seen_subcommand_from completion" -s s -l shell -d 'Shell to generate completion for (default: zsh)'
+complete -c openclaw -n "__fish_seen_subcommand_from completion" -s i -l install -d 'Install completion script to shell profile'
+complete -c openclaw -n "__fish_seen_subcommand_from completion" -l write-state -d 'Write completion scripts to $OPENCLAW_STATE_DIR/completions (no stdout)'
+complete -c openclaw -n "__fish_seen_subcommand_from completion" -s y -l yes -d 'Skip confirmation (non-interactive)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l workspace -d 'Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l wizard -d 'Run the interactive onboarding wizard'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l non-interactive -d 'Run the wizard without prompts'
@@ -50,22 +58,26 @@ complete -c openclaw -n "__fish_seen_subcommand_from setup" -l mode -d 'Wizard m
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l remote-url -d 'Remote Gateway WebSocket URL'
complete -c openclaw -n "__fish_seen_subcommand_from setup" -l remote-token -d 'Remote Gateway token (optional)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l workspace -d 'Agent workspace directory (default: ~/.openclaw/workspace)'
-complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l reset -d 'Reset config + credentials + sessions + workspace before running wizard'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l reset -d 'Reset config + credentials + sessions before running wizard (workspace only with --reset-scope full)'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l reset-scope -d 'Reset scope: config|config+creds+sessions|full'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l non-interactive -d 'Run without prompts'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l accept-risk -d 'Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l flow -d 'Wizard flow: quickstart|advanced|manual'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l mode -d 'Wizard mode: local|remote'
-complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l auth-choice -d 'Auth: setup-token|token|chutes|openai-codex|openai-api-key|xai-api-key|qianfan-api-key|openrouter-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|xiaomi-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|skip'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l auth-choice -d 'Auth: token|openai-codex|chutes|vllm|apiKey|openai-api-key|mistral-api-key|openrouter-api-key|kilocode-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|kimi-code-api-key|gemini-api-key|zai-api-key|xiaomi-api-key|minimax-api|synthetic-api-key|venice-api-key|together-api-key|huggingface-api-key|opencode-zen|xai-api-key|litellm-api-key|qianfan-api-key|volcengine-api-key|byteplus-api-key|moonshot-api-key-cn|github-copilot|gemini-api-key|google-gemini-cli|zai-api-key|zai-coding-global|zai-coding-cn|zai-global|zai-cn|xiaomi-api-key|minimax-portal|qwen-portal|copilot-proxy|apiKey|opencode-zen|minimax-api|minimax-api-key-cn|minimax-api-lightning|custom-api-key|skip|setup-token|oauth|claude-cli|codex-cli|minimax-cloud|minimax'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token-provider -d 'Token provider id (non-interactive; used with --auth-choice token)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token -d 'Token value (non-interactive; used with --auth-choice token)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token-profile-id -d 'Auth profile id (non-interactive; default: :manual)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l token-expires-in -d 'Optional token expiry duration (e.g. 365d, 12h)'
-complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l anthropic-api-key -d 'Anthropic API key'
-complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l openai-api-key -d 'OpenAI API key'
-complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l openrouter-api-key -d 'OpenRouter API key'
-complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l ai-gateway-api-key -d 'Vercel AI Gateway API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l secret-input-mode -d 'API key persistence mode: plaintext|ref (default: plaintext)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l cloudflare-ai-gateway-account-id -d 'Cloudflare Account ID'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l cloudflare-ai-gateway-gateway-id -d 'Cloudflare AI Gateway ID'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l anthropic-api-key -d 'Anthropic API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l openai-api-key -d 'OpenAI API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l mistral-api-key -d 'Mistral API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l openrouter-api-key -d 'OpenRouter API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l kilocode-api-key -d 'Kilo Gateway API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l ai-gateway-api-key -d 'Vercel AI Gateway API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l cloudflare-ai-gateway-api-key -d 'Cloudflare AI Gateway API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l moonshot-api-key -d 'Moonshot API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l kimi-code-api-key -d 'Kimi Coding API key'
@@ -75,9 +87,19 @@ complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l xiaomi-api-key
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l minimax-api-key -d 'MiniMax API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l synthetic-api-key -d 'Synthetic API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l venice-api-key -d 'Venice API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l together-api-key -d 'Together AI API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l huggingface-api-key -d 'Hugging Face API key (HF token)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l opencode-zen-api-key -d 'OpenCode Zen API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l xai-api-key -d 'xAI API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l litellm-api-key -d 'LiteLLM API key'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l qianfan-api-key -d 'QIANFAN API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l volcengine-api-key -d 'Volcano Engine API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l byteplus-api-key -d 'BytePlus API key'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-base-url -d 'Custom provider base URL'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-api-key -d 'Custom provider API key (optional)'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-model-id -d 'Custom provider model ID'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-provider-id -d 'Custom provider ID (optional; auto-derived by default)'
+complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l custom-compatibility -d 'Custom provider API compatibility: openai|anthropic (default: openai)'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-port -d 'Gateway port'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-bind -d 'Gateway bind: loopback|tailnet|lan|auto|custom'
complete -c openclaw -n "__fish_seen_subcommand_from onboard" -l gateway-auth -d 'Gateway auth: token|password'
@@ -101,9 +123,13 @@ complete -c openclaw -n "__fish_seen_subcommand_from configure" -l section -d 'C
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "get" -d 'Get a config value by dot path'
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "set" -d 'Set a config value by dot path'
complete -c openclaw -n "__fish_seen_subcommand_from config" -a "unset" -d 'Remove a config value by dot path'
+complete -c openclaw -n "__fish_seen_subcommand_from config" -a "file" -d 'Print the active config file path'
+complete -c openclaw -n "__fish_seen_subcommand_from config" -a "validate" -d 'Validate the current config against the schema without starting the gateway'
complete -c openclaw -n "__fish_seen_subcommand_from config" -l section -d 'Configure wizard sections (repeatable). Use with no subcommand.'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l json -d 'Output JSON'
-complete -c openclaw -n "__fish_seen_subcommand_from set" -l json -d 'Parse value as JSON5 (required)'
+complete -c openclaw -n "__fish_seen_subcommand_from set" -l strict-json -d 'Strict JSON5 parsing (error instead of raw string fallback)'
+complete -c openclaw -n "__fish_seen_subcommand_from set" -l json -d 'Legacy alias for --strict-json'
+complete -c openclaw -n "__fish_seen_subcommand_from validate" -l json -d 'Output validation result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l no-workspace-suggestions -d 'Disable workspace memory system suggestions'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l yes -d 'Accept defaults without prompting'
complete -c openclaw -n "__fish_seen_subcommand_from doctor" -l repair -d 'Apply recommended repairs without prompting'
@@ -153,17 +179,18 @@ complete -c openclaw -n "__fish_seen_subcommand_from send" -s m -l message -d 'M
complete -c openclaw -n "__fish_seen_subcommand_from send" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l media -d 'Attach media (image/audio/video/document). Accepts local paths or URLs.'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l buttons -d 'Telegram inline keyboard buttons as JSON (array of button rows)'
+complete -c openclaw -n "__fish_seen_subcommand_from send" -l components -d 'Discord components payload as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l card -d 'Adaptive Card JSON object (when supported by the channel)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l reply-to -d 'Reply-to message id'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l thread-id -d 'Thread id (Telegram forum thread)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l gif-playback -d 'Treat video media as GIF playback (WhatsApp only).'
-complete -c openclaw -n "__fish_seen_subcommand_from send" -l silent -d 'Send message silently without notification (Telegram only)'
-complete -c openclaw -n "__fish_seen_subcommand_from send" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from send" -l silent -d 'Send message silently without notification (Telegram + Discord)'
+complete -c openclaw -n "__fish_seen_subcommand_from send" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l verbose -d 'Verbose logging'
-complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l dry-run -d 'Print payload and skip sending'
@@ -172,7 +199,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l targets -d 'R
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l message -d 'Message to send'
complete -c openclaw -n "__fish_seen_subcommand_from broadcast" -l media -d 'Media URL'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from poll" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l dry-run -d 'Print payload and skip sending'
@@ -180,10 +207,15 @@ complete -c openclaw -n "__fish_seen_subcommand_from poll" -l verbose -d 'Verbos
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-question -d 'Poll question'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-option -d 'Poll option (repeat 2-12 times)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-multi -d 'Allow multiple selections'
-complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-duration-hours -d 'Poll duration (Discord)'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-duration-hours -d 'Poll duration in hours (Discord)'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-duration-seconds -d 'Poll duration in seconds (Telegram; 5-600)'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-anonymous -d 'Send an anonymous poll (Telegram)'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l poll-public -d 'Send a non-anonymous poll (Telegram)'
complete -c openclaw -n "__fish_seen_subcommand_from poll" -s m -l message -d 'Optional message body'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l silent -d 'Send poll silently without notification (Telegram + Discord where supported)'
+complete -c openclaw -n "__fish_seen_subcommand_from poll" -l thread-id -d 'Thread id (Telegram forum topic / Slack thread ts)'
complete -c openclaw -n "__fish_seen_subcommand_from react" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from react" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from react" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l dry-run -d 'Print payload and skip sending'
@@ -196,7 +228,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from react" -l from-me -d 'Whats
complete -c openclaw -n "__fish_seen_subcommand_from react" -l target-author -d 'Signal reaction target author (uuid or phone)'
complete -c openclaw -n "__fish_seen_subcommand_from react" -l target-author-uuid -d 'Signal reaction target author uuid'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l dry-run -d 'Print payload and skip sending'
@@ -204,7 +236,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l verbose -d 'V
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from reactions" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from read" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from read" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from read" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from read" -l dry-run -d 'Print payload and skip sending'
@@ -217,7 +249,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from read" -l include-thread -d
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -s m -l message -d 'Message body'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from edit" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l dry-run -d 'Print payload and skip sending'
@@ -225,39 +257,39 @@ complete -c openclaw -n "__fish_seen_subcommand_from edit" -l verbose -d 'Verbos
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l thread-id -d 'Thread id (Telegram forum thread)'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from delete" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from delete" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from delete" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from pin" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from pin" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from pin" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from unpin" -l message-id -d 'Message id'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from pins" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from pins" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from pins" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from permissions" -l verbose -d 'Verbose logging'
-complete -c openclaw -n "__fish_seen_subcommand_from search" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from search" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l dry-run -d 'Print payload and skip sending'
@@ -274,7 +306,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from thread" -a "list" -d 'List
complete -c openclaw -n "__fish_seen_subcommand_from thread" -a "reply" -d 'Reply in a thread'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l thread-name -d 'Thread name'
complete -c openclaw -n "__fish_seen_subcommand_from create" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l dry-run -d 'Print payload and skip sending'
@@ -283,7 +315,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from create" -l message-id -d 'M
complete -c openclaw -n "__fish_seen_subcommand_from create" -s m -l message -d 'Initial thread message text'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l auto-archive-min -d 'Thread auto-archive minutes'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id'
-complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
@@ -294,7 +326,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from list" -l before -d 'Read/se
complete -c openclaw -n "__fish_seen_subcommand_from list" -l limit -d 'Result limit'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -s m -l message -d 'Message body'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from reply" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from reply" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l dry-run -d 'Print payload and skip sending'
@@ -303,14 +335,14 @@ complete -c openclaw -n "__fish_seen_subcommand_from reply" -l media -d 'Attach
complete -c openclaw -n "__fish_seen_subcommand_from reply" -l reply-to -d 'Reply-to message id'
complete -c openclaw -n "__fish_seen_subcommand_from emoji" -a "list" -d 'List emojis'
complete -c openclaw -n "__fish_seen_subcommand_from emoji" -a "upload" -d 'Upload an emoji'
-complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id (Discord)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l guild-id -d 'Guild id'
-complete -c openclaw -n "__fish_seen_subcommand_from upload" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from upload" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l dry-run -d 'Print payload and skip sending'
@@ -321,7 +353,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from upload" -l role-ids -d 'Rol
complete -c openclaw -n "__fish_seen_subcommand_from sticker" -a "send" -d 'Send stickers'
complete -c openclaw -n "__fish_seen_subcommand_from sticker" -a "upload" -d 'Upload a sticker'
complete -c openclaw -n "__fish_seen_subcommand_from send" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from send" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from send" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from send" -l dry-run -d 'Print payload and skip sending'
@@ -329,7 +361,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from send" -l verbose -d 'Verbos
complete -c openclaw -n "__fish_seen_subcommand_from send" -l sticker-id -d 'Sticker id (repeat)'
complete -c openclaw -n "__fish_seen_subcommand_from send" -s m -l message -d 'Optional message body'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l guild-id -d 'Guild id'
-complete -c openclaw -n "__fish_seen_subcommand_from upload" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from upload" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from upload" -l dry-run -d 'Print payload and skip sending'
@@ -342,7 +374,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from role" -a "info" -d 'List ro
complete -c openclaw -n "__fish_seen_subcommand_from role" -a "add" -d 'Add role to a member'
complete -c openclaw -n "__fish_seen_subcommand_from role" -a "remove" -d 'Remove role from a member'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l guild-id -d 'Guild id'
-complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l dry-run -d 'Print payload and skip sending'
@@ -350,7 +382,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from info" -l verbose -d 'Verbos
complete -c openclaw -n "__fish_seen_subcommand_from add" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l role-id -d 'Role id'
-complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l dry-run -d 'Print payload and skip sending'
@@ -358,7 +390,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from add" -l verbose -d 'Verbose
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l user-id -d 'User id'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l role-id -d 'Role id'
-complete -c openclaw -n "__fish_seen_subcommand_from remove" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l dry-run -d 'Print payload and skip sending'
@@ -366,20 +398,20 @@ complete -c openclaw -n "__fish_seen_subcommand_from remove" -l verbose -d 'Verb
complete -c openclaw -n "__fish_seen_subcommand_from channel" -a "info" -d 'Fetch channel info'
complete -c openclaw -n "__fish_seen_subcommand_from channel" -a "list" -d 'List channels'
complete -c openclaw -n "__fish_seen_subcommand_from info" -s t -l target -d 'Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id'
-complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id'
-complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from member" -a "info" -d 'Fetch member info'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l user-id -d 'User id'
-complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from info" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l dry-run -d 'Print payload and skip sending'
@@ -388,7 +420,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from info" -l guild-id -d 'Guild
complete -c openclaw -n "__fish_seen_subcommand_from voice" -a "status" -d 'Fetch voice status'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l user-id -d 'User id'
-complete -c openclaw -n "__fish_seen_subcommand_from status" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from status" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l dry-run -d 'Print payload and skip sending'
@@ -396,7 +428,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from status" -l verbose -d 'Verb
complete -c openclaw -n "__fish_seen_subcommand_from event" -a "list" -d 'List scheduled events'
complete -c openclaw -n "__fish_seen_subcommand_from event" -a "create" -d 'Create a scheduled event'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l guild-id -d 'Guild id'
-complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l dry-run -d 'Print payload and skip sending'
@@ -404,7 +436,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Verbos
complete -c openclaw -n "__fish_seen_subcommand_from create" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l event-name -d 'Event name'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l start-time -d 'Event start time'
-complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from create" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from create" -l dry-run -d 'Print payload and skip sending'
@@ -416,7 +448,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from create" -l location -d 'Eve
complete -c openclaw -n "__fish_seen_subcommand_from create" -l event-type -d 'Event type'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l user-id -d 'User id'
-complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l dry-run -d 'Print payload and skip sending'
@@ -426,7 +458,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l until -d 'Timeo
complete -c openclaw -n "__fish_seen_subcommand_from timeout" -l reason -d 'Moderation reason'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l user-id -d 'User id'
-complete -c openclaw -n "__fish_seen_subcommand_from kick" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from kick" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l dry-run -d 'Print payload and skip sending'
@@ -434,7 +466,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from kick" -l verbose -d 'Verbos
complete -c openclaw -n "__fish_seen_subcommand_from kick" -l reason -d 'Moderation reason'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l guild-id -d 'Guild id'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l user-id -d 'User id'
-complete -c openclaw -n "__fish_seen_subcommand_from ban" -l channel -d 'Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon'
+complete -c openclaw -n "__fish_seen_subcommand_from ban" -l channel -d 'Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l account -d 'Channel account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from ban" -l dry-run -d 'Print payload and skip sending'
@@ -452,6 +484,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from status" -l verbose -d 'Verb
complete -c openclaw -n "__fish_seen_subcommand_from index" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from index" -l force -d 'Force full reindex'
complete -c openclaw -n "__fish_seen_subcommand_from index" -l verbose -d 'Verbose logging'
+complete -c openclaw -n "__fish_seen_subcommand_from search" -l query -d 'Search query (alternative to positional argument)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l agent -d 'Agent id (default: default agent)'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l max-results -d 'Max results'
complete -c openclaw -n "__fish_seen_subcommand_from search" -l min-score -d 'Minimum score'
@@ -462,7 +495,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from agent" -l session-id -d 'Us
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l agent -d 'Agent id (overrides routing bindings)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l thinking -d 'Thinking level: off | minimal | low | medium | high'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l verbose -d 'Persist agent verbose level for the session'
-complete -c openclaw -n "__fish_seen_subcommand_from agent" -l channel -d 'Delivery channel: last|telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon (default: whatsapp)'
+complete -c openclaw -n "__fish_seen_subcommand_from agent" -l channel -d 'Delivery channel: last|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon (omit to use the main session channel)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l reply-to -d 'Delivery target override (separate from session routing)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l reply-channel -d 'Delivery channel override (separate from routing)'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l reply-account -d 'Delivery account id override'
@@ -471,11 +504,23 @@ complete -c openclaw -n "__fish_seen_subcommand_from agent" -l deliver -d 'Send
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from agent" -l timeout -d 'Override agent command timeout (seconds, default 600 or config value)'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "list" -d 'List configured agents'
+complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "bindings" -d 'List routing bindings'
+complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "bind" -d 'Add routing bindings for an agent'
+complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "unbind" -d 'Remove routing bindings for an agent'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "add" -d 'Add a new isolated agent'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "set-identity" -d 'Update an agent identity (name/theme/emoji/avatar)'
complete -c openclaw -n "__fish_seen_subcommand_from agents" -a "delete" -d 'Delete an agent and prune workspace/state'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON instead of text'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l bindings -d 'Include routing bindings'
+complete -c openclaw -n "__fish_seen_subcommand_from bindings" -l agent -d 'Filter by agent id'
+complete -c openclaw -n "__fish_seen_subcommand_from bindings" -l json -d 'Output JSON instead of text'
+complete -c openclaw -n "__fish_seen_subcommand_from bind" -l agent -d 'Agent id (defaults to current default agent)'
+complete -c openclaw -n "__fish_seen_subcommand_from bind" -l bind -d 'Binding to add (repeatable). If omitted, accountId is resolved by channel defaults/hooks.'
+complete -c openclaw -n "__fish_seen_subcommand_from bind" -l json -d 'Output JSON summary'
+complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l agent -d 'Agent id (defaults to current default agent)'
+complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l bind -d 'Binding to remove (repeatable)'
+complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l all -d 'Remove all bindings for this agent'
+complete -c openclaw -n "__fish_seen_subcommand_from unbind" -l json -d 'Output JSON summary'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l workspace -d 'Workspace directory for the new agent'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l model -d 'Model id for this agent'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l agent-dir -d 'Agent state directory for this agent'
@@ -504,10 +549,21 @@ complete -c openclaw -n "__fish_seen_subcommand_from health" -l json -d 'Output
complete -c openclaw -n "__fish_seen_subcommand_from health" -l timeout -d 'Connection timeout in milliseconds'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from health" -l debug -d 'Alias for --verbose'
+complete -c openclaw -n "__fish_seen_subcommand_from sessions" -a "cleanup" -d 'Run session-store maintenance now'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l verbose -d 'Verbose logging'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l store -d 'Path to session store (default: resolved from config)'
+complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l agent -d 'Agent id to inspect (default: configured default agent)'
+complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l all-agents -d 'Aggregate sessions across all configured agents'
complete -c openclaw -n "__fish_seen_subcommand_from sessions" -l active -d 'Only show sessions updated within the past N minutes'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l store -d 'Path to session store (default: resolved from config)'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l agent -d 'Agent id to maintain (default: configured default agent)'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l all-agents -d 'Run maintenance across all configured agents'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l dry-run -d 'Preview maintenance actions without writing'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l enforce -d 'Apply maintenance even when configured mode is warn'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l fix-missing -d 'Remove store entries whose transcript files are missing (bypasses age/count retention)'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l active-key -d 'Protect this session key from budget-eviction'
+complete -c openclaw -n "__fish_seen_subcommand_from cleanup" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "status" -d 'Show browser status'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "start" -d 'Start the browser (no-op if already running)'
complete -c openclaw -n "__fish_seen_subcommand_from browser" -a "stop" -d 'Stop the browser (best-effort)'
@@ -642,7 +698,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from start" -l target-id -d 'CDP
complete -c openclaw -n "__fish_seen_subcommand_from start" -l no-screenshots -d 'Disable screenshots'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l no-snapshots -d 'Disable snapshots'
complete -c openclaw -n "__fish_seen_subcommand_from start" -l sources -d 'Include sources (bigger traces)'
-complete -c openclaw -n "__fish_seen_subcommand_from stop" -l out -d 'Output path for the trace zip'
+complete -c openclaw -n "__fish_seen_subcommand_from stop" -l out -d 'Output path within openclaw temp dir (e.g. trace.zip or /tmp/openclaw/trace.zip)'
complete -c openclaw -n "__fish_seen_subcommand_from stop" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from cookies" -a "set" -d 'Set a cookie (requires --url or domain+path)'
complete -c openclaw -n "__fish_seen_subcommand_from cookies" -a "clear" -d 'Clear all cookies'
@@ -675,7 +731,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from set" -a "locale" -d 'Overri
complete -c openclaw -n "__fish_seen_subcommand_from set" -a "device" -d 'Apply a Playwright device descriptor (e.g. "iPhone 14")'
complete -c openclaw -n "__fish_seen_subcommand_from viewport" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from offline" -l target-id -d 'CDP target id (or unique prefix)'
-complete -c openclaw -n "__fish_seen_subcommand_from headers" -l json -d 'JSON object of headers'
+complete -c openclaw -n "__fish_seen_subcommand_from headers" -l headers-json -d 'JSON object of headers'
complete -c openclaw -n "__fish_seen_subcommand_from headers" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from credentials" -l clear -d 'Clear credentials'
complete -c openclaw -n "__fish_seen_subcommand_from credentials" -l target-id -d 'CDP target id (or unique prefix)'
@@ -687,14 +743,12 @@ complete -c openclaw -n "__fish_seen_subcommand_from media" -l target-id -d 'CDP
complete -c openclaw -n "__fish_seen_subcommand_from timezone" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from locale" -l target-id -d 'CDP target id (or unique prefix)'
complete -c openclaw -n "__fish_seen_subcommand_from device" -l target-id -d 'CDP target id (or unique prefix)'
-complete -c openclaw -n "__fish_seen_subcommand_from completion" -s s -l shell -d 'Shell to generate completion for (default: zsh)'
-complete -c openclaw -n "__fish_seen_subcommand_from completion" -s i -l install -d 'Install completion script to shell profile'
-complete -c openclaw -n "__fish_seen_subcommand_from completion" -l write-state -d 'Write completion scripts to $OPENCLAW_STATE_DIR/completions (no stdout)'
-complete -c openclaw -n "__fish_seen_subcommand_from completion" -s y -l yes -d 'Skip confirmation (non-interactive)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -a "client" -d 'Run an interactive ACP client against the local ACP bridge'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l token -d 'Gateway token (if required)'
+complete -c openclaw -n "__fish_seen_subcommand_from acp" -l token-file -d 'Read gateway token from file'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l password -d 'Gateway password (if required)'
+complete -c openclaw -n "__fish_seen_subcommand_from acp" -l password-file -d 'Read gateway password from file'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l session -d 'Default session key (e.g. agent:main:main)'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l session-label -d 'Default session label to resolve'
complete -c openclaw -n "__fish_seen_subcommand_from acp" -l require-existing -d 'Fail if the session key/label does not exist'
@@ -721,7 +775,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from gateway" -a "discover" -d '
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l port -d 'Port for the gateway WebSocket'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l bind -d 'Bind mode ("loopback"|"lan"|"tailnet"|"auto"|"custom"). Defaults to config gateway.bind (or loopback).'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l token -d 'Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)'
-complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l auth -d 'Gateway auth mode ("token"|"password")'
+complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l auth -d 'Gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l password -d 'Password for auth mode=password'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l tailscale -d 'Tailscale exposure mode ("off"|"serve"|"funnel")'
complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l tailscale-reset-on-exit -d 'Reset Tailscale serve/funnel configuration on shutdown'
@@ -738,7 +792,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from gateway" -l raw-stream-path
complete -c openclaw -n "__fish_seen_subcommand_from run" -l port -d 'Port for the gateway WebSocket'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l bind -d 'Bind mode ("loopback"|"lan"|"tailnet"|"auto"|"custom"). Defaults to config gateway.bind (or loopback).'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l token -d 'Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)'
-complete -c openclaw -n "__fish_seen_subcommand_from run" -l auth -d 'Gateway auth mode ("token"|"password")'
+complete -c openclaw -n "__fish_seen_subcommand_from run" -l auth -d 'Gateway auth mode ("none"|"token"|"password"|"trusted-proxy")'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l password -d 'Password for auth mode=password'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale -d 'Tailscale exposure mode ("off"|"serve"|"funnel")'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale-reset-on-exit -d 'Reset Tailscale serve/funnel configuration on shutdown'
@@ -827,6 +881,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from logs" -l interval -d 'Polli
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l json -d 'Emit JSON log lines'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l plain -d 'Plain text output (no ANSI styling)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l no-color -d 'Disable ANSI colors'
+complete -c openclaw -n "__fish_seen_subcommand_from logs" -l local-time -d 'Display timestamps in local timezone'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l timeout -d 'Timeout in ms'
@@ -990,6 +1045,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "rename" -d 'Rena
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "invoke" -d 'Invoke a command on a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "run" -d 'Run a shell command on a node (mac only)'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "notify" -d 'Send a local notification on a node (mac only)'
+complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "push" -d 'Send an APNs test push to an iOS node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "canvas" -d 'Capture or render canvas content from a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "camera" -d 'Capture camera media from a paired node'
complete -c openclaw -n "__fish_seen_subcommand_from nodes" -a "screen" -d 'Capture screen recordings from a paired node'
@@ -1063,6 +1119,14 @@ complete -c openclaw -n "__fish_seen_subcommand_from notify" -l url -d 'Gateway
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from notify" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l node -d 'Node id, name, or IP'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l title -d 'Push title'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l body -d 'Push body'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l environment -d 'Override APNs environment'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l token -d 'Gateway token (if required)'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l timeout -d 'Timeout in ms'
+complete -c openclaw -n "__fish_seen_subcommand_from push" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "snapshot" -d 'Capture a canvas snapshot (prints MEDIA:)'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "present" -d 'Show the canvas (optionally with a target URL/path)'
complete -c openclaw -n "__fish_seen_subcommand_from canvas" -a "hide" -d 'Hide the canvas'
@@ -1176,6 +1240,8 @@ complete -c openclaw -n "__fish_seen_subcommand_from get" -l token -d 'Gateway t
complete -c openclaw -n "__fish_seen_subcommand_from get" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from get" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "list" -d 'List pending and paired devices'
+complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "remove" -d 'Remove a paired device entry'
+complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "clear" -d 'Clear paired devices from the gateway table'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "approve" -d 'Approve a pending device pairing request'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "reject" -d 'Reject a pending device pairing request'
complete -c openclaw -n "__fish_seen_subcommand_from devices" -a "rotate" -d 'Rotate a device token for a role'
@@ -1185,6 +1251,19 @@ complete -c openclaw -n "__fish_seen_subcommand_from list" -l token -d 'Gateway
complete -c openclaw -n "__fish_seen_subcommand_from list" -l password -d 'Gateway password (password auth)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l token -d 'Gateway token (if required)'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l password -d 'Gateway password (password auth)'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l timeout -d 'Timeout in ms'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l pending -d 'Also reject all pending pairing requests'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l yes -d 'Confirm destructive clear'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l token -d 'Gateway token (if required)'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l password -d 'Gateway password (password auth)'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l timeout -d 'Timeout in ms'
+complete -c openclaw -n "__fish_seen_subcommand_from clear" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from approve" -l latest -d 'Approve the most recent pending request'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l password -d 'Gateway password (password auth)'
@@ -1284,21 +1363,26 @@ complete -c openclaw -n "__fish_seen_subcommand_from add" -l delete-after-run -d
complete -c openclaw -n "__fish_seen_subcommand_from add" -l keep-after-run -d 'Keep one-shot job after it succeeds'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l agent -d 'Agent id for this job'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l session -d 'Session target (main|isolated)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l session-key -d 'Session key for job routing (e.g. agent:my-agent:my-session)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l wake -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l at -d 'Run once at time (ISO) or +duration (e.g. 20m)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l every -d 'Run every duration (e.g. 10m, 1h)'
-complete -c openclaw -n "__fish_seen_subcommand_from add" -l cron -d 'Cron expression (5-field)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l cron -d 'Cron expression (5-field or 6-field with seconds)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l tz -d 'Timezone for cron expressions (IANA)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l stagger -d 'Cron stagger window (e.g. 30s, 5m)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l exact -d 'Disable cron staggering (set stagger to 0)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l system-event -d 'System event payload (main session)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l message -d 'Agent message payload'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l thinking -d 'Thinking level for agent jobs (off|minimal|low|medium|high)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l model -d 'Model override for agent jobs (provider/model or alias)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l timeout-seconds -d 'Timeout seconds for agent jobs'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l light-context -d 'Use lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l announce -d 'Announce summary to a chat (subagent-style)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l deliver -d 'Deprecated (use --announce). Announces a summary to a chat.'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l no-deliver -d 'Disable announce delivery and skip main-session summary'
-complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Delivery channel (last|feishu)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Delivery channel (last)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l to -d 'Delivery destination (E.164, Telegram chatId, or Discord channel/user)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l account -d 'Channel account id for delivery (multi-account setups)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l best-effort-deliver -d 'Do not fail the job if delivery fails'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
@@ -1338,23 +1422,38 @@ complete -c openclaw -n "__fish_seen_subcommand_from edit" -l keep-after-run -d
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l session -d 'Session target (main|isolated)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l agent -d 'Set agent id'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l clear-agent -d 'Unset agent and use default'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l session-key -d 'Set session key for job routing'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l clear-session-key -d 'Unset session key'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l wake -d 'Wake mode (now|next-heartbeat)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l at -d 'Set one-shot time (ISO) or duration like 20m'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l every -d 'Set interval duration like 10m'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l cron -d 'Set cron expression'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l tz -d 'Timezone for cron expressions (IANA)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l stagger -d 'Cron stagger window (e.g. 30s, 5m)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l exact -d 'Disable cron staggering (set stagger to 0)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l system-event -d 'Set systemEvent payload'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l message -d 'Set agentTurn payload message'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l thinking -d 'Thinking level for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l model -d 'Model override for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l timeout-seconds -d 'Timeout seconds for agent jobs'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l light-context -d 'Enable lightweight bootstrap context for agent jobs'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-light-context -d 'Disable lightweight bootstrap context for agent jobs'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l announce -d 'Announce summary to a chat (subagent-style)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l deliver -d 'Deprecated (use --announce). Announces a summary to a chat.'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-deliver -d 'Disable announce delivery'
-complete -c openclaw -n "__fish_seen_subcommand_from edit" -l channel -d 'Delivery channel (last|feishu)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l channel -d 'Delivery channel (last)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l to -d 'Delivery destination (E.164, Telegram chatId, or Discord channel/user)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l account -d 'Channel account id for delivery (multi-account setups)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l best-effort-deliver -d 'Do not fail job if delivery fails'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-best-effort-deliver -d 'Fail job when delivery fails'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert -d 'Enable failure alerts for this job'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l no-failure-alert -d 'Disable failure alerts for this job'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-after -d 'Alert after N consecutive job errors'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-channel -d 'Failure alert channel (last)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-to -d 'Failure alert destination'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-cooldown -d 'Minimum time between alerts (e.g. 1h, 30m)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-mode -d 'Failure alert delivery mode (announce or webhook)'
+complete -c openclaw -n "__fish_seen_subcommand_from edit" -l failure-alert-account-id -d 'Account ID for failure alert channel (multi-account setups)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l token -d 'Gateway token (if required)'
complete -c openclaw -n "__fish_seen_subcommand_from edit" -l timeout -d 'Timeout in ms'
@@ -1375,6 +1474,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from list" -s v -l verbose -d 'S
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from check" -l json -d 'Output as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from install" -s l -l link -d 'Link a local path instead of copying'
+complete -c openclaw -n "__fish_seen_subcommand_from install" -l pin -d 'Record npm installs as exact resolved @'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l all -d 'Update all tracked hooks'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l dry-run -d 'Show what would change without writing'
complete -c openclaw -n "__fish_seen_subcommand_from webhooks" -a "gmail" -d 'Gmail Pub/Sub hooks (via gogcli)'
@@ -1415,16 +1515,36 @@ complete -c openclaw -n "__fish_seen_subcommand_from run" -l renew-minutes -d 'R
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale -d 'Expose push endpoint via tailscale (funnel|serve|off)'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale-path -d 'Path for tailscale serve/funnel'
complete -c openclaw -n "__fish_seen_subcommand_from run" -l tailscale-target -d 'Tailscale serve/funnel target (port, host:port, or URL)'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l remote -d 'Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l url -d 'Override gateway URL used in the setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l public-url -d 'Override gateway public URL used in the setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l token -d 'Override gateway token for setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l password -d 'Override gateway password for setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l setup-code-only -d 'Print only the setup code'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l no-ascii -d 'Skip ASCII QR rendering'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from clawbot" -a "qr" -d 'Generate an iOS pairing QR code and setup code'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l remote -d 'Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l url -d 'Override gateway URL used in the setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l public-url -d 'Override gateway public URL used in the setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l token -d 'Override gateway token for setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l password -d 'Override gateway password for setup payload'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l setup-code-only -d 'Print only the setup code'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l no-ascii -d 'Skip ASCII QR rendering'
+complete -c openclaw -n "__fish_seen_subcommand_from qr" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from pairing" -a "list" -d 'List pending pairing requests'
complete -c openclaw -n "__fish_seen_subcommand_from pairing" -a "approve" -d 'Approve a pairing code and allow that sender'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l channel -d 'Channel (feishu)'
+complete -c openclaw -n "__fish_seen_subcommand_from list" -l account -d 'Account id (for multi-account channels)'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Print JSON'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l channel -d 'Channel (feishu)'
+complete -c openclaw -n "__fish_seen_subcommand_from approve" -l account -d 'Account id (for multi-account channels)'
complete -c openclaw -n "__fish_seen_subcommand_from approve" -l notify -d 'Notify the requester on the same channel'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "list" -d 'List discovered plugins'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "info" -d 'Show plugin details'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "enable" -d 'Enable a plugin in config'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "disable" -d 'Disable a plugin in config'
+complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "uninstall" -d 'Uninstall a plugin'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "install" -d 'Install a plugin (path, archive, or npm spec)'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "update" -d 'Update installed plugins (npm installs only)'
complete -c openclaw -n "__fish_seen_subcommand_from plugins" -a "doctor" -d 'Report plugin load issues'
@@ -1432,7 +1552,12 @@ complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Print JSO
complete -c openclaw -n "__fish_seen_subcommand_from list" -l enabled -d 'Only show enabled plugins'
complete -c openclaw -n "__fish_seen_subcommand_from list" -l verbose -d 'Show detailed entries'
complete -c openclaw -n "__fish_seen_subcommand_from info" -l json -d 'Print JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l keep-files -d 'Keep installed files on disk'
+complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l keep-config -d 'Deprecated alias for --keep-files'
+complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l force -d 'Skip confirmation prompt'
+complete -c openclaw -n "__fish_seen_subcommand_from uninstall" -l dry-run -d 'Show what would be removed without making changes'
complete -c openclaw -n "__fish_seen_subcommand_from install" -s l -l link -d 'Link a local path instead of copying'
+complete -c openclaw -n "__fish_seen_subcommand_from install" -l pin -d 'Record npm installs as exact resolved @'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l all -d 'Update all tracked plugins'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l dry-run -d 'Show what would change without writing'
complete -c openclaw -n "__fish_seen_subcommand_from channels" -a "list" -d 'List configured channels + auth profiles'
@@ -1449,19 +1574,19 @@ complete -c openclaw -n "__fish_seen_subcommand_from list" -l json -d 'Output JS
complete -c openclaw -n "__fish_seen_subcommand_from status" -l probe -d 'Probe channel credentials'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from status" -l json -d 'Output JSON'
-complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l channel -d 'Channel (all|telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)'
+complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l channel -d 'Channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l account -d 'Account id (only with --channel)'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l target -d 'Channel target for permission audit (Discord channel:)'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l timeout -d 'Timeout in ms'
complete -c openclaw -n "__fish_seen_subcommand_from capabilities" -l json -d 'Output JSON'
-complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l channel -d 'Channel (telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)'
+complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l channel -d 'Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l kind -d 'Target kind (auto|user|group)'
complete -c openclaw -n "__fish_seen_subcommand_from resolve" -l json -d 'Output JSON'
-complete -c openclaw -n "__fish_seen_subcommand_from logs" -l channel -d 'Channel (all|telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)'
+complete -c openclaw -n "__fish_seen_subcommand_from logs" -l channel -d 'Channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l lines -d 'Number of lines (default: 200)'
complete -c openclaw -n "__fish_seen_subcommand_from logs" -l json -d 'Output JSON'
-complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Channel (telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)'
+complete -c openclaw -n "__fish_seen_subcommand_from add" -l channel -d 'Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l account -d 'Account id (default when omitted)'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l name -d 'Display name for this account'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l token -d 'Bot token (Telegram/Discord)'
@@ -1495,13 +1620,13 @@ complete -c openclaw -n "__fish_seen_subcommand_from add" -l dm-allowlist -d 'Tl
complete -c openclaw -n "__fish_seen_subcommand_from add" -l auto-discover-channels -d 'Tlon auto-discover group channels'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l no-auto-discover-channels -d 'Disable Tlon auto-discovery'
complete -c openclaw -n "__fish_seen_subcommand_from add" -l use-env -d 'Use env token (default account only)'
-complete -c openclaw -n "__fish_seen_subcommand_from remove" -l channel -d 'Channel (telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)'
+complete -c openclaw -n "__fish_seen_subcommand_from remove" -l channel -d 'Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l account -d 'Account id (default when omitted)'
complete -c openclaw -n "__fish_seen_subcommand_from remove" -l delete -d 'Delete config entries (no prompt)'
-complete -c openclaw -n "__fish_seen_subcommand_from login" -l channel -d 'Channel alias (default: whatsapp)'
+complete -c openclaw -n "__fish_seen_subcommand_from login" -l channel -d 'Channel alias (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from login" -l verbose -d 'Verbose connection logs'
-complete -c openclaw -n "__fish_seen_subcommand_from logout" -l channel -d 'Channel alias (default: whatsapp)'
+complete -c openclaw -n "__fish_seen_subcommand_from logout" -l channel -d 'Channel alias (auto when only one is configured)'
complete -c openclaw -n "__fish_seen_subcommand_from logout" -l account -d 'Account id (accountId)'
complete -c openclaw -n "__fish_seen_subcommand_from directory" -a "self" -d 'Show the current account user'
complete -c openclaw -n "__fish_seen_subcommand_from directory" -a "peers" -d 'Peer directory (contacts/users)'
@@ -1531,6 +1656,27 @@ complete -c openclaw -n "__fish_seen_subcommand_from security" -a "audit" -d 'Au
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l deep -d 'Attempt live Gateway probe (best-effort)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l fix -d 'Apply safe fixes (tighten defaults + chmod state/config)'
complete -c openclaw -n "__fish_seen_subcommand_from audit" -l json -d 'Print JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "reload" -d 'Re-resolve secret references and atomically swap runtime snapshot'
+complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "audit" -d 'Audit plaintext secrets, unresolved refs, and precedence drift'
+complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "configure" -d 'Interactive secrets helper (provider setup + SecretRef mapping + preflight)'
+complete -c openclaw -n "__fish_seen_subcommand_from secrets" -a "apply" -d 'Apply a previously generated secrets plan'
+complete -c openclaw -n "__fish_seen_subcommand_from reload" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from reload" -l url -d 'Gateway WebSocket URL (defaults to gateway.remote.url when configured)'
+complete -c openclaw -n "__fish_seen_subcommand_from reload" -l token -d 'Gateway token (if required)'
+complete -c openclaw -n "__fish_seen_subcommand_from reload" -l timeout -d 'Timeout in ms'
+complete -c openclaw -n "__fish_seen_subcommand_from reload" -l expect-final -d 'Wait for final response (agent)'
+complete -c openclaw -n "__fish_seen_subcommand_from audit" -l check -d 'Exit non-zero when findings are present'
+complete -c openclaw -n "__fish_seen_subcommand_from audit" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l apply -d 'Apply changes immediately after preflight'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l yes -d 'Skip apply confirmation prompt'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l providers-only -d 'Configure secrets.providers only, skip credential mapping'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l skip-provider-setup -d 'Skip provider setup and only map credential fields to existing providers'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l agent -d 'Agent id for auth-profiles targets (default: configured default agent)'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l plan-out -d 'Write generated plan JSON to a file'
+complete -c openclaw -n "__fish_seen_subcommand_from configure" -l json -d 'Output JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from apply" -l from -d 'Path to plan JSON'
+complete -c openclaw -n "__fish_seen_subcommand_from apply" -l dry-run -d 'Validate/preflight only'
+complete -c openclaw -n "__fish_seen_subcommand_from apply" -l json -d 'Output JSON'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "list" -d 'List all available skills'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "info" -d 'Show detailed information about a skill'
complete -c openclaw -n "__fish_seen_subcommand_from skills" -a "check" -d 'Check which skills are ready vs missing requirements'
@@ -1543,6 +1689,7 @@ complete -c openclaw -n "__fish_seen_subcommand_from update" -a "wizard" -d 'Int
complete -c openclaw -n "__fish_seen_subcommand_from update" -a "status" -d 'Show update channel and version status'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l json -d 'Output result as JSON'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l no-restart -d 'Skip restarting the gateway service after a successful update'
+complete -c openclaw -n "__fish_seen_subcommand_from update" -l dry-run -d 'Preview update actions without making changes'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l channel -d 'Persist update channel (git + npm)'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l tag -d 'Override npm dist-tag or version for this update'
complete -c openclaw -n "__fish_seen_subcommand_from update" -l timeout -d 'Timeout for each update step in seconds (default: 1200)'
diff --git a/completions/openclaw.ps1 b/completions/openclaw.ps1
index bf25c23..933a41a 100644
--- a/completions/openclaw.ps1
+++ b/completions/openclaw.ps1
@@ -17,7 +17,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
# Root command
if ($commandPath -eq "") {
- $completions = @('setup','onboard','configure','config','doctor','dashboard','reset','uninstall','message','memory','agent','agents','status','health','sessions','browser','completion','acp','gateway','daemon','logs','system','models','approvals','nodes','devices','node','sandbox','tui','cron','dns','docs','hooks','webhooks','pairing','plugins','channels','directory','security','skills','update', '-V,','--dev','--profile','--no-color')
+ $completions = @('completion','setup','onboard','configure','config','doctor','dashboard','reset','uninstall','message','memory','agent','agents','status','health','sessions','browser','acp','gateway','daemon','logs','system','models','approvals','nodes','devices','node','sandbox','tui','cron','dns','docs','hooks','webhooks','qr','clawbot','pairing','plugins','channels','directory','security','secrets','skills','update', '-V,','--dev','--profile','--log-level','--no-color')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -25,7 +25,14 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
if ($commandPath -eq 'openclaw') {
- $completions = @('setup','onboard','configure','config','doctor','dashboard','reset','uninstall','message','memory','agent','agents','status','health','sessions','browser','completion','acp','gateway','daemon','logs','system','models','approvals','nodes','devices','node','sandbox','tui','cron','dns','docs','hooks','webhooks','pairing','plugins','channels','directory','security','skills','update','-V','--dev','--profile','--no-color')
+ $completions = @('completion','setup','onboard','configure','config','doctor','dashboard','reset','uninstall','message','memory','agent','agents','status','health','sessions','browser','acp','gateway','daemon','logs','system','models','approvals','nodes','devices','node','sandbox','tui','cron','dns','docs','hooks','webhooks','qr','clawbot','pairing','plugins','channels','directory','security','secrets','skills','update','-V','--dev','--profile','--log-level','--no-color')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw completion') {
+ $completions = @('-s','-i','--write-state','-y')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -39,7 +46,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw onboard') {
- $completions = @('--workspace','--reset','--non-interactive','--accept-risk','--flow','--mode','--auth-choice','--token-provider','--token','--token-profile-id','--token-expires-in','--anthropic-api-key','--openai-api-key','--openrouter-api-key','--ai-gateway-api-key','--cloudflare-ai-gateway-account-id','--cloudflare-ai-gateway-gateway-id','--cloudflare-ai-gateway-api-key','--moonshot-api-key','--kimi-code-api-key','--gemini-api-key','--zai-api-key','--xiaomi-api-key','--minimax-api-key','--synthetic-api-key','--venice-api-key','--opencode-zen-api-key','--xai-api-key','--qianfan-api-key','--gateway-port','--gateway-bind','--gateway-auth','--gateway-token','--gateway-password','--remote-url','--remote-token','--tailscale','--tailscale-reset-on-exit','--install-daemon','--no-install-daemon','--skip-daemon','--daemon-runtime','--skip-channels','--skip-skills','--skip-health','--skip-ui','--node-manager','--json')
+ $completions = @('--workspace','--reset','--reset-scope','--non-interactive','--accept-risk','--flow','--mode','--auth-choice','--token-provider','--token','--token-profile-id','--token-expires-in','--secret-input-mode','--cloudflare-ai-gateway-account-id','--cloudflare-ai-gateway-gateway-id','--anthropic-api-key','--openai-api-key','--mistral-api-key','--openrouter-api-key','--kilocode-api-key','--ai-gateway-api-key','--cloudflare-ai-gateway-api-key','--moonshot-api-key','--kimi-code-api-key','--gemini-api-key','--zai-api-key','--xiaomi-api-key','--minimax-api-key','--synthetic-api-key','--venice-api-key','--together-api-key','--huggingface-api-key','--opencode-zen-api-key','--xai-api-key','--litellm-api-key','--qianfan-api-key','--volcengine-api-key','--byteplus-api-key','--custom-base-url','--custom-api-key','--custom-model-id','--custom-provider-id','--custom-compatibility','--gateway-port','--gateway-bind','--gateway-auth','--gateway-token','--gateway-password','--remote-url','--remote-token','--tailscale','--tailscale-reset-on-exit','--install-daemon','--no-install-daemon','--skip-daemon','--daemon-runtime','--skip-channels','--skip-skills','--skip-health','--skip-ui','--node-manager','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -53,7 +60,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw config') {
- $completions = @('get','set','unset','--section')
+ $completions = @('get','set','unset','file','validate','--section')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -67,6 +74,13 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw config set') {
+ $completions = @('--strict-json','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw config validate') {
$completions = @('--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
@@ -109,7 +123,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw message send') {
- $completions = @('-m','-t','--media','--buttons','--card','--reply-to','--thread-id','--gif-playback','--silent','--channel','--account','--json','--dry-run','--verbose')
+ $completions = @('-m','-t','--media','--buttons','--components','--card','--reply-to','--thread-id','--gif-playback','--silent','--channel','--account','--json','--dry-run','--verbose')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -123,7 +137,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw message poll') {
- $completions = @('-t','--channel','--account','--json','--dry-run','--verbose','--poll-question','--poll-option','--poll-multi','--poll-duration-hours','-m')
+ $completions = @('-t','--channel','--account','--json','--dry-run','--verbose','--poll-question','--poll-option','--poll-multi','--poll-duration-hours','--poll-duration-seconds','--poll-anonymous','--poll-public','-m','--silent','--thread-id')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -410,7 +424,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw memory search') {
- $completions = @('--agent','--max-results','--min-score','--json')
+ $completions = @('--query','--agent','--max-results','--min-score','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -424,7 +438,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw agents') {
- $completions = @('list','add','set-identity','delete')
+ $completions = @('list','bindings','bind','unbind','add','set-identity','delete')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -437,6 +451,27 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
+ if ($commandPath -eq 'openclaw agents bindings') {
+ $completions = @('--agent','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw agents bind') {
+ $completions = @('--agent','--bind','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw agents unbind') {
+ $completions = @('--agent','--bind','--all','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
if ($commandPath -eq 'openclaw agents add') {
$completions = @('--workspace','--model','--agent-dir','--bind','--non-interactive','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
@@ -473,7 +508,14 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw sessions') {
- $completions = @('--json','--verbose','--store','--active')
+ $completions = @('cleanup','--json','--verbose','--store','--agent','--all-agents','--active')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw sessions cleanup') {
+ $completions = @('--store','--agent','--all-agents','--dry-run','--enforce','--fix-missing','--active-key','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -809,7 +851,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw browser set headers') {
- $completions = @('--json','--target-id')
+ $completions = @('--headers-json','--target-id')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -857,22 +899,15 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
- if ($commandPath -eq 'openclaw completion') {
- $completions = @('-s','-i','--write-state','-y')
- $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
- [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
- }
- }
-
if ($commandPath -eq 'openclaw acp') {
- $completions = @('client','--url','--token','--password','--session','--session-label','--require-existing','--reset-session','--no-prefix-cwd','--verbose')
+ $completions = @('client','--url','--token','--token-file','--password','--password-file','--session','--session-label','--require-existing','--reset-session','--no-prefix-cwd','-v')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
}
if ($commandPath -eq 'openclaw acp client') {
- $completions = @('--cwd','--server','--server-args','--server-verbose','--verbose')
+ $completions = @('--cwd','--server','--server-args','--server-verbose','-v')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1019,7 +1054,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw logs') {
- $completions = @('--limit','--max-bytes','--follow','--interval','--json','--plain','--no-color','--url','--token','--timeout','--expect-final')
+ $completions = @('--limit','--max-bytes','--follow','--interval','--json','--plain','--no-color','--local-time','--url','--token','--timeout','--expect-final')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1250,7 +1285,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw nodes') {
- $completions = @('status','describe','list','pending','approve','reject','rename','invoke','run','notify','canvas','camera','screen','location')
+ $completions = @('status','describe','list','pending','approve','reject','rename','invoke','run','notify','push','canvas','camera','screen','location')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1326,6 +1361,13 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
+ if ($commandPath -eq 'openclaw nodes push') {
+ $completions = @('--node','--title','--body','--environment','--url','--token','--timeout','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
if ($commandPath -eq 'openclaw nodes canvas') {
$completions = @('snapshot','present','hide','navigate','eval','a2ui')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
@@ -1446,7 +1488,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw devices') {
- $completions = @('list','approve','reject','rotate','revoke')
+ $completions = @('list','remove','clear','approve','reject','rotate','revoke')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1459,13 +1501,27 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
- if ($commandPath -eq 'openclaw devices approve') {
+ if ($commandPath -eq 'openclaw devices remove') {
$completions = @('--url','--token','--password','--timeout','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
}
+ if ($commandPath -eq 'openclaw devices clear') {
+ $completions = @('--pending','--yes','--url','--token','--password','--timeout','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw devices approve') {
+ $completions = @('--latest','--url','--token','--password','--timeout','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
if ($commandPath -eq 'openclaw devices reject') {
$completions = @('--url','--token','--password','--timeout','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
@@ -1593,7 +1649,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw cron add') {
- $completions = @('--name','--description','--disabled','--delete-after-run','--keep-after-run','--agent','--session','--wake','--at','--every','--cron','--tz','--system-event','--message','--thinking','--model','--timeout-seconds','--announce','--deliver','--no-deliver','--channel','--to','--best-effort-deliver','--json','--url','--token','--timeout','--expect-final')
+ $completions = @('--name','--description','--disabled','--delete-after-run','--keep-after-run','--agent','--session','--session-key','--wake','--at','--every','--cron','--tz','--stagger','--exact','--system-event','--message','--thinking','--model','--timeout-seconds','--light-context','--announce','--deliver','--no-deliver','--channel','--to','--account','--best-effort-deliver','--json','--url','--token','--timeout','--expect-final')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1635,7 +1691,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw cron edit') {
- $completions = @('--name','--description','--enable','--disable','--delete-after-run','--keep-after-run','--session','--agent','--clear-agent','--wake','--at','--every','--cron','--tz','--system-event','--message','--thinking','--model','--timeout-seconds','--announce','--deliver','--no-deliver','--channel','--to','--best-effort-deliver','--no-best-effort-deliver','--url','--token','--timeout','--expect-final')
+ $completions = @('--name','--description','--enable','--disable','--delete-after-run','--keep-after-run','--session','--agent','--clear-agent','--session-key','--clear-session-key','--wake','--at','--every','--cron','--tz','--stagger','--exact','--system-event','--message','--thinking','--model','--timeout-seconds','--light-context','--no-light-context','--announce','--deliver','--no-deliver','--channel','--to','--account','--best-effort-deliver','--no-best-effort-deliver','--failure-alert','--no-failure-alert','--failure-alert-after','--failure-alert-channel','--failure-alert-to','--failure-alert-cooldown','--failure-alert-mode','--failure-alert-account-id','--url','--token','--timeout','--expect-final')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1684,7 +1740,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw hooks install') {
- $completions = @('-l')
+ $completions = @('-l','--pin')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1725,6 +1781,27 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
+ if ($commandPath -eq 'openclaw qr') {
+ $completions = @('--remote','--url','--public-url','--token','--password','--setup-code-only','--no-ascii','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw clawbot') {
+ $completions = @('qr')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw clawbot qr') {
+ $completions = @('--remote','--url','--public-url','--token','--password','--setup-code-only','--no-ascii','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
if ($commandPath -eq 'openclaw pairing') {
$completions = @('list','approve')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
@@ -1733,21 +1810,21 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw pairing list') {
- $completions = @('--channel','--json')
+ $completions = @('--channel','--account','--json')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
}
if ($commandPath -eq 'openclaw pairing approve') {
- $completions = @('--channel','--notify')
+ $completions = @('--channel','--account','--notify')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
}
if ($commandPath -eq 'openclaw plugins') {
- $completions = @('list','info','enable','disable','install','update','doctor')
+ $completions = @('list','info','enable','disable','uninstall','install','update','doctor')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1767,8 +1844,15 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
+ if ($commandPath -eq 'openclaw plugins uninstall') {
+ $completions = @('--keep-files','--keep-config','--force','--dry-run')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
if ($commandPath -eq 'openclaw plugins install') {
- $completions = @('-l')
+ $completions = @('-l','--pin')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
@@ -1914,6 +1998,41 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
}
+ if ($commandPath -eq 'openclaw secrets') {
+ $completions = @('reload','audit','configure','apply')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw secrets reload') {
+ $completions = @('--json','--url','--token','--timeout','--expect-final')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw secrets audit') {
+ $completions = @('--check','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw secrets configure') {
+ $completions = @('--apply','--yes','--providers-only','--skip-provider-setup','--agent','--plan-out','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
+ if ($commandPath -eq 'openclaw secrets apply') {
+ $completions = @('--from','--dry-run','--json')
+ $completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
+ [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
+ }
+ }
+
if ($commandPath -eq 'openclaw skills') {
$completions = @('list','info','check')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
@@ -1943,7 +2062,7 @@ Register-ArgumentCompleter -Native -CommandName openclaw -ScriptBlock {
}
if ($commandPath -eq 'openclaw update') {
- $completions = @('wizard','status','--json','--no-restart','--channel','--tag','--timeout','--yes')
+ $completions = @('wizard','status','--json','--no-restart','--dry-run','--channel','--tag','--timeout','--yes')
$completions | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterName', $_)
}
diff --git a/completions/openclaw.zsh b/completions/openclaw.zsh
index bb1187a..208ccd1 100644
--- a/completions/openclaw.zsh
+++ b/completions/openclaw.zsh
@@ -9,13 +9,15 @@ _openclaw_root_completion() {
"(--version -V)"{--version,-V}"[output the version number]" \
"--dev[Dev profile: isolate state under ~/.openclaw-dev, default gateway port 19001, and shift derived ports (browser/canvas)]" \
"--profile[Use a named profile (isolates OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under ~/.openclaw-)]" \
+ "--log-level[Global log level override for file + console (silent|fatal|error|warn|info|debug|trace)]" \
"--no-color[Disable ANSI colors]" \
- "1: :_values 'command' 'setup[Initialize ~/.openclaw/openclaw.json and the agent workspace]' 'onboard[Interactive wizard to set up the gateway, workspace, and skills]' 'configure[Interactive prompt to set up credentials, devices, and agent defaults]' 'config[Config helpers (get/set/unset). Run without subcommand for the wizard.]' 'doctor[Health checks + quick fixes for the gateway and channels]' 'dashboard[Open the Control UI with your current token]' 'reset[Reset local config/state (keeps the CLI installed)]' 'uninstall[Uninstall the gateway service + local data (CLI remains)]' 'message[Send messages and channel actions]' 'memory[Memory search tools]' 'agent[Run an agent turn via the Gateway (use --local for embedded)]' 'agents[Manage isolated agents (workspaces + auth + routing)]' 'status[Show channel health and recent session recipients]' 'health[Fetch health from the running gateway]' 'sessions[List stored conversation sessions]' 'browser[Manage OpenClaw'\''s dedicated browser (Chrome/Chromium)]' 'completion[Generate shell completion script]' 'acp[Run an ACP bridge backed by the Gateway]' 'gateway[Run the WebSocket Gateway]' 'daemon[Manage the Gateway service (launchd/systemd/schtasks)]' 'logs[Tail gateway file logs via RPC]' 'system[System tools (events, heartbeat, presence)]' 'models[Model discovery, scanning, and configuration]' 'approvals[Manage exec approvals (gateway or node host)]' 'nodes[Manage gateway-owned node pairing]' 'devices[Device pairing and auth tokens]' 'node[Run a headless node host (system.run/system.which)]' 'sandbox[Manage sandbox containers (Docker-based agent isolation)]' 'tui[Open a terminal UI connected to the Gateway]' 'cron[Manage cron jobs (via Gateway)]' 'dns[DNS helpers for wide-area discovery (Tailscale + CoreDNS)]' 'docs[Search the live OpenClaw docs]' 'hooks[Manage internal agent hooks]' 'webhooks[Webhook helpers and integrations]' 'pairing[Secure DM pairing (approve inbound requests)]' 'plugins[Manage OpenClaw plugins/extensions]' 'channels[Manage chat channel accounts]' 'directory[Directory lookups (self, peers, groups) for channels that support it]' 'security[Security tools (audit)]' 'skills[List and inspect available skills]' 'update[Update OpenClaw to the latest version]'" \
+ "1: :_values 'command' 'completion[Generate shell completion script]' 'setup[Initialize ~/.openclaw/openclaw.json and the agent workspace]' 'onboard[Interactive wizard to set up the gateway, workspace, and skills]' 'configure[Interactive setup wizard for credentials, channels, gateway, and agent defaults]' 'config[Non-interactive config helpers (get/set/unset/file/validate). Run without subcommand for the setup wizard.]' 'doctor[Health checks + quick fixes for the gateway and channels]' 'dashboard[Open the Control UI with your current token]' 'reset[Reset local config/state (keeps the CLI installed)]' 'uninstall[Uninstall the gateway service + local data (CLI remains)]' 'message[Send, read, and manage messages and channel actions]' 'memory[Search, inspect, and reindex memory files]' 'agent[Run an agent turn via the Gateway (use --local for embedded)]' 'agents[Manage isolated agents (workspaces + auth + routing)]' 'status[Show channel health and recent session recipients]' 'health[Fetch health from the running gateway]' 'sessions[List stored conversation sessions]' 'browser[Manage OpenClaw'\''s dedicated browser (Chrome/Chromium)]' 'acp[Run an ACP bridge backed by the Gateway]' 'gateway[Run, inspect, and query the WebSocket Gateway]' 'daemon[Manage the Gateway service (launchd/systemd/schtasks)]' 'logs[Tail gateway file logs via RPC]' 'system[System tools (events, heartbeat, presence)]' 'models[Model discovery, scanning, and configuration]' 'approvals[Manage exec approvals (gateway or node host)]' 'nodes[Manage gateway-owned nodes (pairing, status, invoke, and media)]' 'devices[Device pairing and auth tokens]' 'node[Run and manage the headless node host service]' 'sandbox[Manage sandbox containers (Docker-based agent isolation)]' 'tui[Open a terminal UI connected to the Gateway]' 'cron[Manage cron jobs (via Gateway)]' 'dns[DNS helpers for wide-area discovery (Tailscale + CoreDNS)]' 'docs[Search the live OpenClaw docs]' 'hooks[Manage internal agent hooks]' 'webhooks[Webhook helpers and integrations]' 'qr[Generate an iOS pairing QR code and setup code]' 'clawbot[Legacy clawbot command aliases]' 'pairing[Secure DM pairing (approve inbound requests)]' 'plugins[Manage OpenClaw plugins and extensions]' 'channels[Manage connected chat channels and accounts]' 'directory[Lookup contact and group IDs (self, peers, groups) for supported chat channels]' 'security[Audit local config and state for common security foot-guns]' 'secrets[Secrets runtime controls]' 'skills[List and inspect available skills]' 'update[Update OpenClaw and inspect update channel status]'" \
"*::arg:->args"
case $state in
(args)
case $line[1] in
+ (completion) _openclaw_completion ;;
(setup) _openclaw_setup ;;
(onboard) _openclaw_onboard ;;
(configure) _openclaw_configure ;;
@@ -32,7 +34,6 @@ _openclaw_root_completion() {
(health) _openclaw_health ;;
(sessions) _openclaw_sessions ;;
(browser) _openclaw_browser ;;
- (completion) _openclaw_completion ;;
(acp) _openclaw_acp ;;
(gateway) _openclaw_gateway ;;
(daemon) _openclaw_daemon ;;
@@ -50,11 +51,14 @@ _openclaw_root_completion() {
(docs) _openclaw_docs ;;
(hooks) _openclaw_hooks ;;
(webhooks) _openclaw_webhooks ;;
+ (qr) _openclaw_qr ;;
+ (clawbot) _openclaw_clawbot ;;
(pairing) _openclaw_pairing ;;
(plugins) _openclaw_plugins ;;
(channels) _openclaw_channels ;;
(directory) _openclaw_directory ;;
(security) _openclaw_security ;;
+ (secrets) _openclaw_secrets ;;
(skills) _openclaw_skills ;;
(update) _openclaw_update ;;
esac
@@ -63,6 +67,14 @@ _openclaw_root_completion() {
}
+_openclaw_completion() {
+ _arguments -C \
+ "(--shell -s)"{--shell,-s}"[Shell to generate completion for (default: zsh)]" \
+ "(--install -i)"{--install,-i}"[Install completion script to shell profile]" \
+ "--write-state[Write completion scripts to $OPENCLAW_STATE_DIR/completions (no stdout)]" \
+ "(--yes -y)"{--yes,-y}"[Skip confirmation (non-interactive)]"
+}
+
_openclaw_setup() {
_arguments -C \
"--workspace[Agent workspace directory (default: ~/.openclaw/workspace; stored as agents.defaults.workspace)]" \
@@ -76,22 +88,26 @@ _openclaw_setup() {
_openclaw_onboard() {
_arguments -C \
"--workspace[Agent workspace directory (default: ~/.openclaw/workspace)]" \
- "--reset[Reset config + credentials + sessions + workspace before running wizard]" \
+ "--reset[Reset config + credentials + sessions before running wizard (workspace only with --reset-scope full)]" \
+ "--reset-scope[Reset scope: config|config+creds+sessions|full]" \
"--non-interactive[Run without prompts]" \
"--accept-risk[Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)]" \
"--flow[Wizard flow: quickstart|advanced|manual]" \
"--mode[Wizard mode: local|remote]" \
- "--auth-choice[Auth: setup-token|token|chutes|openai-codex|openai-api-key|xai-api-key|qianfan-api-key|openrouter-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|xiaomi-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|skip]" \
+ "--auth-choice[Auth: token|openai-codex|chutes|vllm|apiKey|openai-api-key|mistral-api-key|openrouter-api-key|kilocode-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|kimi-code-api-key|gemini-api-key|zai-api-key|xiaomi-api-key|minimax-api|synthetic-api-key|venice-api-key|together-api-key|huggingface-api-key|opencode-zen|xai-api-key|litellm-api-key|qianfan-api-key|volcengine-api-key|byteplus-api-key|moonshot-api-key-cn|github-copilot|gemini-api-key|google-gemini-cli|zai-api-key|zai-coding-global|zai-coding-cn|zai-global|zai-cn|xiaomi-api-key|minimax-portal|qwen-portal|copilot-proxy|apiKey|opencode-zen|minimax-api|minimax-api-key-cn|minimax-api-lightning|custom-api-key|skip|setup-token|oauth|claude-cli|codex-cli|minimax-cloud|minimax]" \
"--token-provider[Token provider id (non-interactive; used with --auth-choice token)]" \
"--token[Token value (non-interactive; used with --auth-choice token)]" \
"--token-profile-id[Auth profile id (non-interactive; default: :manual)]" \
"--token-expires-in[Optional token expiry duration (e.g. 365d, 12h)]" \
- "--anthropic-api-key[Anthropic API key]" \
- "--openai-api-key[OpenAI API key]" \
- "--openrouter-api-key[OpenRouter API key]" \
- "--ai-gateway-api-key[Vercel AI Gateway API key]" \
+ "--secret-input-mode[API key persistence mode: plaintext|ref (default: plaintext)]" \
"--cloudflare-ai-gateway-account-id[Cloudflare Account ID]" \
"--cloudflare-ai-gateway-gateway-id[Cloudflare AI Gateway ID]" \
+ "--anthropic-api-key[Anthropic API key]" \
+ "--openai-api-key[OpenAI API key]" \
+ "--mistral-api-key[Mistral API key]" \
+ "--openrouter-api-key[OpenRouter API key]" \
+ "--kilocode-api-key[Kilo Gateway API key]" \
+ "--ai-gateway-api-key[Vercel AI Gateway API key]" \
"--cloudflare-ai-gateway-api-key[Cloudflare AI Gateway API key]" \
"--moonshot-api-key[Moonshot API key]" \
"--kimi-code-api-key[Kimi Coding API key]" \
@@ -101,9 +117,19 @@ _openclaw_onboard() {
"--minimax-api-key[MiniMax API key]" \
"--synthetic-api-key[Synthetic API key]" \
"--venice-api-key[Venice API key]" \
+ "--together-api-key[Together AI API key]" \
+ "--huggingface-api-key[Hugging Face API key (HF token)]" \
"--opencode-zen-api-key[OpenCode Zen API key]" \
"--xai-api-key[xAI API key]" \
+ "--litellm-api-key[LiteLLM API key]" \
"--qianfan-api-key[QIANFAN API key]" \
+ "--volcengine-api-key[Volcano Engine API key]" \
+ "--byteplus-api-key[BytePlus API key]" \
+ "--custom-base-url[Custom provider base URL]" \
+ "--custom-api-key[Custom provider API key (optional)]" \
+ "--custom-model-id[Custom provider model ID]" \
+ "--custom-provider-id[Custom provider ID (optional; auto-derived by default)]" \
+ "--custom-compatibility[Custom provider API compatibility: openai|anthropic (default: openai)]" \
"--gateway-port[Gateway port]" \
"--gateway-bind[Gateway bind: loopback|tailnet|lan|auto|custom]" \
"--gateway-auth[Gateway auth: token|password]" \
@@ -137,7 +163,8 @@ _openclaw_config_get() {
_openclaw_config_set() {
_arguments -C \
- "--json[Parse value as JSON5 (required)]"
+ "--strict-json[Strict JSON5 parsing (error instead of raw string fallback)]" \
+ "--json[Legacy alias for --strict-json]"
}
_openclaw_config_unset() {
@@ -145,13 +172,23 @@ _openclaw_config_unset() {
}
+_openclaw_config_file() {
+ _arguments -C \
+
+}
+
+_openclaw_config_validate() {
+ _arguments -C \
+ "--json[Output validation result as JSON]"
+}
+
_openclaw_config() {
local -a commands
local -a options
_arguments -C \
"--section[Configure wizard sections (repeatable). Use with no subcommand.]" \
- "1: :_values 'command' 'get[Get a config value by dot path]' 'set[Set a config value by dot path]' 'unset[Remove a config value by dot path]'" \
+ "1: :_values 'command' 'get[Get a config value by dot path]' 'set[Set a config value by dot path]' 'unset[Remove a config value by dot path]' 'file[Print the active config file path]' 'validate[Validate the current config against the schema without starting the gateway]'" \
"*::arg:->args"
case $state in
@@ -160,6 +197,8 @@ _openclaw_config() {
(get) _openclaw_config_get ;;
(set) _openclaw_config_set ;;
(unset) _openclaw_config_unset ;;
+ (file) _openclaw_config_file ;;
+ (validate) _openclaw_config_validate ;;
esac
;;
esac
@@ -208,12 +247,13 @@ _openclaw_message_send() {
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
"--media[Attach media (image/audio/video/document). Accepts local paths or URLs.]" \
"--buttons[Telegram inline keyboard buttons as JSON (array of button rows)]" \
+ "--components[Discord components payload as JSON]" \
"--card[Adaptive Card JSON object (when supported by the channel)]" \
"--reply-to[Reply-to message id]" \
"--thread-id[Thread id (Telegram forum thread)]" \
"--gif-playback[Treat video media as GIF playback (WhatsApp only).]" \
- "--silent[Send message silently without notification (Telegram only)]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--silent[Send message silently without notification (Telegram + Discord)]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -222,7 +262,7 @@ _openclaw_message_send() {
_openclaw_message_broadcast() {
_arguments -C \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -235,7 +275,7 @@ _openclaw_message_broadcast() {
_openclaw_message_poll() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -243,14 +283,19 @@ _openclaw_message_poll() {
"--poll-question[Poll question]" \
"--poll-option[Poll option (repeat 2-12 times)]" \
"--poll-multi[Allow multiple selections]" \
- "--poll-duration-hours[Poll duration (Discord)]" \
- "(--message -m)"{--message,-m}"[Optional message body]"
+ "--poll-duration-hours[Poll duration in hours (Discord)]" \
+ "--poll-duration-seconds[Poll duration in seconds (Telegram; 5-600)]" \
+ "--poll-anonymous[Send an anonymous poll (Telegram)]" \
+ "--poll-public[Send a non-anonymous poll (Telegram)]" \
+ "(--message -m)"{--message,-m}"[Optional message body]" \
+ "--silent[Send poll silently without notification (Telegram + Discord where supported)]" \
+ "--thread-id[Thread id (Telegram forum topic / Slack thread ts)]"
}
_openclaw_message_react() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -267,7 +312,7 @@ _openclaw_message_react() {
_openclaw_message_reactions() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -279,7 +324,7 @@ _openclaw_message_reactions() {
_openclaw_message_read() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -296,7 +341,7 @@ _openclaw_message_edit() {
"--message-id[Message id]" \
"(--message -m)"{--message,-m}"[Message body]" \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -308,7 +353,7 @@ _openclaw_message_delete() {
_arguments -C \
"--message-id[Message id]" \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -318,7 +363,7 @@ _openclaw_message_delete() {
_openclaw_message_pin() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -329,7 +374,7 @@ _openclaw_message_pin() {
_openclaw_message_unpin() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -340,7 +385,7 @@ _openclaw_message_unpin() {
_openclaw_message_pins() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -351,7 +396,7 @@ _openclaw_message_pins() {
_openclaw_message_permissions() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -360,7 +405,7 @@ _openclaw_message_permissions() {
_openclaw_message_search() {
_arguments -C \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -378,7 +423,7 @@ _openclaw_message_thread_create() {
_arguments -C \
"--thread-name[Thread name]" \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -391,7 +436,7 @@ _openclaw_message_thread_create() {
_openclaw_message_thread_list() {
_arguments -C \
"--guild-id[Guild id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -406,7 +451,7 @@ _openclaw_message_thread_reply() {
_arguments -C \
"(--message -m)"{--message,-m}"[Message body]" \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -437,7 +482,7 @@ _openclaw_message_thread() {
_openclaw_message_emoji_list() {
_arguments -C \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -448,7 +493,7 @@ _openclaw_message_emoji_list() {
_openclaw_message_emoji_upload() {
_arguments -C \
"--guild-id[Guild id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -480,7 +525,7 @@ _openclaw_message_emoji() {
_openclaw_message_sticker_send() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -492,7 +537,7 @@ _openclaw_message_sticker_send() {
_openclaw_message_sticker_upload() {
_arguments -C \
"--guild-id[Guild id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -525,7 +570,7 @@ _openclaw_message_sticker() {
_openclaw_message_role_info() {
_arguments -C \
"--guild-id[Guild id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -537,7 +582,7 @@ _openclaw_message_role_add() {
"--guild-id[Guild id]" \
"--user-id[User id]" \
"--role-id[Role id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -549,7 +594,7 @@ _openclaw_message_role_remove() {
"--guild-id[Guild id]" \
"--user-id[User id]" \
"--role-id[Role id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -579,7 +624,7 @@ _openclaw_message_role() {
_openclaw_message_channel_info() {
_arguments -C \
"(--target -t)"{--target,-t}"[Recipient/channel: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord/Slack channel/user, or iMessage handle/chat_id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -589,7 +634,7 @@ _openclaw_message_channel_info() {
_openclaw_message_channel_list() {
_arguments -C \
"--guild-id[Guild id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -618,7 +663,7 @@ _openclaw_message_channel() {
_openclaw_message_member_info() {
_arguments -C \
"--user-id[User id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -648,7 +693,7 @@ _openclaw_message_voice_status() {
_arguments -C \
"--guild-id[Guild id]" \
"--user-id[User id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -676,7 +721,7 @@ _openclaw_message_voice() {
_openclaw_message_event_list() {
_arguments -C \
"--guild-id[Guild id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -688,7 +733,7 @@ _openclaw_message_event_create() {
"--guild-id[Guild id]" \
"--event-name[Event name]" \
"--start-time[Event start time]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -723,7 +768,7 @@ _openclaw_message_timeout() {
_arguments -C \
"--guild-id[Guild id]" \
"--user-id[User id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -737,7 +782,7 @@ _openclaw_message_kick() {
_arguments -C \
"--guild-id[Guild id]" \
"--user-id[User id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -749,7 +794,7 @@ _openclaw_message_ban() {
_arguments -C \
"--guild-id[Guild id]" \
"--user-id[User id]" \
- "--channel[Channel: telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon]" \
+ "--channel[Channel: telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon]" \
"--account[Channel account id (accountId)]" \
"--json[Output result as JSON]" \
"--dry-run[Print payload and skip sending]" \
@@ -817,6 +862,7 @@ _openclaw_memory_index() {
_openclaw_memory_search() {
_arguments -C \
+ "--query[Search query (alternative to positional argument)]" \
"--agent[Agent id (default: default agent)]" \
"--max-results[Max results]" \
"--min-score[Minimum score]" \
@@ -851,7 +897,7 @@ _openclaw_agent() {
"--agent[Agent id (overrides routing bindings)]" \
"--thinking[Thinking level: off | minimal | low | medium | high]" \
"--verbose[Persist agent verbose level for the session]" \
- "--channel[Delivery channel: last|telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon (default: whatsapp)]" \
+ "--channel[Delivery channel: last|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon (omit to use the main session channel)]" \
"--reply-to[Delivery target override (separate from session routing)]" \
"--reply-channel[Delivery channel override (separate from routing)]" \
"--reply-account[Delivery account id override]" \
@@ -867,6 +913,27 @@ _openclaw_agents_list() {
"--bindings[Include routing bindings]"
}
+_openclaw_agents_bindings() {
+ _arguments -C \
+ "--agent[Filter by agent id]" \
+ "--json[Output JSON instead of text]"
+}
+
+_openclaw_agents_bind() {
+ _arguments -C \
+ "--agent[Agent id (defaults to current default agent)]" \
+ "--bind[Binding to add (repeatable). If omitted, accountId is resolved by channel defaults/hooks.]" \
+ "--json[Output JSON summary]"
+}
+
+_openclaw_agents_unbind() {
+ _arguments -C \
+ "--agent[Agent id (defaults to current default agent)]" \
+ "--bind[Binding to remove (repeatable)]" \
+ "--all[Remove all bindings for this agent]" \
+ "--json[Output JSON summary]"
+}
+
_openclaw_agents_add() {
_arguments -C \
"--workspace[Workspace directory for the new agent]" \
@@ -902,13 +969,16 @@ _openclaw_agents() {
_arguments -C \
\
- "1: :_values 'command' 'list[List configured agents]' 'add[Add a new isolated agent]' 'set-identity[Update an agent identity (name/theme/emoji/avatar)]' 'delete[Delete an agent and prune workspace/state]'" \
+ "1: :_values 'command' 'list[List configured agents]' 'bindings[List routing bindings]' 'bind[Add routing bindings for an agent]' 'unbind[Remove routing bindings for an agent]' 'add[Add a new isolated agent]' 'set-identity[Update an agent identity (name/theme/emoji/avatar)]' 'delete[Delete an agent and prune workspace/state]'" \
"*::arg:->args"
case $state in
(args)
case $line[1] in
(list) _openclaw_agents_list ;;
+ (bindings) _openclaw_agents_bindings ;;
+ (bind) _openclaw_agents_bind ;;
+ (unbind) _openclaw_agents_unbind ;;
(add) _openclaw_agents_add ;;
(set-identity) _openclaw_agents_set_identity ;;
(delete) _openclaw_agents_delete ;;
@@ -936,12 +1006,39 @@ _openclaw_health() {
"--debug[Alias for --verbose]"
}
+_openclaw_sessions_cleanup() {
+ _arguments -C \
+ "--store[Path to session store (default: resolved from config)]" \
+ "--agent[Agent id to maintain (default: configured default agent)]" \
+ "--all-agents[Run maintenance across all configured agents]" \
+ "--dry-run[Preview maintenance actions without writing]" \
+ "--enforce[Apply maintenance even when configured mode is warn]" \
+ "--fix-missing[Remove store entries whose transcript files are missing (bypasses age/count retention)]" \
+ "--active-key[Protect this session key from budget-eviction]" \
+ "--json[Output JSON]"
+}
+
_openclaw_sessions() {
+ local -a commands
+ local -a options
+
_arguments -C \
"--json[Output as JSON]" \
"--verbose[Verbose logging]" \
"--store[Path to session store (default: resolved from config)]" \
- "--active[Only show sessions updated within the past N minutes]"
+ "--agent[Agent id to inspect (default: configured default agent)]" \
+ "--all-agents[Aggregate sessions across all configured agents]" \
+ "--active[Only show sessions updated within the past N minutes]" \
+ "1: :_values 'command' 'cleanup[Run session-store maintenance now]'" \
+ "*::arg:->args"
+
+ case $state in
+ (args)
+ case $line[1] in
+ (cleanup) _openclaw_sessions_cleanup ;;
+ esac
+ ;;
+ esac
}
_openclaw_browser_status() {
@@ -1243,7 +1340,7 @@ _openclaw_browser_trace_start() {
_openclaw_browser_trace_stop() {
_arguments -C \
- "--out[Output path for the trace zip]" \
+ "--out[Output path within openclaw temp dir (e.g. trace.zip or /tmp/openclaw/trace.zip)]" \
"--target-id[CDP target id (or unique prefix)]"
}
@@ -1397,7 +1494,7 @@ _openclaw_browser_set_offline() {
_openclaw_browser_set_headers() {
_arguments -C \
- "--json[JSON object of headers]" \
+ "--headers-json[JSON object of headers]" \
"--target-id[CDP target id (or unique prefix)]"
}
@@ -1524,14 +1621,6 @@ _openclaw_browser() {
esac
}
-_openclaw_completion() {
- _arguments -C \
- "(--shell -s)"{--shell,-s}"[Shell to generate completion for (default: zsh)]" \
- "(--install -i)"{--install,-i}"[Install completion script to shell profile]" \
- "--write-state[Write completion scripts to $OPENCLAW_STATE_DIR/completions (no stdout)]" \
- "(--yes -y)"{--yes,-y}"[Skip confirmation (non-interactive)]"
-}
-
_openclaw_acp_client() {
_arguments -C \
"--cwd[Working directory for the ACP session]" \
@@ -1548,7 +1637,9 @@ _openclaw_acp() {
_arguments -C \
"--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
"--token[Gateway token (if required)]" \
+ "--token-file[Read gateway token from file]" \
"--password[Gateway password (if required)]" \
+ "--password-file[Read gateway password from file]" \
"--session[Default session key (e.g. agent:main:main)]" \
"--session-label[Default session label to resolve]" \
"--require-existing[Fail if the session key/label does not exist]" \
@@ -1572,7 +1663,7 @@ _openclaw_gateway_run() {
"--port[Port for the gateway WebSocket]" \
"--bind[Bind mode (\"loopback\"|\"lan\"|\"tailnet\"|\"auto\"|\"custom\"). Defaults to config gateway.bind (or loopback).]" \
"--token[Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)]" \
- "--auth[Gateway auth mode (\"token\"|\"password\")]" \
+ "--auth[Gateway auth mode (\"none\"|\"token\"|\"password\"|\"trusted-proxy\")]" \
"--password[Password for auth mode=password]" \
"--tailscale[Tailscale exposure mode (\"off\"|\"serve\"|\"funnel\")]" \
"--tailscale-reset-on-exit[Reset Tailscale serve/funnel configuration on shutdown]" \
@@ -1686,7 +1777,7 @@ _openclaw_gateway() {
"--port[Port for the gateway WebSocket]" \
"--bind[Bind mode (\"loopback\"|\"lan\"|\"tailnet\"|\"auto\"|\"custom\"). Defaults to config gateway.bind (or loopback).]" \
"--token[Shared token required in connect.params.auth.token (default: OPENCLAW_GATEWAY_TOKEN env if set)]" \
- "--auth[Gateway auth mode (\"token\"|\"password\")]" \
+ "--auth[Gateway auth mode (\"none\"|\"token\"|\"password\"|\"trusted-proxy\")]" \
"--password[Password for auth mode=password]" \
"--tailscale[Tailscale exposure mode (\"off\"|\"serve\"|\"funnel\")]" \
"--tailscale-reset-on-exit[Reset Tailscale serve/funnel configuration on shutdown]" \
@@ -1795,6 +1886,7 @@ _openclaw_logs() {
"--json[Emit JSON log lines]" \
"--plain[Plain text output (no ANSI styling)]" \
"--no-color[Disable ANSI colors]" \
+ "--local-time[Display timestamps in local timezone]" \
"--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
"--token[Gateway token (if required)]" \
"--timeout[Timeout in ms]" \
@@ -2370,6 +2462,18 @@ _openclaw_nodes_notify() {
"--json[Output JSON]"
}
+_openclaw_nodes_push() {
+ _arguments -C \
+ "--node[Node id, name, or IP]" \
+ "--title[Push title]" \
+ "--body[Push body]" \
+ "--environment[Override APNs environment]" \
+ "--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
+ "--token[Gateway token (if required)]" \
+ "--timeout[Timeout in ms]" \
+ "--json[Output JSON]"
+}
+
_openclaw_nodes_canvas_snapshot() {
_arguments -C \
"--node[Node id, name, or IP]" \
@@ -2621,7 +2725,7 @@ _openclaw_nodes() {
_arguments -C \
\
- "1: :_values 'command' 'status[List known nodes with connection status and capabilities]' 'describe[Describe a node (capabilities + supported invoke commands)]' 'list[List pending and paired nodes]' 'pending[List pending pairing requests]' 'approve[Approve a pending pairing request]' 'reject[Reject a pending pairing request]' 'rename[Rename a paired node (display name override)]' 'invoke[Invoke a command on a paired node]' 'run[Run a shell command on a node (mac only)]' 'notify[Send a local notification on a node (mac only)]' 'canvas[Capture or render canvas content from a paired node]' 'camera[Capture camera media from a paired node]' 'screen[Capture screen recordings from a paired node]' 'location[Fetch location from a paired node]'" \
+ "1: :_values 'command' 'status[List known nodes with connection status and capabilities]' 'describe[Describe a node (capabilities + supported invoke commands)]' 'list[List pending and paired nodes]' 'pending[List pending pairing requests]' 'approve[Approve a pending pairing request]' 'reject[Reject a pending pairing request]' 'rename[Rename a paired node (display name override)]' 'invoke[Invoke a command on a paired node]' 'run[Run a shell command on a node (mac only)]' 'notify[Send a local notification on a node (mac only)]' 'push[Send an APNs test push to an iOS node]' 'canvas[Capture or render canvas content from a paired node]' 'camera[Capture camera media from a paired node]' 'screen[Capture screen recordings from a paired node]' 'location[Fetch location from a paired node]'" \
"*::arg:->args"
case $state in
@@ -2637,6 +2741,7 @@ _openclaw_nodes() {
(invoke) _openclaw_nodes_invoke ;;
(run) _openclaw_nodes_run ;;
(notify) _openclaw_nodes_notify ;;
+ (push) _openclaw_nodes_push ;;
(canvas) _openclaw_nodes_canvas ;;
(camera) _openclaw_nodes_camera ;;
(screen) _openclaw_nodes_screen ;;
@@ -2655,8 +2760,29 @@ _openclaw_devices_list() {
"--json[Output JSON]"
}
+_openclaw_devices_remove() {
+ _arguments -C \
+ "--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
+ "--token[Gateway token (if required)]" \
+ "--password[Gateway password (password auth)]" \
+ "--timeout[Timeout in ms]" \
+ "--json[Output JSON]"
+}
+
+_openclaw_devices_clear() {
+ _arguments -C \
+ "--pending[Also reject all pending pairing requests]" \
+ "--yes[Confirm destructive clear]" \
+ "--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
+ "--token[Gateway token (if required)]" \
+ "--password[Gateway password (password auth)]" \
+ "--timeout[Timeout in ms]" \
+ "--json[Output JSON]"
+}
+
_openclaw_devices_approve() {
_arguments -C \
+ "--latest[Approve the most recent pending request]" \
"--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
"--token[Gateway token (if required)]" \
"--password[Gateway password (password auth)]" \
@@ -2702,13 +2828,15 @@ _openclaw_devices() {
_arguments -C \
\
- "1: :_values 'command' 'list[List pending and paired devices]' 'approve[Approve a pending device pairing request]' 'reject[Reject a pending device pairing request]' 'rotate[Rotate a device token for a role]' 'revoke[Revoke a device token for a role]'" \
+ "1: :_values 'command' 'list[List pending and paired devices]' 'remove[Remove a paired device entry]' 'clear[Clear paired devices from the gateway table]' 'approve[Approve a pending device pairing request]' 'reject[Reject a pending device pairing request]' 'rotate[Rotate a device token for a role]' 'revoke[Revoke a device token for a role]'" \
"*::arg:->args"
case $state in
(args)
case $line[1] in
(list) _openclaw_devices_list ;;
+ (remove) _openclaw_devices_remove ;;
+ (clear) _openclaw_devices_clear ;;
(approve) _openclaw_devices_approve ;;
(reject) _openclaw_devices_reject ;;
(rotate) _openclaw_devices_rotate ;;
@@ -2867,21 +2995,26 @@ _openclaw_cron_add() {
"--keep-after-run[Keep one-shot job after it succeeds]" \
"--agent[Agent id for this job]" \
"--session[Session target (main|isolated)]" \
+ "--session-key[Session key for job routing (e.g. agent:my-agent:my-session)]" \
"--wake[Wake mode (now|next-heartbeat)]" \
"--at[Run once at time (ISO) or +duration (e.g. 20m)]" \
"--every[Run every duration (e.g. 10m, 1h)]" \
- "--cron[Cron expression (5-field)]" \
+ "--cron[Cron expression (5-field or 6-field with seconds)]" \
"--tz[Timezone for cron expressions (IANA)]" \
+ "--stagger[Cron stagger window (e.g. 30s, 5m)]" \
+ "--exact[Disable cron staggering (set stagger to 0)]" \
"--system-event[System event payload (main session)]" \
"--message[Agent message payload]" \
"--thinking[Thinking level for agent jobs (off|minimal|low|medium|high)]" \
"--model[Model override for agent jobs (provider/model or alias)]" \
"--timeout-seconds[Timeout seconds for agent jobs]" \
+ "--light-context[Use lightweight bootstrap context for agent jobs]" \
"--announce[Announce summary to a chat (subagent-style)]" \
"--deliver[Deprecated (use --announce). Announces a summary to a chat.]" \
"--no-deliver[Disable announce delivery and skip main-session summary]" \
- "--channel[Delivery channel (last|feishu)]" \
+ "--channel[Delivery channel (last)]" \
"--to[Delivery destination (E.164, Telegram chatId, or Discord channel/user)]" \
+ "--account[Channel account id for delivery (multi-account setups)]" \
"--best-effort-deliver[Do not fail the job if delivery fails]" \
"--json[Output JSON]" \
"--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
@@ -2945,23 +3078,38 @@ _openclaw_cron_edit() {
"--session[Session target (main|isolated)]" \
"--agent[Set agent id]" \
"--clear-agent[Unset agent and use default]" \
+ "--session-key[Set session key for job routing]" \
+ "--clear-session-key[Unset session key]" \
"--wake[Wake mode (now|next-heartbeat)]" \
"--at[Set one-shot time (ISO) or duration like 20m]" \
"--every[Set interval duration like 10m]" \
"--cron[Set cron expression]" \
"--tz[Timezone for cron expressions (IANA)]" \
+ "--stagger[Cron stagger window (e.g. 30s, 5m)]" \
+ "--exact[Disable cron staggering (set stagger to 0)]" \
"--system-event[Set systemEvent payload]" \
"--message[Set agentTurn payload message]" \
"--thinking[Thinking level for agent jobs]" \
"--model[Model override for agent jobs]" \
"--timeout-seconds[Timeout seconds for agent jobs]" \
+ "--light-context[Enable lightweight bootstrap context for agent jobs]" \
+ "--no-light-context[Disable lightweight bootstrap context for agent jobs]" \
"--announce[Announce summary to a chat (subagent-style)]" \
"--deliver[Deprecated (use --announce). Announces a summary to a chat.]" \
"--no-deliver[Disable announce delivery]" \
- "--channel[Delivery channel (last|feishu)]" \
+ "--channel[Delivery channel (last)]" \
"--to[Delivery destination (E.164, Telegram chatId, or Discord channel/user)]" \
+ "--account[Channel account id for delivery (multi-account setups)]" \
"--best-effort-deliver[Do not fail job if delivery fails]" \
"--no-best-effort-deliver[Fail job when delivery fails]" \
+ "--failure-alert[Enable failure alerts for this job]" \
+ "--no-failure-alert[Disable failure alerts for this job]" \
+ "--failure-alert-after[Alert after N consecutive job errors]" \
+ "--failure-alert-channel[Failure alert channel (last)]" \
+ "--failure-alert-to[Failure alert destination]" \
+ "--failure-alert-cooldown[Minimum time between alerts (e.g. 1h, 30m)]" \
+ "--failure-alert-mode[Failure alert delivery mode (announce or webhook)]" \
+ "--failure-alert-account-id[Account ID for failure alert channel (multi-account setups)]" \
"--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
"--token[Gateway token (if required)]" \
"--timeout[Timeout in ms]" \
@@ -3052,7 +3200,8 @@ _openclaw_hooks_disable() {
_openclaw_hooks_install() {
_arguments -C \
- "(--link -l)"{--link,-l}"[Link a local path instead of copying]"
+ "(--link -l)"{--link,-l}"[Link a local path instead of copying]" \
+ "--pin[Record npm installs as exact resolved @]"
}
_openclaw_hooks_update() {
@@ -3165,15 +3314,59 @@ _openclaw_webhooks() {
esac
}
+_openclaw_qr() {
+ _arguments -C \
+ "--remote[Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)]" \
+ "--url[Override gateway URL used in the setup payload]" \
+ "--public-url[Override gateway public URL used in the setup payload]" \
+ "--token[Override gateway token for setup payload]" \
+ "--password[Override gateway password for setup payload]" \
+ "--setup-code-only[Print only the setup code]" \
+ "--no-ascii[Skip ASCII QR rendering]" \
+ "--json[Output JSON]"
+}
+
+_openclaw_clawbot_qr() {
+ _arguments -C \
+ "--remote[Use gateway.remote.url and gateway.remote token/password (ignores device-pair publicUrl)]" \
+ "--url[Override gateway URL used in the setup payload]" \
+ "--public-url[Override gateway public URL used in the setup payload]" \
+ "--token[Override gateway token for setup payload]" \
+ "--password[Override gateway password for setup payload]" \
+ "--setup-code-only[Print only the setup code]" \
+ "--no-ascii[Skip ASCII QR rendering]" \
+ "--json[Output JSON]"
+}
+
+_openclaw_clawbot() {
+ local -a commands
+ local -a options
+
+ _arguments -C \
+ \
+ "1: :_values 'command' 'qr[Generate an iOS pairing QR code and setup code]'" \
+ "*::arg:->args"
+
+ case $state in
+ (args)
+ case $line[1] in
+ (qr) _openclaw_clawbot_qr ;;
+ esac
+ ;;
+ esac
+}
+
_openclaw_pairing_list() {
_arguments -C \
"--channel[Channel (feishu)]" \
+ "--account[Account id (for multi-account channels)]" \
"--json[Print JSON]"
}
_openclaw_pairing_approve() {
_arguments -C \
"--channel[Channel (feishu)]" \
+ "--account[Account id (for multi-account channels)]" \
"--notify[Notify the requester on the same channel]"
}
@@ -3218,9 +3411,18 @@ _openclaw_plugins_disable() {
}
+_openclaw_plugins_uninstall() {
+ _arguments -C \
+ "--keep-files[Keep installed files on disk]" \
+ "--keep-config[Deprecated alias for --keep-files]" \
+ "--force[Skip confirmation prompt]" \
+ "--dry-run[Show what would be removed without making changes]"
+}
+
_openclaw_plugins_install() {
_arguments -C \
- "(--link -l)"{--link,-l}"[Link a local path instead of copying]"
+ "(--link -l)"{--link,-l}"[Link a local path instead of copying]" \
+ "--pin[Record npm installs as exact resolved @]"
}
_openclaw_plugins_update() {
@@ -3240,7 +3442,7 @@ _openclaw_plugins() {
_arguments -C \
\
- "1: :_values 'command' 'list[List discovered plugins]' 'info[Show plugin details]' 'enable[Enable a plugin in config]' 'disable[Disable a plugin in config]' 'install[Install a plugin (path, archive, or npm spec)]' 'update[Update installed plugins (npm installs only)]' 'doctor[Report plugin load issues]'" \
+ "1: :_values 'command' 'list[List discovered plugins]' 'info[Show plugin details]' 'enable[Enable a plugin in config]' 'disable[Disable a plugin in config]' 'uninstall[Uninstall a plugin]' 'install[Install a plugin (path, archive, or npm spec)]' 'update[Update installed plugins (npm installs only)]' 'doctor[Report plugin load issues]'" \
"*::arg:->args"
case $state in
@@ -3250,6 +3452,7 @@ _openclaw_plugins() {
(info) _openclaw_plugins_info ;;
(enable) _openclaw_plugins_enable ;;
(disable) _openclaw_plugins_disable ;;
+ (uninstall) _openclaw_plugins_uninstall ;;
(install) _openclaw_plugins_install ;;
(update) _openclaw_plugins_update ;;
(doctor) _openclaw_plugins_doctor ;;
@@ -3273,7 +3476,7 @@ _openclaw_channels_status() {
_openclaw_channels_capabilities() {
_arguments -C \
- "--channel[Channel (all|telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)]" \
+ "--channel[Channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)]" \
"--account[Account id (only with --channel)]" \
"--target[Channel target for permission audit (Discord channel:)]" \
"--timeout[Timeout in ms]" \
@@ -3282,7 +3485,7 @@ _openclaw_channels_capabilities() {
_openclaw_channels_resolve() {
_arguments -C \
- "--channel[Channel (telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)]" \
+ "--channel[Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)]" \
"--account[Account id (accountId)]" \
"--kind[Target kind (auto|user|group)]" \
"--json[Output JSON]"
@@ -3290,14 +3493,14 @@ _openclaw_channels_resolve() {
_openclaw_channels_logs() {
_arguments -C \
- "--channel[Channel (all|telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)]" \
+ "--channel[Channel (all|telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)]" \
"--lines[Number of lines (default: 200)]" \
"--json[Output JSON]"
}
_openclaw_channels_add() {
_arguments -C \
- "--channel[Channel (telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)]" \
+ "--channel[Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)]" \
"--account[Account id (default when omitted)]" \
"--name[Display name for this account]" \
"--token[Bot token (Telegram/Discord)]" \
@@ -3335,21 +3538,21 @@ _openclaw_channels_add() {
_openclaw_channels_remove() {
_arguments -C \
- "--channel[Channel (telegram|whatsapp|discord|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|zalouser|tlon)]" \
+ "--channel[Channel (telegram|whatsapp|discord|irc|googlechat|slack|signal|imessage|nostr|msteams|mattermost|nextcloud-talk|feishu|matrix|bluebubbles|line|zalo|wecom|zalouser|synology-chat|tlon)]" \
"--account[Account id (default when omitted)]" \
"--delete[Delete config entries (no prompt)]"
}
_openclaw_channels_login() {
_arguments -C \
- "--channel[Channel alias (default: whatsapp)]" \
+ "--channel[Channel alias (auto when only one is configured)]" \
"--account[Account id (accountId)]" \
"--verbose[Verbose connection logs]"
}
_openclaw_channels_logout() {
_arguments -C \
- "--channel[Channel alias (default: whatsapp)]" \
+ "--channel[Channel alias (auto when only one is configured)]" \
"--account[Account id (accountId)]"
}
@@ -3495,6 +3698,60 @@ _openclaw_security() {
esac
}
+_openclaw_secrets_reload() {
+ _arguments -C \
+ "--json[Output JSON]" \
+ "--url[Gateway WebSocket URL (defaults to gateway.remote.url when configured)]" \
+ "--token[Gateway token (if required)]" \
+ "--timeout[Timeout in ms]" \
+ "--expect-final[Wait for final response (agent)]"
+}
+
+_openclaw_secrets_audit() {
+ _arguments -C \
+ "--check[Exit non-zero when findings are present]" \
+ "--json[Output JSON]"
+}
+
+_openclaw_secrets_configure() {
+ _arguments -C \
+ "--apply[Apply changes immediately after preflight]" \
+ "--yes[Skip apply confirmation prompt]" \
+ "--providers-only[Configure secrets.providers only, skip credential mapping]" \
+ "--skip-provider-setup[Skip provider setup and only map credential fields to existing providers]" \
+ "--agent[Agent id for auth-profiles targets (default: configured default agent)]" \
+ "--plan-out[Write generated plan JSON to a file]" \
+ "--json[Output JSON]"
+}
+
+_openclaw_secrets_apply() {
+ _arguments -C \
+ "--from[Path to plan JSON]" \
+ "--dry-run[Validate/preflight only]" \
+ "--json[Output JSON]"
+}
+
+_openclaw_secrets() {
+ local -a commands
+ local -a options
+
+ _arguments -C \
+ \
+ "1: :_values 'command' 'reload[Re-resolve secret references and atomically swap runtime snapshot]' 'audit[Audit plaintext secrets, unresolved refs, and precedence drift]' 'configure[Interactive secrets helper (provider setup + SecretRef mapping + preflight)]' 'apply[Apply a previously generated secrets plan]'" \
+ "*::arg:->args"
+
+ case $state in
+ (args)
+ case $line[1] in
+ (reload) _openclaw_secrets_reload ;;
+ (audit) _openclaw_secrets_audit ;;
+ (configure) _openclaw_secrets_configure ;;
+ (apply) _openclaw_secrets_apply ;;
+ esac
+ ;;
+ esac
+}
+
_openclaw_skills_list() {
_arguments -C \
"--json[Output as JSON]" \
@@ -3550,6 +3807,7 @@ _openclaw_update() {
_arguments -C \
"--json[Output result as JSON]" \
"--no-restart[Skip restarting the gateway service after a successful update]" \
+ "--dry-run[Preview update actions without making changes]" \
"--channel[Persist update channel (git + npm)]" \
"--tag[Override npm dist-tag or version for this update]" \
"--timeout[Timeout for each update step in seconds (default: 1200)]" \
diff --git a/cron/jobs.json b/cron/jobs.json
index 5a2fd78..0688ab6 100644
--- a/cron/jobs.json
+++ b/cron/jobs.json
@@ -7,7 +7,7 @@
"name": "backup-openclaw-json",
"enabled": true,
"createdAtMs": 1772261581796,
- "updatedAtMs": 1772650831482,
+ "updatedAtMs": 1772737225286,
"schedule": {
"kind": "cron",
"expr": "0 3 * * *",
@@ -23,10 +23,10 @@
"mode": "announce"
},
"state": {
- "nextRunAtMs": 1772737200000,
- "lastRunAtMs": 1772650800011,
+ "nextRunAtMs": 1772823600000,
+ "lastRunAtMs": 1772737200033,
"lastStatus": "ok",
- "lastDurationMs": 31471,
+ "lastDurationMs": 25253,
"consecutiveErrors": 0
}
},
@@ -70,7 +70,7 @@
"name": "zq-knowledge-base-sync",
"enabled": true,
"createdAtMs": 1772551807455,
- "updatedAtMs": 1772650842881,
+ "updatedAtMs": 1772737228596,
"schedule": {
"expr": "0 3 * * *",
"kind": "cron",
@@ -83,10 +83,10 @@
"text": "执行知识库同步:bash ~/work/backup/zq-sync.sh"
},
"state": {
- "nextRunAtMs": 1772737200000,
- "lastRunAtMs": 1772650831482,
+ "nextRunAtMs": 1772823600000,
+ "lastRunAtMs": 1772737225286,
"lastStatus": "ok",
- "lastDurationMs": 11399,
+ "lastDurationMs": 3310,
"consecutiveErrors": 0
}
},
@@ -96,7 +96,7 @@
"name": "openclaw-backup",
"enabled": true,
"createdAtMs": 1772552362242,
- "updatedAtMs": 1772650864747,
+ "updatedAtMs": 1772737238212,
"schedule": {
"expr": "0 3 * * *",
"kind": "cron",
@@ -109,10 +109,10 @@
"text": "执行 OpenClaw 备份:bash ~/work/backup/git-auto-sync.sh"
},
"state": {
- "nextRunAtMs": 1772737200000,
- "lastRunAtMs": 1772650842881,
+ "nextRunAtMs": 1772823600000,
+ "lastRunAtMs": 1772737228596,
"lastStatus": "ok",
- "lastDurationMs": 21866,
+ "lastDurationMs": 9616,
"consecutiveErrors": 0
}
}
diff --git a/cron/jobs.json.bak b/cron/jobs.json.bak
index 5a2fd78..0688ab6 100644
--- a/cron/jobs.json.bak
+++ b/cron/jobs.json.bak
@@ -7,7 +7,7 @@
"name": "backup-openclaw-json",
"enabled": true,
"createdAtMs": 1772261581796,
- "updatedAtMs": 1772650831482,
+ "updatedAtMs": 1772737225286,
"schedule": {
"kind": "cron",
"expr": "0 3 * * *",
@@ -23,10 +23,10 @@
"mode": "announce"
},
"state": {
- "nextRunAtMs": 1772737200000,
- "lastRunAtMs": 1772650800011,
+ "nextRunAtMs": 1772823600000,
+ "lastRunAtMs": 1772737200033,
"lastStatus": "ok",
- "lastDurationMs": 31471,
+ "lastDurationMs": 25253,
"consecutiveErrors": 0
}
},
@@ -70,7 +70,7 @@
"name": "zq-knowledge-base-sync",
"enabled": true,
"createdAtMs": 1772551807455,
- "updatedAtMs": 1772650842881,
+ "updatedAtMs": 1772737228596,
"schedule": {
"expr": "0 3 * * *",
"kind": "cron",
@@ -83,10 +83,10 @@
"text": "执行知识库同步:bash ~/work/backup/zq-sync.sh"
},
"state": {
- "nextRunAtMs": 1772737200000,
- "lastRunAtMs": 1772650831482,
+ "nextRunAtMs": 1772823600000,
+ "lastRunAtMs": 1772737225286,
"lastStatus": "ok",
- "lastDurationMs": 11399,
+ "lastDurationMs": 3310,
"consecutiveErrors": 0
}
},
@@ -96,7 +96,7 @@
"name": "openclaw-backup",
"enabled": true,
"createdAtMs": 1772552362242,
- "updatedAtMs": 1772650864747,
+ "updatedAtMs": 1772737238212,
"schedule": {
"expr": "0 3 * * *",
"kind": "cron",
@@ -109,10 +109,10 @@
"text": "执行 OpenClaw 备份:bash ~/work/backup/git-auto-sync.sh"
},
"state": {
- "nextRunAtMs": 1772737200000,
- "lastRunAtMs": 1772650842881,
+ "nextRunAtMs": 1772823600000,
+ "lastRunAtMs": 1772737228596,
"lastStatus": "ok",
- "lastDurationMs": 21866,
+ "lastDurationMs": 9616,
"consecutiveErrors": 0
}
}
diff --git a/devices/paired.json b/devices/paired.json
index a4f29ed..b8412e4 100644
--- a/devices/paired.json
+++ b/devices/paired.json
@@ -3,8 +3,8 @@
"deviceId": "a12f851ec2a179ca97d45b204bc3788476f062520fa77c5edef5cd054a176b1e",
"publicKey": "Ka6zP7u6MzDaQBqOpXHYUBC5MYLlVGGZM8vIi11WnTw",
"platform": "linux",
- "clientId": "cli",
- "clientMode": "cli",
+ "clientId": "gateway-client",
+ "clientMode": "backend",
"role": "operator",
"roles": [
"operator"
@@ -24,11 +24,12 @@
"operator.pairing"
],
"createdAtMs": 1770807648254,
- "lastUsedAtMs": 1772727130886
+ "lastUsedAtMs": 1772764450581
}
},
"createdAtMs": 1770807648254,
"approvedAtMs": 1770807648254,
- "remoteIp": "192.168.1.36"
+ "remoteIp": "192.168.1.36",
+ "displayName": "agent"
}
}
\ No newline at end of file
diff --git a/identity/device-auth.json b/identity/device-auth.json
index 384655c..d47f3fe 100644
--- a/identity/device-auth.json
+++ b/identity/device-auth.json
@@ -10,7 +10,7 @@
"operator.approvals",
"operator.pairing"
],
- "updatedAtMs": 1772727130891
+ "updatedAtMs": 1772765893136
}
}
}
diff --git a/openclaw.json b/openclaw.json
index ac8886b..269ff44 100644
--- a/openclaw.json
+++ b/openclaw.json
@@ -1,7 +1,7 @@
{
"meta": {
- "lastTouchedVersion": "2026.2.9",
- "lastTouchedAt": "2026-03-03T15:31:40.861Z"
+ "lastTouchedVersion": "2026.3.2",
+ "lastTouchedAt": "2026-03-06T02:48:05.962Z"
},
"wizard": {
"lastRunAt": "2026-02-13T15:47:05.928Z",
@@ -135,7 +135,7 @@
"alias": "k2p5"
}
},
- "workspace":"~/.openclaw/agents/haonan/workspace",
+ "workspace": "/home/starmen1265/.openclaw/agents/haonan/workspace",
"compaction": {
"mode": "safeguard"
},
@@ -147,7 +147,7 @@
"list": [
{
"id": "haonan",
- "workspace":"~/.openclaw/agents/haonan/workspace",
+ "workspace": "/home/starmen1265/.openclaw/agents/haonan/workspace",
"skills": [
"common-require",
"capability-evolver",
@@ -156,7 +156,7 @@
},
{
"id": "knowledge-base",
- "workspace":"~/.openclaw/agents/knowledge-base/workspace",
+ "workspace": "/home/starmen1265/.openclaw/agents/knowledge-base/workspace",
"skills": [
"common-require",
"kb-workflow",
@@ -166,7 +166,7 @@
},
{
"id": "dev-assist",
- "workspace":"~/.openclaw/agents/dev-assist/workspace",
+ "workspace": "/home/starmen1265/.openclaw/agents/dev-assist/workspace",
"skills": [
"common-require",
"clawlist",
@@ -176,7 +176,7 @@
},
{
"id": "ui-designer",
- "workspace":"~/.openclaw/agents/ui-designer/workspace",
+ "workspace": "/home/starmen1265/.openclaw/agents/ui-designer/workspace",
"skills": [
"common-require",
"capability-evolver",
@@ -185,7 +185,7 @@
},
{
"id": "thinker",
- "workspace":"~/.openclaw/agents/thinker/workspace",
+ "workspace": "/home/starmen1265/.openclaw/agents/thinker/workspace",
"skills": [
"common-require",
"capability-evolver",
@@ -272,7 +272,8 @@
"commands": {
"native": "auto",
"nativeSkills": "auto",
- "restart": true
+ "restart": true,
+ "ownerDisplay": "raw"
},
"approvals": {
"exec": {
@@ -356,6 +357,10 @@
"mode": "local",
"bind": "lan",
"controlUi": {
+ "allowedOrigins": [
+ "http://localhost:18789",
+ "http://127.0.0.1:18789"
+ ],
"allowInsecureAuth": true
},
"auth": {
@@ -396,8 +401,8 @@
"source": "npm",
"spec": "@m1heng-clawd/feishu",
"installPath": "/home/starmen1265/.openclaw/extensions/feishu",
- "version": "0.1.9",
- "installedAt": "2026-02-12T16:31:18.854Z"
+ "version": "0.1.15",
+ "installedAt": "2026-03-06T02:47:51.601Z"
},
"wecom": {
"source": "npm",