Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
68 KiB
JSON

{"repo": "aradotso/hermes-skills", "files": {"skills/deepseek-openclaw-config-generator/SKILL.md": {"2f0e04e027cec427122defaac8f12cf00245de9c": {"t": 1785746577.505746, "n": 10991, "h": "6d7bd2f0d93ee41c", "c": "---\nname: deepseek-openclaw-config-generator\ndescription: Build and configure DeepSeek model integrations with OpenClaw agent framework using this local-first web app.\ntriggers:\n - how do I connect DeepSeek to OpenClaw\n - generate OpenClaw config for DeepSeek\n - set up DeepSeek model with OpenClaw\n - create DeepSeek OpenClaw onboarding command\n - configure DeepSeek API for OpenClaw agent\n - which DeepSeek model should I use with OpenClaw\n - show me DeepSeek OpenClaw configuration\n - help with DeepSeek OpenClaw integration\n---\n\n# DeepSeek OpenClaw Config Generator\n\n> Skill by [ara.so](https://ara.so) — Hermes Skills collection.\n\nDeepSeek OpenClaw is a local-first web application for generating OpenClaw configuration assets tailored to DeepSeek models. It provides a UI for selecting models, generating onboarding commands, and creating redacted config snippets without sending API keys to any backend.\n\n## What It Does\n\n- **Model Catalog**: Browse DeepSeek models with recommended use cases for OpenClaw workflows\n- **Command Generator**: Create copy-ready OpenClaw onboarding commands\n- **Config Preview**: Generate redacted OpenClaw configuration snippets\n- **Security-First**: All processing happens client-side; secrets never leave the browser\n- **OpenClaw Integration**: Streamlines the setup of DeepSeek as an OpenClaw provider\n\n## Installation\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/LawmakerTreasure/deepseek-openclaw.git\ncd deepseek-openclaw\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n### Production Deployment\n\n```bash\n# Build static assets\nnpm run build\n\n# Deploy dist/ folder to your hosting provider\n# (GitHub Pages, Netlify, Vercel, etc.)\n```\n\n## DeepSeek Models for OpenClaw\n\nThe app includes these model references:\n\n| Model ID | Best For |\n|----------|----------|\n| `deepseek/deepseek-v4-flash` | Fast, everyday automation and lightweight tasks |\n| `deepseek/deepseek-v4-pro` | Complex coding, planning, and reasoning workflows |\n| `deepseek/deepseek-chat` | General conversational interfaces |\n| `deepseek/deepseek-reasoner` | Deep reasoning and multi-step problem solving |\n\nAlways verify model availability against current DeepSeek and OpenClaw documentation.\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file for local configuration (never commit this file):\n\n```bash\n# DeepSeek API key (optional for local dev)\nDEEPSEEK_API_KEY=your_key_here\n```\n\nIn production, use environment variable references:\n\n```bash\nexport DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### OpenClaw Onboarding Command\n\nThe app generates commands like:\n\n```bash\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-flash \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### OpenClaw Config Snippet\n\nGenerated configuration follows OpenClaw's JSON structure:\n\n```json\n{\n \"env\": {\n \"DEEPSEEK_API_KEY\": \"${DEEPSEEK_API_KEY}\"\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-flash\"\n }\n }\n }\n}\n```\n\n## Code Examples\n\n### React Component Structure (TypeScript)\n\nThe main configuration generator component:\n\n```typescript\nimport { useState } from 'react';\nimport { DeepSeekModel, OpenClawConfig } from './types';\nimport { generateOpenClawCommand, generateConfigSnippet } from './openclaw';\nimport { deepSeekModels } from './models';\n\nfunction ConfigGenerator() {\n const [apiKey, setApiKey] = useState('');\n const [selectedModel, setSelectedModel] = useState<DeepSeekModel>('deepseek/deepseek-v4-flash');\n const [verbose, setVerbose] = useState(false);\n\n const command = generateOpenClawCommand({\n apiKey,\n model: selectedModel,\n verbose,\n });\n\n const config = generateConfigSnippet({\n apiKey,\n model: selectedModel,\n });\n\n return (\n <div className=\"generator\">\n <input\n type=\"password\"\n placeholder=\"DeepSeek API Key\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n />\n <select\n value={selectedModel}\n onChange={(e) => setSelectedModel(e.target.value as DeepSeekModel)}\n >\n {deepSeekModels.map((model) => (\n <option key={model.id} value={model.id}>\n {model.name}\n </option>\n ))}\n </select>\n <label>\n <input\n type=\"checkbox\"\n checked={verbose}\n onChange={(e) => setVerbose(e.target.checked)}\n />\n Verbose mode\n </label>\n <pre>{command}</pre>\n <pre>{config}</pre>\n </div>\n );\n}\n```\n\n### Model Data Structure\n\n```typescript\n// src/models.ts\nexport interface ModelInfo {\n id: string;\n name: string;\n description: string;\n useCase: string;\n}\n\nexport const deepSeekModels: ModelInfo[] = [\n {\n id: 'deepseek/deepseek-v4-flash',\n name: 'DeepSeek V4 Flash',\n description: 'Fast and efficient for everyday tasks',\n useCase: 'Default choice for automation and quick responses',\n },\n {\n id: 'deepseek/deepseek-v4-pro',\n name: 'DeepSeek V4 Pro',\n description: 'Advanced reasoning for complex coding',\n useCase: 'Multi-file refactoring, architecture planning',\n },\n {\n id: 'deepseek/deepseek-chat',\n name: 'DeepSeek Chat',\n description: 'General conversational model',\n useCase: 'Customer support, casual interactions',\n },\n {\n id: 'deepseek/deepseek-reasoner',\n name: 'DeepSeek Reasoner',\n description: 'Deep reasoning and problem solving',\n useCase: 'Research, debugging, logical analysis',\n },\n];\n```\n\n### Command Generation Logic\n\n```typescript\n// src/openclaw.ts\nexport interface CommandOptions {\n apiKey: string;\n model: string;\n verbose?: boolean;\n}\n\nexport function generateOpenClawCommand(options: CommandOptions): string {\n const { apiKey, model, verbose } = options;\n const keyValue = apiKey ? apiKey : '${DEEPSEEK_API_KEY}';\n const verboseFlag = verbose ? ' \\\\\\n --verbose' : '';\n\n return `openclaw onboard \\\\\n --provider deepseek \\\\\n --model ${model} \\\\\n --env DEEPSEEK_API_KEY=\"${keyValue}\"${verboseFlag}`;\n}\n\nexport function generateConfigSnippet(options: CommandOptions): string {\n const { apiKey, model } = options;\n const redactedKey = apiKey ? 'sk-***redacted***' : '${DEEPSEEK_API_KEY}';\n\n const config = {\n env: {\n DEEPSEEK_API_KEY: redactedKey,\n },\n agents: {\n defaults: {\n model: {\n primary: model,\n },\n },\n },\n };\n\n return JSON.stringify(config, null, 2);\n}\n```\n\n### Type Definitions\n\n```typescript\n// src/types.ts\nexport type DeepSeekModel =\n | 'deepseek/deepseek-v4-flash'\n | 'deepseek/deepseek-v4-pro'\n | 'deepseek/deepseek-chat'\n | 'deepseek/deepseek-reasoner';\n\nexport interface OpenClawConfig {\n env: {\n DEEPSEEK_API_KEY: string;\n };\n agents: {\n defaults: {\n model: {\n primary: DeepSeekModel;\n };\n };\n };\n}\n```\n\n## Common Patterns\n\n### Pattern 1: Quick Setup for Simple Automation\n\n```bash\n# Use V4 Flash for fast, lightweight agent tasks\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-flash \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### Pattern 2: Complex Coding Tasks\n\n```bash\n# Use V4 Pro for multi-file refactoring and architecture work\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-pro \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\" \\\n --verbose\n```\n\n### Pattern 3: Reasoning-Heavy Workflows\n\n```bash\n# Use DeepSeek Reasoner for debugging and analysis\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-reasoner \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### Pattern 4: Multiple Model Configuration\n\n```json\n{\n \"env\": {\n \"DEEPSEEK_API_KEY\": \"${DEEPSEEK_API_KEY}\"\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-flash\",\n \"fallback\": \"deepseek/deepseek-chat\"\n }\n },\n \"research\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-reasoner\"\n }\n },\n \"coding\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-pro\"\n }\n }\n }\n}\n```\n\n## Security Best Practices\n\n### Never Commit Secrets\n\n```bash\n# Always use environment variables\nexport DEEPSEEK_API_KEY=\"your-actual-key\"\n\n# Or use a .env file (add to .gitignore)\necho \"DEEPSEEK_API_KEY=your-actual-key\" >> .env\necho \".env\" >> .gitignore\n```\n\n### Redaction in UI\n\n```typescript\nfunction redactApiKey(key: string): string {\n if (!key) return '${DEEPSEEK_API_KEY}';\n return 'sk-***redacted***';\n}\n```\n\n### OpenClaw Channel Security\n\n```json\n{\n \"channels\": {\n \"slack\": {\n \"allowlist\": [\"@specific-user\"],\n \"mentionRequired\": true\n }\n }\n}\n```\n\n## Troubleshooting\n\n### Issue: \"Model not found\"\n\n**Solution**: Verify the model ID against current DeepSeek documentation. Model names may change between versions.\n\n```bash\n# Check available models via DeepSeek API\ncurl https://api.deepseek.com/v1/models \\\n -H \"Authorization: Bearer ${DEEPSEEK_API_KEY}\"\n```\n\n### Issue: \"API key invalid\"\n\n**Solution**: Ensure your key is correctly set and has the necessary permissions.\n\n```bash\n# Test API key\ncurl https://api.deepseek.com/v1/chat/completions \\\n -H \"Authorization: Bearer ${DEEPSEEK_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"model\":\"deepseek-chat\",\"messages\":[{\"role\":\"user\",\"content\":\"test\"}]}'\n```\n\n### Issue: Build fails with TypeScript errors\n\n**Solution**: Ensure all dependencies are installed and TypeScript config is correct.\n\n```bash\n# Reinstall dependencies\nrm -rf node_modules package-lock.json\nnpm install\n\n# Check TypeScript version\nnpx tsc --version\n\n# Run type check\nnpx tsc --noEmit\n```\n\n### Issue: OpenClaw command doesn't work\n\n**Solution**: Verify OpenClaw installation and provider support.\n\n```bash\n# Check OpenClaw version\nopenclaw --version\n\n# List available providers\nopenclaw providers list\n\n# Verify DeepSeek provider is installed\nopenclaw providers info deepseek\n```\n\n## References\n\n- **OpenClaw Documentation**: https://docs.openclaw.ai/\n- **OpenClaw DeepSeek Provider**: https://docs.openclaw.ai/providers/deepseek\n- **DeepSeek API Documentation**: https://api-docs.deepseek.com/\n- **DeepSeek OpenClaw Integration**: https://api-docs.deepseek.com/quick_start/agent_integrations/openclaw\n\n## Project Structure\n\n```\ndeepseek-openclaw/\n├── src/\n│ ├── App.tsx # Main application component\n│ ├── main.tsx # React entry point\n│ ├── models.ts # DeepSeek model definitions\n│ ├── openclaw.ts # Command and config generators\n│ ├── types.ts # TypeScript type definitions\n│ └── styles.css # Global styles\n├── .env.example # Environment variable template\n├── vite.config.ts # Vite build configuration\n├── tsconfig.json # TypeScript configuration\n└── package.json # Dependencies and scripts\n```\n"}, "ab614ae2b6f8d27bd54868a0511e8518f6463844": {"t": 1785765917.7699533, "n": 10991, "h": "6d7bd2f0d93ee41c", "c": "---\nname: deepseek-openclaw-config-generator\ndescription: Build and configure DeepSeek model integrations with OpenClaw agent framework using this local-first web app.\ntriggers:\n - how do I connect DeepSeek to OpenClaw\n - generate OpenClaw config for DeepSeek\n - set up DeepSeek model with OpenClaw\n - create DeepSeek OpenClaw onboarding command\n - configure DeepSeek API for OpenClaw agent\n - which DeepSeek model should I use with OpenClaw\n - show me DeepSeek OpenClaw configuration\n - help with DeepSeek OpenClaw integration\n---\n\n# DeepSeek OpenClaw Config Generator\n\n> Skill by [ara.so](https://ara.so) — Hermes Skills collection.\n\nDeepSeek OpenClaw is a local-first web application for generating OpenClaw configuration assets tailored to DeepSeek models. It provides a UI for selecting models, generating onboarding commands, and creating redacted config snippets without sending API keys to any backend.\n\n## What It Does\n\n- **Model Catalog**: Browse DeepSeek models with recommended use cases for OpenClaw workflows\n- **Command Generator**: Create copy-ready OpenClaw onboarding commands\n- **Config Preview**: Generate redacted OpenClaw configuration snippets\n- **Security-First**: All processing happens client-side; secrets never leave the browser\n- **OpenClaw Integration**: Streamlines the setup of DeepSeek as an OpenClaw provider\n\n## Installation\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/LawmakerTreasure/deepseek-openclaw.git\ncd deepseek-openclaw\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n### Production Deployment\n\n```bash\n# Build static assets\nnpm run build\n\n# Deploy dist/ folder to your hosting provider\n# (GitHub Pages, Netlify, Vercel, etc.)\n```\n\n## DeepSeek Models for OpenClaw\n\nThe app includes these model references:\n\n| Model ID | Best For |\n|----------|----------|\n| `deepseek/deepseek-v4-flash` | Fast, everyday automation and lightweight tasks |\n| `deepseek/deepseek-v4-pro` | Complex coding, planning, and reasoning workflows |\n| `deepseek/deepseek-chat` | General conversational interfaces |\n| `deepseek/deepseek-reasoner` | Deep reasoning and multi-step problem solving |\n\nAlways verify model availability against current DeepSeek and OpenClaw documentation.\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file for local configuration (never commit this file):\n\n```bash\n# DeepSeek API key (optional for local dev)\nDEEPSEEK_API_KEY=your_key_here\n```\n\nIn production, use environment variable references:\n\n```bash\nexport DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### OpenClaw Onboarding Command\n\nThe app generates commands like:\n\n```bash\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-flash \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### OpenClaw Config Snippet\n\nGenerated configuration follows OpenClaw's JSON structure:\n\n```json\n{\n \"env\": {\n \"DEEPSEEK_API_KEY\": \"${DEEPSEEK_API_KEY}\"\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-flash\"\n }\n }\n }\n}\n```\n\n## Code Examples\n\n### React Component Structure (TypeScript)\n\nThe main configuration generator component:\n\n```typescript\nimport { useState } from 'react';\nimport { DeepSeekModel, OpenClawConfig } from './types';\nimport { generateOpenClawCommand, generateConfigSnippet } from './openclaw';\nimport { deepSeekModels } from './models';\n\nfunction ConfigGenerator() {\n const [apiKey, setApiKey] = useState('');\n const [selectedModel, setSelectedModel] = useState<DeepSeekModel>('deepseek/deepseek-v4-flash');\n const [verbose, setVerbose] = useState(false);\n\n const command = generateOpenClawCommand({\n apiKey,\n model: selectedModel,\n verbose,\n });\n\n const config = generateConfigSnippet({\n apiKey,\n model: selectedModel,\n });\n\n return (\n <div className=\"generator\">\n <input\n type=\"password\"\n placeholder=\"DeepSeek API Key\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n />\n <select\n value={selectedModel}\n onChange={(e) => setSelectedModel(e.target.value as DeepSeekModel)}\n >\n {deepSeekModels.map((model) => (\n <option key={model.id} value={model.id}>\n {model.name}\n </option>\n ))}\n </select>\n <label>\n <input\n type=\"checkbox\"\n checked={verbose}\n onChange={(e) => setVerbose(e.target.checked)}\n />\n Verbose mode\n </label>\n <pre>{command}</pre>\n <pre>{config}</pre>\n </div>\n );\n}\n```\n\n### Model Data Structure\n\n```typescript\n// src/models.ts\nexport interface ModelInfo {\n id: string;\n name: string;\n description: string;\n useCase: string;\n}\n\nexport const deepSeekModels: ModelInfo[] = [\n {\n id: 'deepseek/deepseek-v4-flash',\n name: 'DeepSeek V4 Flash',\n description: 'Fast and efficient for everyday tasks',\n useCase: 'Default choice for automation and quick responses',\n },\n {\n id: 'deepseek/deepseek-v4-pro',\n name: 'DeepSeek V4 Pro',\n description: 'Advanced reasoning for complex coding',\n useCase: 'Multi-file refactoring, architecture planning',\n },\n {\n id: 'deepseek/deepseek-chat',\n name: 'DeepSeek Chat',\n description: 'General conversational model',\n useCase: 'Customer support, casual interactions',\n },\n {\n id: 'deepseek/deepseek-reasoner',\n name: 'DeepSeek Reasoner',\n description: 'Deep reasoning and problem solving',\n useCase: 'Research, debugging, logical analysis',\n },\n];\n```\n\n### Command Generation Logic\n\n```typescript\n// src/openclaw.ts\nexport interface CommandOptions {\n apiKey: string;\n model: string;\n verbose?: boolean;\n}\n\nexport function generateOpenClawCommand(options: CommandOptions): string {\n const { apiKey, model, verbose } = options;\n const keyValue = apiKey ? apiKey : '${DEEPSEEK_API_KEY}';\n const verboseFlag = verbose ? ' \\\\\\n --verbose' : '';\n\n return `openclaw onboard \\\\\n --provider deepseek \\\\\n --model ${model} \\\\\n --env DEEPSEEK_API_KEY=\"${keyValue}\"${verboseFlag}`;\n}\n\nexport function generateConfigSnippet(options: CommandOptions): string {\n const { apiKey, model } = options;\n const redactedKey = apiKey ? 'sk-***redacted***' : '${DEEPSEEK_API_KEY}';\n\n const config = {\n env: {\n DEEPSEEK_API_KEY: redactedKey,\n },\n agents: {\n defaults: {\n model: {\n primary: model,\n },\n },\n },\n };\n\n return JSON.stringify(config, null, 2);\n}\n```\n\n### Type Definitions\n\n```typescript\n// src/types.ts\nexport type DeepSeekModel =\n | 'deepseek/deepseek-v4-flash'\n | 'deepseek/deepseek-v4-pro'\n | 'deepseek/deepseek-chat'\n | 'deepseek/deepseek-reasoner';\n\nexport interface OpenClawConfig {\n env: {\n DEEPSEEK_API_KEY: string;\n };\n agents: {\n defaults: {\n model: {\n primary: DeepSeekModel;\n };\n };\n };\n}\n```\n\n## Common Patterns\n\n### Pattern 1: Quick Setup for Simple Automation\n\n```bash\n# Use V4 Flash for fast, lightweight agent tasks\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-flash \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### Pattern 2: Complex Coding Tasks\n\n```bash\n# Use V4 Pro for multi-file refactoring and architecture work\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-pro \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\" \\\n --verbose\n```\n\n### Pattern 3: Reasoning-Heavy Workflows\n\n```bash\n# Use DeepSeek Reasoner for debugging and analysis\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-reasoner \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### Pattern 4: Multiple Model Configuration\n\n```json\n{\n \"env\": {\n \"DEEPSEEK_API_KEY\": \"${DEEPSEEK_API_KEY}\"\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-flash\",\n \"fallback\": \"deepseek/deepseek-chat\"\n }\n },\n \"research\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-reasoner\"\n }\n },\n \"coding\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-pro\"\n }\n }\n }\n}\n```\n\n## Security Best Practices\n\n### Never Commit Secrets\n\n```bash\n# Always use environment variables\nexport DEEPSEEK_API_KEY=\"your-actual-key\"\n\n# Or use a .env file (add to .gitignore)\necho \"DEEPSEEK_API_KEY=your-actual-key\" >> .env\necho \".env\" >> .gitignore\n```\n\n### Redaction in UI\n\n```typescript\nfunction redactApiKey(key: string): string {\n if (!key) return '${DEEPSEEK_API_KEY}';\n return 'sk-***redacted***';\n}\n```\n\n### OpenClaw Channel Security\n\n```json\n{\n \"channels\": {\n \"slack\": {\n \"allowlist\": [\"@specific-user\"],\n \"mentionRequired\": true\n }\n }\n}\n```\n\n## Troubleshooting\n\n### Issue: \"Model not found\"\n\n**Solution**: Verify the model ID against current DeepSeek documentation. Model names may change between versions.\n\n```bash\n# Check available models via DeepSeek API\ncurl https://api.deepseek.com/v1/models \\\n -H \"Authorization: Bearer ${DEEPSEEK_API_KEY}\"\n```\n\n### Issue: \"API key invalid\"\n\n**Solution**: Ensure your key is correctly set and has the necessary permissions.\n\n```bash\n# Test API key\ncurl https://api.deepseek.com/v1/chat/completions \\\n -H \"Authorization: Bearer ${DEEPSEEK_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"model\":\"deepseek-chat\",\"messages\":[{\"role\":\"user\",\"content\":\"test\"}]}'\n```\n\n### Issue: Build fails with TypeScript errors\n\n**Solution**: Ensure all dependencies are installed and TypeScript config is correct.\n\n```bash\n# Reinstall dependencies\nrm -rf node_modules package-lock.json\nnpm install\n\n# Check TypeScript version\nnpx tsc --version\n\n# Run type check\nnpx tsc --noEmit\n```\n\n### Issue: OpenClaw command doesn't work\n\n**Solution**: Verify OpenClaw installation and provider support.\n\n```bash\n# Check OpenClaw version\nopenclaw --version\n\n# List available providers\nopenclaw providers list\n\n# Verify DeepSeek provider is installed\nopenclaw providers info deepseek\n```\n\n## References\n\n- **OpenClaw Documentation**: https://docs.openclaw.ai/\n- **OpenClaw DeepSeek Provider**: https://docs.openclaw.ai/providers/deepseek\n- **DeepSeek API Documentation**: https://api-docs.deepseek.com/\n- **DeepSeek OpenClaw Integration**: https://api-docs.deepseek.com/quick_start/agent_integrations/openclaw\n\n## Project Structure\n\n```\ndeepseek-openclaw/\n├── src/\n│ ├── App.tsx # Main application component\n│ ├── main.tsx # React entry point\n│ ├── models.ts # DeepSeek model definitions\n│ ├── openclaw.ts # Command and config generators\n│ ├── types.ts # TypeScript type definitions\n│ └── styles.css # Global styles\n├── .env.example # Environment variable template\n├── vite.config.ts # Vite build configuration\n├── tsconfig.json # TypeScript configuration\n└── package.json # Dependencies and scripts\n```\n"}, "2592162d446da5035dfbe510f52f9b209ef1b972": {"t": 1786068475.2909944, "n": 10991, "h": "6d7bd2f0d93ee41c", "c": "---\nname: deepseek-openclaw-config-generator\ndescription: Build and configure DeepSeek model integrations with OpenClaw agent framework using this local-first web app.\ntriggers:\n - how do I connect DeepSeek to OpenClaw\n - generate OpenClaw config for DeepSeek\n - set up DeepSeek model with OpenClaw\n - create DeepSeek OpenClaw onboarding command\n - configure DeepSeek API for OpenClaw agent\n - which DeepSeek model should I use with OpenClaw\n - show me DeepSeek OpenClaw configuration\n - help with DeepSeek OpenClaw integration\n---\n\n# DeepSeek OpenClaw Config Generator\n\n> Skill by [ara.so](https://ara.so) — Hermes Skills collection.\n\nDeepSeek OpenClaw is a local-first web application for generating OpenClaw configuration assets tailored to DeepSeek models. It provides a UI for selecting models, generating onboarding commands, and creating redacted config snippets without sending API keys to any backend.\n\n## What It Does\n\n- **Model Catalog**: Browse DeepSeek models with recommended use cases for OpenClaw workflows\n- **Command Generator**: Create copy-ready OpenClaw onboarding commands\n- **Config Preview**: Generate redacted OpenClaw configuration snippets\n- **Security-First**: All processing happens client-side; secrets never leave the browser\n- **OpenClaw Integration**: Streamlines the setup of DeepSeek as an OpenClaw provider\n\n## Installation\n\n### Local Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/LawmakerTreasure/deepseek-openclaw.git\ncd deepseek-openclaw\n\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n### Production Deployment\n\n```bash\n# Build static assets\nnpm run build\n\n# Deploy dist/ folder to your hosting provider\n# (GitHub Pages, Netlify, Vercel, etc.)\n```\n\n## DeepSeek Models for OpenClaw\n\nThe app includes these model references:\n\n| Model ID | Best For |\n|----------|----------|\n| `deepseek/deepseek-v4-flash` | Fast, everyday automation and lightweight tasks |\n| `deepseek/deepseek-v4-pro` | Complex coding, planning, and reasoning workflows |\n| `deepseek/deepseek-chat` | General conversational interfaces |\n| `deepseek/deepseek-reasoner` | Deep reasoning and multi-step problem solving |\n\nAlways verify model availability against current DeepSeek and OpenClaw documentation.\n\n## Configuration\n\n### Environment Variables\n\nCreate a `.env` file for local configuration (never commit this file):\n\n```bash\n# DeepSeek API key (optional for local dev)\nDEEPSEEK_API_KEY=your_key_here\n```\n\nIn production, use environment variable references:\n\n```bash\nexport DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### OpenClaw Onboarding Command\n\nThe app generates commands like:\n\n```bash\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-flash \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### OpenClaw Config Snippet\n\nGenerated configuration follows OpenClaw's JSON structure:\n\n```json\n{\n \"env\": {\n \"DEEPSEEK_API_KEY\": \"${DEEPSEEK_API_KEY}\"\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-flash\"\n }\n }\n }\n}\n```\n\n## Code Examples\n\n### React Component Structure (TypeScript)\n\nThe main configuration generator component:\n\n```typescript\nimport { useState } from 'react';\nimport { DeepSeekModel, OpenClawConfig } from './types';\nimport { generateOpenClawCommand, generateConfigSnippet } from './openclaw';\nimport { deepSeekModels } from './models';\n\nfunction ConfigGenerator() {\n const [apiKey, setApiKey] = useState('');\n const [selectedModel, setSelectedModel] = useState<DeepSeekModel>('deepseek/deepseek-v4-flash');\n const [verbose, setVerbose] = useState(false);\n\n const command = generateOpenClawCommand({\n apiKey,\n model: selectedModel,\n verbose,\n });\n\n const config = generateConfigSnippet({\n apiKey,\n model: selectedModel,\n });\n\n return (\n <div className=\"generator\">\n <input\n type=\"password\"\n placeholder=\"DeepSeek API Key\"\n value={apiKey}\n onChange={(e) => setApiKey(e.target.value)}\n />\n <select\n value={selectedModel}\n onChange={(e) => setSelectedModel(e.target.value as DeepSeekModel)}\n >\n {deepSeekModels.map((model) => (\n <option key={model.id} value={model.id}>\n {model.name}\n </option>\n ))}\n </select>\n <label>\n <input\n type=\"checkbox\"\n checked={verbose}\n onChange={(e) => setVerbose(e.target.checked)}\n />\n Verbose mode\n </label>\n <pre>{command}</pre>\n <pre>{config}</pre>\n </div>\n );\n}\n```\n\n### Model Data Structure\n\n```typescript\n// src/models.ts\nexport interface ModelInfo {\n id: string;\n name: string;\n description: string;\n useCase: string;\n}\n\nexport const deepSeekModels: ModelInfo[] = [\n {\n id: 'deepseek/deepseek-v4-flash',\n name: 'DeepSeek V4 Flash',\n description: 'Fast and efficient for everyday tasks',\n useCase: 'Default choice for automation and quick responses',\n },\n {\n id: 'deepseek/deepseek-v4-pro',\n name: 'DeepSeek V4 Pro',\n description: 'Advanced reasoning for complex coding',\n useCase: 'Multi-file refactoring, architecture planning',\n },\n {\n id: 'deepseek/deepseek-chat',\n name: 'DeepSeek Chat',\n description: 'General conversational model',\n useCase: 'Customer support, casual interactions',\n },\n {\n id: 'deepseek/deepseek-reasoner',\n name: 'DeepSeek Reasoner',\n description: 'Deep reasoning and problem solving',\n useCase: 'Research, debugging, logical analysis',\n },\n];\n```\n\n### Command Generation Logic\n\n```typescript\n// src/openclaw.ts\nexport interface CommandOptions {\n apiKey: string;\n model: string;\n verbose?: boolean;\n}\n\nexport function generateOpenClawCommand(options: CommandOptions): string {\n const { apiKey, model, verbose } = options;\n const keyValue = apiKey ? apiKey : '${DEEPSEEK_API_KEY}';\n const verboseFlag = verbose ? ' \\\\\\n --verbose' : '';\n\n return `openclaw onboard \\\\\n --provider deepseek \\\\\n --model ${model} \\\\\n --env DEEPSEEK_API_KEY=\"${keyValue}\"${verboseFlag}`;\n}\n\nexport function generateConfigSnippet(options: CommandOptions): string {\n const { apiKey, model } = options;\n const redactedKey = apiKey ? 'sk-***redacted***' : '${DEEPSEEK_API_KEY}';\n\n const config = {\n env: {\n DEEPSEEK_API_KEY: redactedKey,\n },\n agents: {\n defaults: {\n model: {\n primary: model,\n },\n },\n },\n };\n\n return JSON.stringify(config, null, 2);\n}\n```\n\n### Type Definitions\n\n```typescript\n// src/types.ts\nexport type DeepSeekModel =\n | 'deepseek/deepseek-v4-flash'\n | 'deepseek/deepseek-v4-pro'\n | 'deepseek/deepseek-chat'\n | 'deepseek/deepseek-reasoner';\n\nexport interface OpenClawConfig {\n env: {\n DEEPSEEK_API_KEY: string;\n };\n agents: {\n defaults: {\n model: {\n primary: DeepSeekModel;\n };\n };\n };\n}\n```\n\n## Common Patterns\n\n### Pattern 1: Quick Setup for Simple Automation\n\n```bash\n# Use V4 Flash for fast, lightweight agent tasks\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-flash \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### Pattern 2: Complex Coding Tasks\n\n```bash\n# Use V4 Pro for multi-file refactoring and architecture work\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-v4-pro \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\" \\\n --verbose\n```\n\n### Pattern 3: Reasoning-Heavy Workflows\n\n```bash\n# Use DeepSeek Reasoner for debugging and analysis\nopenclaw onboard \\\n --provider deepseek \\\n --model deepseek/deepseek-reasoner \\\n --env DEEPSEEK_API_KEY=\"${DEEPSEEK_API_KEY}\"\n```\n\n### Pattern 4: Multiple Model Configuration\n\n```json\n{\n \"env\": {\n \"DEEPSEEK_API_KEY\": \"${DEEPSEEK_API_KEY}\"\n },\n \"agents\": {\n \"defaults\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-flash\",\n \"fallback\": \"deepseek/deepseek-chat\"\n }\n },\n \"research\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-reasoner\"\n }\n },\n \"coding\": {\n \"model\": {\n \"primary\": \"deepseek/deepseek-v4-pro\"\n }\n }\n }\n}\n```\n\n## Security Best Practices\n\n### Never Commit Secrets\n\n```bash\n# Always use environment variables\nexport DEEPSEEK_API_KEY=\"your-actual-key\"\n\n# Or use a .env file (add to .gitignore)\necho \"DEEPSEEK_API_KEY=your-actual-key\" >> .env\necho \".env\" >> .gitignore\n```\n\n### Redaction in UI\n\n```typescript\nfunction redactApiKey(key: string): string {\n if (!key) return '${DEEPSEEK_API_KEY}';\n return 'sk-***redacted***';\n}\n```\n\n### OpenClaw Channel Security\n\n```json\n{\n \"channels\": {\n \"slack\": {\n \"allowlist\": [\"@specific-user\"],\n \"mentionRequired\": true\n }\n }\n}\n```\n\n## Troubleshooting\n\n### Issue: \"Model not found\"\n\n**Solution**: Verify the model ID against current DeepSeek documentation. Model names may change between versions.\n\n```bash\n# Check available models via DeepSeek API\ncurl https://api.deepseek.com/v1/models \\\n -H \"Authorization: Bearer ${DEEPSEEK_API_KEY}\"\n```\n\n### Issue: \"API key invalid\"\n\n**Solution**: Ensure your key is correctly set and has the necessary permissions.\n\n```bash\n# Test API key\ncurl https://api.deepseek.com/v1/chat/completions \\\n -H \"Authorization: Bearer ${DEEPSEEK_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"model\":\"deepseek-chat\",\"messages\":[{\"role\":\"user\",\"content\":\"test\"}]}'\n```\n\n### Issue: Build fails with TypeScript errors\n\n**Solution**: Ensure all dependencies are installed and TypeScript config is correct.\n\n```bash\n# Reinstall dependencies\nrm -rf node_modules package-lock.json\nnpm install\n\n# Check TypeScript version\nnpx tsc --version\n\n# Run type check\nnpx tsc --noEmit\n```\n\n### Issue: OpenClaw command doesn't work\n\n**Solution**: Verify OpenClaw installation and provider support.\n\n```bash\n# Check OpenClaw version\nopenclaw --version\n\n# List available providers\nopenclaw providers list\n\n# Verify DeepSeek provider is installed\nopenclaw providers info deepseek\n```\n\n## References\n\n- **OpenClaw Documentation**: https://docs.openclaw.ai/\n- **OpenClaw DeepSeek Provider**: https://docs.openclaw.ai/providers/deepseek\n- **DeepSeek API Documentation**: https://api-docs.deepseek.com/\n- **DeepSeek OpenClaw Integration**: https://api-docs.deepseek.com/quick_start/agent_integrations/openclaw\n\n## Project Structure\n\n```\ndeepseek-openclaw/\n├── src/\n│ ├── App.tsx # Main application component\n│ ├── main.tsx # React entry point\n│ ├── models.ts # DeepSeek model definitions\n│ ├── openclaw.ts # Command and config generators\n│ ├── types.ts # TypeScript type definitions\n│ └── styles.css # Global styles\n├── .env.example # Environment variable template\n├── vite.config.ts # Vite build configuration\n├── tsconfig.json # TypeScript configuration\n└── package.json # Dependencies and scripts\n```\n"}}, "skills/awesome-openclaw-tutorial/SKILL.md": {"2f0e04e027cec427122defaac8f12cf00245de9c": {"t": 1786067813.8656375, "n": 16222, "h": "6a7b5f121eafafe1", "c": "---\nname: awesome-openclaw-tutorial\ndescription: OpenClaw AI工作助手完整中文教程 - 安装配置、Skills扩展、自动化工作流和实战案例\ntriggers:\n - how do I install and configure OpenClaw\n - show me OpenClaw skills and automation examples\n - help me set up OpenClaw with custom models\n - how to use OpenClaw for file management and knowledge base\n - OpenClaw integration with Feishu Slack or WeChat\n - troubleshoot OpenClaw gateway or API connection issues\n - OpenClaw Task Flow and webhooks configuration\n - create OpenClaw workflows for productivity automation\n---\n\n# awesome-openclaw-tutorial\n\n> Skill by [ara.so](https://ara.so) — Hermes Skills collection.\n\nComplete Chinese tutorial for OpenClaw - an AI-powered work assistant. Covers installation, configuration, Skills ecosystem, automation workflows, API integration, and practical use cases for solo entrepreneurs and teams.\n\n## What is OpenClaw?\n\nOpenClaw is an AI assistant framework that runs locally or in cloud, providing:\n- File management, knowledge base, and scheduling automation\n- 1800+ Skills for extending capabilities\n- Multi-platform integration (Feishu, Slack, WeChat, DingTalk, QQ)\n- Task automation with cron, Task Flow, and webhooks\n- Media generation (images, video, audio, TTS) via `openclaw infer`\n- Active Memory and Memory Wiki for context retention\n\n**Current stable version**: v2026.4.14 \n**Recommended runtime**: Node 24 (minimum Node 22.16+)\n\n## Quick Installation\n\n### Method 1: One-Click Deployment (Recommended for Beginners)\n\n**Feishu Miaoda** (Free, 1M tokens/day):\n```bash\n# Visit https://awesome.tryopenclaw.asia/\n# Click \"Feishu Miaoda\" deployment\n# Complete in 1 minute, no server needed\n```\n\n**Baota Panel** (Free plugin, visual management):\n```bash\n# Install Baota Panel first\n# Add \"OpenClaw\" plugin from marketplace\n# One-click install and configure\n```\n\n### Method 2: Standard Installation\n\n```bash\n# Install via npm (Node 22.16+ required)\nnpm install -g openclaw\n\n# Or via yarn\nyarn global add openclaw\n\n# Initialize and onboard\nopenclaw onboard\n\n# Start gateway\nopenclaw gateway start\n```\n\n### Method 3: Docker\n\n```bash\n# Pull latest image\ndocker pull openclaw/openclaw:latest\n\n# Run with environment variables\ndocker run -d \\\n -e OPENCLAW_TZ=Asia/Shanghai \\\n -e OPENCLAW_API_KEY=$OPENCLAW_API_KEY \\\n -p 3000:3000 \\\n -v ~/.openclaw:/root/.openclaw \\\n openclaw/openclaw:latest\n\n# Check status\ndocker ps\n```\n\n## Configuration\n\n### Model Authentication (2026.4+ Standard)\n\n```bash\n# Login to model providers (replaces old local-* skills)\nopenclaw models auth login --provider anthropic\nopenclaw models auth login --provider openai\nopenclaw models auth login --provider gemini\n\n# List authenticated providers\nopenclaw models auth list\n\n# Set default model\nopenclaw config set model.default \"claude-3-5-sonnet-20241022\"\n\n# Enable fast mode (cheaper, faster for OpenAI/Anthropic)\n# User says: /fast\n```\n\n### Gateway Authentication (Required since v2026.3.7)\n\n```bash\n# Set authentication mode (token or password)\nopenclaw config set gateway.auth.mode token\nopenclaw config set gateway.auth.token \"${OPENCLAW_GATEWAY_TOKEN}\"\n\n# Restart gateway\nopenclaw gateway restart\n```\n\n### Tools Profile (Fix \"AI can't do anything\" issue)\n\n```bash\n# Set to 'full' for complete toolset including command execution\nopenclaw config set tools.profile full\n\n# Profile options:\n# - messaging: only chat and session management\n# - default: standard tools (no command exec)\n# - coding: programming tools\n# - full: complete toolset (RECOMMENDED)\n# - all: everything enabled\n\nopenclaw gateway restart\n```\n\n### Active Memory and Memory Wiki (2026.4+ Mainline)\n\n```bash\n# Enable Active Memory (retrieves context before replies)\nopenclaw config set memory.active.enabled true\n\n# Enable Dreaming (background memory consolidation)\nopenclaw config set memory.dreaming.enabled true\n\n# Enable Memory Wiki (structured knowledge claims)\nopenclaw config set memory.wiki.enabled true\n\n# Configure memory retention\nopenclaw config set memory.retention.days 90\n```\n\n## Key Commands\n\n### Core CLI\n\n```bash\n# Check version\nopenclaw --version\n\n# Show current config\nopenclaw config list\n\n# Set config value\nopenclaw config set <key> <value>\n\n# Gateway control\nopenclaw gateway start\nopenclaw gateway stop\nopenclaw gateway restart\nopenclaw gateway status\n\n# Model inference (unified interface)\nopenclaw infer text \"Explain quantum computing\"\nopenclaw infer image \"A red panda in space\" --model dall-e-3\nopenclaw infer video \"Ocean waves\" --provider runway\nopenclaw infer audio \"Calm piano music\" --provider suno\nopenclaw infer tts \"Hello world\" --voice nova\nopenclaw infer web \"https://example.com\"\nopenclaw infer embedding \"Document text to embed\"\n\n# Skills management (DEPRECATED in 2026.4+, use models auth instead)\n# clawhub search <query>\n# clawhub info <skill-name>\n# clawhub install <skill-name>\n```\n\n### Task Automation\n\n```bash\n# Create cron task (scheduled)\nopenclaw tasks create \\\n --name \"daily-summary\" \\\n --schedule \"0 18 * * *\" \\\n --command \"Generate daily summary and send to Feishu\"\n\n# Create Task Flow (persistent workflow)\nopenclaw tasks flow create \\\n --name \"content-pipeline\" \\\n --trigger webhook \\\n --steps \"research,write,review,publish\"\n\n# List tasks\nopenclaw tasks list\n\n# Create webhook endpoint\nopenclaw webhooks create \\\n --name \"github-pr-review\" \\\n --url \"/webhooks/github\" \\\n --action \"Review PR and comment\"\n\n# List webhooks\nopenclaw webhooks list\n```\n\n## Real Code Examples\n\n### Example 1: File Management Automation (Shell)\n\n```bash\n#!/bin/bash\n# Auto-organize downloads folder\n\n# User prompt to OpenClaw:\n# \"Organize my Downloads folder: move images to Images/, \n# PDFs to Documents/, and delete files older than 30 days\"\n\n# OpenClaw executes internally via file management tools\n# No manual scripting needed - AI handles the logic\n\n# For custom automation, use Task Flow:\nopenclaw tasks flow create \\\n --name \"organize-downloads\" \\\n --schedule \"0 2 * * *\" \\\n --steps \"scan_downloads,categorize_files,move_files,cleanup_old\"\n```\n\n### Example 2: Knowledge Base Integration (JavaScript/Node)\n\n```javascript\n// Add document to knowledge base\nconst { OpenClawClient } = require('openclaw-sdk');\n\nconst client = new OpenClawClient({\n apiKey: process.env.OPENCLAW_API_KEY,\n baseUrl: 'http://localhost:3000'\n});\n\nasync function addToKnowledgeBase(filePath, metadata) {\n try {\n const result = await client.knowledge.add({\n file: filePath,\n metadata: {\n tags: metadata.tags,\n source: metadata.source,\n category: metadata.category\n },\n activeMemory: true, // Enable Active Memory indexing\n memoryWiki: true // Add to Memory Wiki\n });\n \n console.log('Document added:', result.id);\n return result;\n } catch (error) {\n console.error('Failed to add document:', error.message);\n throw error;\n }\n}\n\n// Query knowledge base\nasync function searchKnowledge(query) {\n const results = await client.knowledge.search({\n query: query,\n limit: 10,\n useActiveMemory: true, // Include Active Memory context\n useMemoryWiki: true // Include Memory Wiki claims\n });\n \n return results;\n}\n\n// Example usage\naddToKnowledgeBase('./report.pdf', {\n tags: ['quarterly', 'finance'],\n source: 'internal',\n category: 'reports'\n});\n\nsearchKnowledge('Q4 revenue analysis').then(results => {\n console.log('Found:', results.length, 'documents');\n});\n```\n\n### Example 3: Feishu Bot Integration (JavaScript)\n\n```javascript\n// Feishu bot webhook handler\nconst express = require('express');\nconst app = express();\n\napp.post('/feishu/webhook', async (req, res) => {\n const event = req.body;\n \n if (event.type === 'message') {\n const userMessage = event.message.content;\n \n // Send to OpenClaw for processing\n const response = await fetch('http://localhost:3000/api/chat', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${process.env.OPENCLAW_API_KEY}`\n },\n body: JSON.stringify({\n message: userMessage,\n sessionId: event.message.chat_id,\n platform: 'feishu',\n useActiveMemory: true // Retrieve relevant context\n })\n });\n \n const result = await response.json();\n \n // Send response back to Feishu\n await sendFeishuMessage(event.message.chat_id, result.reply);\n }\n \n res.json({ success: true });\n});\n\napp.listen(3000);\n```\n\n### Example 4: Media Generation Workflow (Shell)\n\n```bash\n#!/bin/bash\n# Generate content pipeline: text -> image -> video\n\n# Step 1: Generate article\nARTICLE=$(openclaw infer text \"Write a 500-word article about sustainable energy\" \\\n --model gpt-4-turbo)\n\n# Step 2: Generate cover image\nopenclaw infer image \"Sustainable energy concept art, vibrant, professional\" \\\n --model dall-e-3 \\\n --size 1792x1024 \\\n --output cover.png\n\n# Step 3: Generate promotional video\nopenclaw infer video \"Solar panels in a green field, golden hour\" \\\n --provider runway \\\n --duration 5 \\\n --output promo.mp4\n\n# Step 4: Generate background music\nopenclaw infer audio \"Uplifting corporate background music\" \\\n --provider suno \\\n --duration 30 \\\n --output bgm.mp3\n\n# Step 5: Combine and publish\necho \"Content pipeline complete!\"\nls -lh cover.png promo.mp4 bgm.mp3\n```\n\n### Example 5: Task Flow with Webhooks (YAML)\n\n```yaml\n# ~/.openclaw/flows/content-approval.yaml\nname: content-approval-flow\ntrigger:\n type: webhook\n path: /webhooks/content-submit\n \nsteps:\n - name: review-content\n action: infer\n input: \"Review the submitted content for quality and compliance\"\n model: claude-3-5-sonnet-20241022\n \n - name: check-approval\n action: conditional\n condition: \"review.score > 8\"\n \n - name: publish\n action: webhook\n url: https://cms.example.com/publish\n method: POST\n headers:\n Authorization: \"Bearer ${CMS_API_KEY}\"\n body:\n content: \"{{ steps.review.content }}\"\n status: approved\n \n - name: notify\n action: send-message\n platform: feishu\n channel: \"${FEISHU_CHANNEL_ID}\"\n message: \"Content published: {{ steps.publish.url }}\"\n```\n\nLoad flow:\n```bash\nopenclaw tasks flow load ~/.openclaw/flows/content-approval.yaml\nopenclaw tasks flow start content-approval-flow\n```\n\n## Common Patterns\n\n### Pattern 1: Daily Automation Routine\n\n```bash\n# Create morning briefing task\nopenclaw tasks create \\\n --name \"morning-briefing\" \\\n --schedule \"0 8 * * *\" \\\n --command \"Generate morning briefing: check emails, calendar, news, weather. Send to Feishu.\"\n\n# Create evening summary task\nopenclaw tasks create \\\n --name \"evening-summary\" \\\n --schedule \"0 18 * * *\" \\\n --command \"Summarize today's work: meetings attended, tasks completed, files created. Archive to knowledge base.\"\n```\n\n### Pattern 2: Multi-Platform Sync\n\n```javascript\n// Sync message across platforms\nasync function syncMessage(message, platforms) {\n const results = await Promise.all(\n platforms.map(platform => \n client.messaging.send({\n platform: platform,\n channelId: process.env[`${platform.toUpperCase()}_CHANNEL_ID`],\n message: message,\n useActiveMemory: true\n })\n )\n );\n \n return results;\n}\n\n// Usage\nsyncMessage('Deployment complete for v2.0', ['feishu', 'slack', 'wechat']);\n```\n\n### Pattern 3: Knowledge Base -> Memory Wiki Pipeline\n\n```bash\n# User uploads document\nopenclaw knowledge add ./research-paper.pdf \\\n --tags \"AI,research\" \\\n --auto-extract-claims\n\n# OpenClaw automatically:\n# 1. Extracts text content\n# 2. Creates Memory Wiki claims with evidence\n# 3. Indexes for Active Memory retrieval\n# 4. Checks for contradictions with existing claims\n\n# Query across knowledge base and memory\nopenclaw infer text \"What are the latest findings on transformer models?\" \\\n --use-active-memory \\\n --use-memory-wiki\n```\n\n## Troubleshooting\n\n### Gateway Won't Start (2026.3.7+)\n\n**Symptom**: `Error: gateway.auth.mode must be set`\n\n**Fix**:\n```bash\nopenclaw config set gateway.auth.mode token\nopenclaw config set gateway.auth.token \"$(openssl rand -hex 32)\"\nopenclaw gateway restart\n```\n\n### AI Only Chats, Can't Execute Commands (2026.3.2+)\n\n**Symptom**: OpenClaw responds to questions but won't manage files or run commands\n\n**Fix**:\n```bash\n# Check current profile\nopenclaw config get tools.profile\n\n# Set to 'full' for complete toolset\nopenclaw config set tools.profile full\nopenclaw gateway restart\n```\n\n### Model Authentication Errors\n\n**Symptom**: `Model provider not authenticated`\n\n**Fix**:\n```bash\n# Re-authenticate (2026.4+ method)\nopenclaw models auth login --provider openai\nopenclaw models auth login --provider anthropic\n\n# Verify\nopenclaw models auth list\n\n# Set default\nopenclaw config set model.default \"claude-3-5-sonnet-20241022\"\n```\n\n### High API Costs\n\n**Solutions**:\n```bash\n# 1. Enable fast mode for OpenAI/Anthropic (cheaper)\nopenclaw config set model.fast_mode true\n\n# 2. Use local models with Ollama\nopenclaw models auth login --provider ollama\nopenclaw config set model.default \"llama3:70b\"\n\n# 3. Set token limits\nopenclaw config set model.max_tokens 4000\n\n# 4. Use Chinese domestic models (95% cost savings)\nopenclaw models auth login --provider deepseek\nopenclaw config set model.default \"deepseek-chat\"\n```\n\n### Active Memory Not Working\n\n**Symptom**: AI doesn't recall previous context\n\n**Fix**:\n```bash\n# Enable Active Memory\nopenclaw config set memory.active.enabled true\nopenclaw config set memory.dreaming.enabled true\n\n# Force memory refresh\nopenclaw memory rebuild\n\n# Check memory stats\nopenclaw memory stats\n\n# Restart gateway\nopenclaw gateway restart\n```\n\n### Task Flow Execution Failures\n\n**Symptom**: Workflows stuck or fail silently\n\n**Debug**:\n```bash\n# Check task logs\nopenclaw tasks logs <task-name>\n\n# Validate flow definition\nopenclaw tasks flow validate ~/.openclaw/flows/my-flow.yaml\n\n# Test individual steps\nopenclaw tasks flow test my-flow --step review-content\n\n# Enable debug mode\nopenclaw config set debug.tasks true\nopenclaw gateway restart\n```\n\n### ComfyUI Integration Issues\n\n**Symptom**: `infer image` fails with ComfyUI backend\n\n**Fix**:\n```bash\n# Install ComfyUI skill (if using pre-2026.4 setup)\n# Note: In 2026.4+, use built-in infer command instead\n\n# Verify ComfyUI is running\ncurl http://localhost:8188/system_stats\n\n# Set ComfyUI endpoint\nopenclaw config set comfyui.endpoint \"http://localhost:8188\"\n\n# Test connection\nopenclaw infer image \"test\" --provider comfyui\n```\n\n### Windows Specific Issues\n\n**Symptom**: Black console window pops up on gateway restart\n\n**Fix**: Upgrade to v2026.3.13+ which fixes this issue\n\n```powershell\n# Update OpenClaw\nnpm update -g openclaw\n\n# Verify version\nopenclaw --version # Should be >= v2026.3.13\n```\n\n## Configuration Reference\n\nKey config paths in `~/.openclaw/config.json`:\n\n```json\n{\n \"model\": {\n \"default\": \"claude-3-5-sonnet-20241022\",\n \"fast_mode\": true,\n \"max_tokens\": 4000\n },\n \"gateway\": {\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"${OPENCLAW_GATEWAY_TOKEN}\"\n },\n \"port\": 3000\n },\n \"tools\": {\n \"profile\": \"full\"\n },\n \"memory\": {\n \"active\": {\n \"enabled\": true\n },\n \"dreaming\": {\n \"enabled\": true,\n \"schedule\": \"0 3 * * *\"\n },\n \"wiki\": {\n \"enabled\": true\n },\n \"retention\": {\n \"days\": 90\n }\n },\n \"platforms\": {\n \"feishu\": {\n \"app_id\": \"${FEISHU_APP_ID}\",\n \"app_secret\": \"${FEISHU_APP_SECRET}\"\n },\n \"slack\": {\n \"bot_token\": \"${SLACK_BOT_TOKEN}\"\n }\n }\n}\n```\n\n## Resources\n\n- **Official Tutorial**: https://awesome.tryopenclaw.asia/\n- **GitHub Repo**: https://github.com/xianyu110/awesome-openclaw-tutorial\n- **Skills Marketplace**: Search via `openclaw models auth` (2026.4+) or legacy `clawhub search`\n- **Quick Start Guide**: [Chapter 3 - Quick Start](docs/01-basics/03-quick-start.md)\n- **API Integration**: [Chapter 10 - API & External Capabilities](docs/03-advanced/10-api-integration.md)\n- **Task Flow Guide**: [Chapter 13 - Advanced Automation](docs/04-practical-cases/13-advanced-automation.md)\n\n**Important**: This tutorial tracks v2026.4.14 stable. Some legacy content (old skill names, deprecated commands) remains for reference. Always verify against current `openclaw --version` and official docs.\n"}, "2592162d446da5035dfbe510f52f9b209ef1b972": {"t": 1786068470.4024312, "n": 16222, "h": "6a7b5f121eafafe1", "c": "---\nname: awesome-openclaw-tutorial\ndescription: OpenClaw AI工作助手完整中文教程 - 安装配置、Skills扩展、自动化工作流和实战案例\ntriggers:\n - how do I install and configure OpenClaw\n - show me OpenClaw skills and automation examples\n - help me set up OpenClaw with custom models\n - how to use OpenClaw for file management and knowledge base\n - OpenClaw integration with Feishu Slack or WeChat\n - troubleshoot OpenClaw gateway or API connection issues\n - OpenClaw Task Flow and webhooks configuration\n - create OpenClaw workflows for productivity automation\n---\n\n# awesome-openclaw-tutorial\n\n> Skill by [ara.so](https://ara.so) — Hermes Skills collection.\n\nComplete Chinese tutorial for OpenClaw - an AI-powered work assistant. Covers installation, configuration, Skills ecosystem, automation workflows, API integration, and practical use cases for solo entrepreneurs and teams.\n\n## What is OpenClaw?\n\nOpenClaw is an AI assistant framework that runs locally or in cloud, providing:\n- File management, knowledge base, and scheduling automation\n- 1800+ Skills for extending capabilities\n- Multi-platform integration (Feishu, Slack, WeChat, DingTalk, QQ)\n- Task automation with cron, Task Flow, and webhooks\n- Media generation (images, video, audio, TTS) via `openclaw infer`\n- Active Memory and Memory Wiki for context retention\n\n**Current stable version**: v2026.4.14 \n**Recommended runtime**: Node 24 (minimum Node 22.16+)\n\n## Quick Installation\n\n### Method 1: One-Click Deployment (Recommended for Beginners)\n\n**Feishu Miaoda** (Free, 1M tokens/day):\n```bash\n# Visit https://awesome.tryopenclaw.asia/\n# Click \"Feishu Miaoda\" deployment\n# Complete in 1 minute, no server needed\n```\n\n**Baota Panel** (Free plugin, visual management):\n```bash\n# Install Baota Panel first\n# Add \"OpenClaw\" plugin from marketplace\n# One-click install and configure\n```\n\n### Method 2: Standard Installation\n\n```bash\n# Install via npm (Node 22.16+ required)\nnpm install -g openclaw\n\n# Or via yarn\nyarn global add openclaw\n\n# Initialize and onboard\nopenclaw onboard\n\n# Start gateway\nopenclaw gateway start\n```\n\n### Method 3: Docker\n\n```bash\n# Pull latest image\ndocker pull openclaw/openclaw:latest\n\n# Run with environment variables\ndocker run -d \\\n -e OPENCLAW_TZ=Asia/Shanghai \\\n -e OPENCLAW_API_KEY=$OPENCLAW_API_KEY \\\n -p 3000:3000 \\\n -v ~/.openclaw:/root/.openclaw \\\n openclaw/openclaw:latest\n\n# Check status\ndocker ps\n```\n\n## Configuration\n\n### Model Authentication (2026.4+ Standard)\n\n```bash\n# Login to model providers (replaces old local-* skills)\nopenclaw models auth login --provider anthropic\nopenclaw models auth login --provider openai\nopenclaw models auth login --provider gemini\n\n# List authenticated providers\nopenclaw models auth list\n\n# Set default model\nopenclaw config set model.default \"claude-3-5-sonnet-20241022\"\n\n# Enable fast mode (cheaper, faster for OpenAI/Anthropic)\n# User says: /fast\n```\n\n### Gateway Authentication (Required since v2026.3.7)\n\n```bash\n# Set authentication mode (token or password)\nopenclaw config set gateway.auth.mode token\nopenclaw config set gateway.auth.token \"${OPENCLAW_GATEWAY_TOKEN}\"\n\n# Restart gateway\nopenclaw gateway restart\n```\n\n### Tools Profile (Fix \"AI can't do anything\" issue)\n\n```bash\n# Set to 'full' for complete toolset including command execution\nopenclaw config set tools.profile full\n\n# Profile options:\n# - messaging: only chat and session management\n# - default: standard tools (no command exec)\n# - coding: programming tools\n# - full: complete toolset (RECOMMENDED)\n# - all: everything enabled\n\nopenclaw gateway restart\n```\n\n### Active Memory and Memory Wiki (2026.4+ Mainline)\n\n```bash\n# Enable Active Memory (retrieves context before replies)\nopenclaw config set memory.active.enabled true\n\n# Enable Dreaming (background memory consolidation)\nopenclaw config set memory.dreaming.enabled true\n\n# Enable Memory Wiki (structured knowledge claims)\nopenclaw config set memory.wiki.enabled true\n\n# Configure memory retention\nopenclaw config set memory.retention.days 90\n```\n\n## Key Commands\n\n### Core CLI\n\n```bash\n# Check version\nopenclaw --version\n\n# Show current config\nopenclaw config list\n\n# Set config value\nopenclaw config set <key> <value>\n\n# Gateway control\nopenclaw gateway start\nopenclaw gateway stop\nopenclaw gateway restart\nopenclaw gateway status\n\n# Model inference (unified interface)\nopenclaw infer text \"Explain quantum computing\"\nopenclaw infer image \"A red panda in space\" --model dall-e-3\nopenclaw infer video \"Ocean waves\" --provider runway\nopenclaw infer audio \"Calm piano music\" --provider suno\nopenclaw infer tts \"Hello world\" --voice nova\nopenclaw infer web \"https://example.com\"\nopenclaw infer embedding \"Document text to embed\"\n\n# Skills management (DEPRECATED in 2026.4+, use models auth instead)\n# clawhub search <query>\n# clawhub info <skill-name>\n# clawhub install <skill-name>\n```\n\n### Task Automation\n\n```bash\n# Create cron task (scheduled)\nopenclaw tasks create \\\n --name \"daily-summary\" \\\n --schedule \"0 18 * * *\" \\\n --command \"Generate daily summary and send to Feishu\"\n\n# Create Task Flow (persistent workflow)\nopenclaw tasks flow create \\\n --name \"content-pipeline\" \\\n --trigger webhook \\\n --steps \"research,write,review,publish\"\n\n# List tasks\nopenclaw tasks list\n\n# Create webhook endpoint\nopenclaw webhooks create \\\n --name \"github-pr-review\" \\\n --url \"/webhooks/github\" \\\n --action \"Review PR and comment\"\n\n# List webhooks\nopenclaw webhooks list\n```\n\n## Real Code Examples\n\n### Example 1: File Management Automation (Shell)\n\n```bash\n#!/bin/bash\n# Auto-organize downloads folder\n\n# User prompt to OpenClaw:\n# \"Organize my Downloads folder: move images to Images/, \n# PDFs to Documents/, and delete files older than 30 days\"\n\n# OpenClaw executes internally via file management tools\n# No manual scripting needed - AI handles the logic\n\n# For custom automation, use Task Flow:\nopenclaw tasks flow create \\\n --name \"organize-downloads\" \\\n --schedule \"0 2 * * *\" \\\n --steps \"scan_downloads,categorize_files,move_files,cleanup_old\"\n```\n\n### Example 2: Knowledge Base Integration (JavaScript/Node)\n\n```javascript\n// Add document to knowledge base\nconst { OpenClawClient } = require('openclaw-sdk');\n\nconst client = new OpenClawClient({\n apiKey: process.env.OPENCLAW_API_KEY,\n baseUrl: 'http://localhost:3000'\n});\n\nasync function addToKnowledgeBase(filePath, metadata) {\n try {\n const result = await client.knowledge.add({\n file: filePath,\n metadata: {\n tags: metadata.tags,\n source: metadata.source,\n category: metadata.category\n },\n activeMemory: true, // Enable Active Memory indexing\n memoryWiki: true // Add to Memory Wiki\n });\n \n console.log('Document added:', result.id);\n return result;\n } catch (error) {\n console.error('Failed to add document:', error.message);\n throw error;\n }\n}\n\n// Query knowledge base\nasync function searchKnowledge(query) {\n const results = await client.knowledge.search({\n query: query,\n limit: 10,\n useActiveMemory: true, // Include Active Memory context\n useMemoryWiki: true // Include Memory Wiki claims\n });\n \n return results;\n}\n\n// Example usage\naddToKnowledgeBase('./report.pdf', {\n tags: ['quarterly', 'finance'],\n source: 'internal',\n category: 'reports'\n});\n\nsearchKnowledge('Q4 revenue analysis').then(results => {\n console.log('Found:', results.length, 'documents');\n});\n```\n\n### Example 3: Feishu Bot Integration (JavaScript)\n\n```javascript\n// Feishu bot webhook handler\nconst express = require('express');\nconst app = express();\n\napp.post('/feishu/webhook', async (req, res) => {\n const event = req.body;\n \n if (event.type === 'message') {\n const userMessage = event.message.content;\n \n // Send to OpenClaw for processing\n const response = await fetch('http://localhost:3000/api/chat', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${process.env.OPENCLAW_API_KEY}`\n },\n body: JSON.stringify({\n message: userMessage,\n sessionId: event.message.chat_id,\n platform: 'feishu',\n useActiveMemory: true // Retrieve relevant context\n })\n });\n \n const result = await response.json();\n \n // Send response back to Feishu\n await sendFeishuMessage(event.message.chat_id, result.reply);\n }\n \n res.json({ success: true });\n});\n\napp.listen(3000);\n```\n\n### Example 4: Media Generation Workflow (Shell)\n\n```bash\n#!/bin/bash\n# Generate content pipeline: text -> image -> video\n\n# Step 1: Generate article\nARTICLE=$(openclaw infer text \"Write a 500-word article about sustainable energy\" \\\n --model gpt-4-turbo)\n\n# Step 2: Generate cover image\nopenclaw infer image \"Sustainable energy concept art, vibrant, professional\" \\\n --model dall-e-3 \\\n --size 1792x1024 \\\n --output cover.png\n\n# Step 3: Generate promotional video\nopenclaw infer video \"Solar panels in a green field, golden hour\" \\\n --provider runway \\\n --duration 5 \\\n --output promo.mp4\n\n# Step 4: Generate background music\nopenclaw infer audio \"Uplifting corporate background music\" \\\n --provider suno \\\n --duration 30 \\\n --output bgm.mp3\n\n# Step 5: Combine and publish\necho \"Content pipeline complete!\"\nls -lh cover.png promo.mp4 bgm.mp3\n```\n\n### Example 5: Task Flow with Webhooks (YAML)\n\n```yaml\n# ~/.openclaw/flows/content-approval.yaml\nname: content-approval-flow\ntrigger:\n type: webhook\n path: /webhooks/content-submit\n \nsteps:\n - name: review-content\n action: infer\n input: \"Review the submitted content for quality and compliance\"\n model: claude-3-5-sonnet-20241022\n \n - name: check-approval\n action: conditional\n condition: \"review.score > 8\"\n \n - name: publish\n action: webhook\n url: https://cms.example.com/publish\n method: POST\n headers:\n Authorization: \"Bearer ${CMS_API_KEY}\"\n body:\n content: \"{{ steps.review.content }}\"\n status: approved\n \n - name: notify\n action: send-message\n platform: feishu\n channel: \"${FEISHU_CHANNEL_ID}\"\n message: \"Content published: {{ steps.publish.url }}\"\n```\n\nLoad flow:\n```bash\nopenclaw tasks flow load ~/.openclaw/flows/content-approval.yaml\nopenclaw tasks flow start content-approval-flow\n```\n\n## Common Patterns\n\n### Pattern 1: Daily Automation Routine\n\n```bash\n# Create morning briefing task\nopenclaw tasks create \\\n --name \"morning-briefing\" \\\n --schedule \"0 8 * * *\" \\\n --command \"Generate morning briefing: check emails, calendar, news, weather. Send to Feishu.\"\n\n# Create evening summary task\nopenclaw tasks create \\\n --name \"evening-summary\" \\\n --schedule \"0 18 * * *\" \\\n --command \"Summarize today's work: meetings attended, tasks completed, files created. Archive to knowledge base.\"\n```\n\n### Pattern 2: Multi-Platform Sync\n\n```javascript\n// Sync message across platforms\nasync function syncMessage(message, platforms) {\n const results = await Promise.all(\n platforms.map(platform => \n client.messaging.send({\n platform: platform,\n channelId: process.env[`${platform.toUpperCase()}_CHANNEL_ID`],\n message: message,\n useActiveMemory: true\n })\n )\n );\n \n return results;\n}\n\n// Usage\nsyncMessage('Deployment complete for v2.0', ['feishu', 'slack', 'wechat']);\n```\n\n### Pattern 3: Knowledge Base -> Memory Wiki Pipeline\n\n```bash\n# User uploads document\nopenclaw knowledge add ./research-paper.pdf \\\n --tags \"AI,research\" \\\n --auto-extract-claims\n\n# OpenClaw automatically:\n# 1. Extracts text content\n# 2. Creates Memory Wiki claims with evidence\n# 3. Indexes for Active Memory retrieval\n# 4. Checks for contradictions with existing claims\n\n# Query across knowledge base and memory\nopenclaw infer text \"What are the latest findings on transformer models?\" \\\n --use-active-memory \\\n --use-memory-wiki\n```\n\n## Troubleshooting\n\n### Gateway Won't Start (2026.3.7+)\n\n**Symptom**: `Error: gateway.auth.mode must be set`\n\n**Fix**:\n```bash\nopenclaw config set gateway.auth.mode token\nopenclaw config set gateway.auth.token \"$(openssl rand -hex 32)\"\nopenclaw gateway restart\n```\n\n### AI Only Chats, Can't Execute Commands (2026.3.2+)\n\n**Symptom**: OpenClaw responds to questions but won't manage files or run commands\n\n**Fix**:\n```bash\n# Check current profile\nopenclaw config get tools.profile\n\n# Set to 'full' for complete toolset\nopenclaw config set tools.profile full\nopenclaw gateway restart\n```\n\n### Model Authentication Errors\n\n**Symptom**: `Model provider not authenticated`\n\n**Fix**:\n```bash\n# Re-authenticate (2026.4+ method)\nopenclaw models auth login --provider openai\nopenclaw models auth login --provider anthropic\n\n# Verify\nopenclaw models auth list\n\n# Set default\nopenclaw config set model.default \"claude-3-5-sonnet-20241022\"\n```\n\n### High API Costs\n\n**Solutions**:\n```bash\n# 1. Enable fast mode for OpenAI/Anthropic (cheaper)\nopenclaw config set model.fast_mode true\n\n# 2. Use local models with Ollama\nopenclaw models auth login --provider ollama\nopenclaw config set model.default \"llama3:70b\"\n\n# 3. Set token limits\nopenclaw config set model.max_tokens 4000\n\n# 4. Use Chinese domestic models (95% cost savings)\nopenclaw models auth login --provider deepseek\nopenclaw config set model.default \"deepseek-chat\"\n```\n\n### Active Memory Not Working\n\n**Symptom**: AI doesn't recall previous context\n\n**Fix**:\n```bash\n# Enable Active Memory\nopenclaw config set memory.active.enabled true\nopenclaw config set memory.dreaming.enabled true\n\n# Force memory refresh\nopenclaw memory rebuild\n\n# Check memory stats\nopenclaw memory stats\n\n# Restart gateway\nopenclaw gateway restart\n```\n\n### Task Flow Execution Failures\n\n**Symptom**: Workflows stuck or fail silently\n\n**Debug**:\n```bash\n# Check task logs\nopenclaw tasks logs <task-name>\n\n# Validate flow definition\nopenclaw tasks flow validate ~/.openclaw/flows/my-flow.yaml\n\n# Test individual steps\nopenclaw tasks flow test my-flow --step review-content\n\n# Enable debug mode\nopenclaw config set debug.tasks true\nopenclaw gateway restart\n```\n\n### ComfyUI Integration Issues\n\n**Symptom**: `infer image` fails with ComfyUI backend\n\n**Fix**:\n```bash\n# Install ComfyUI skill (if using pre-2026.4 setup)\n# Note: In 2026.4+, use built-in infer command instead\n\n# Verify ComfyUI is running\ncurl http://localhost:8188/system_stats\n\n# Set ComfyUI endpoint\nopenclaw config set comfyui.endpoint \"http://localhost:8188\"\n\n# Test connection\nopenclaw infer image \"test\" --provider comfyui\n```\n\n### Windows Specific Issues\n\n**Symptom**: Black console window pops up on gateway restart\n\n**Fix**: Upgrade to v2026.3.13+ which fixes this issue\n\n```powershell\n# Update OpenClaw\nnpm update -g openclaw\n\n# Verify version\nopenclaw --version # Should be >= v2026.3.13\n```\n\n## Configuration Reference\n\nKey config paths in `~/.openclaw/config.json`:\n\n```json\n{\n \"model\": {\n \"default\": \"claude-3-5-sonnet-20241022\",\n \"fast_mode\": true,\n \"max_tokens\": 4000\n },\n \"gateway\": {\n \"auth\": {\n \"mode\": \"token\",\n \"token\": \"${OPENCLAW_GATEWAY_TOKEN}\"\n },\n \"port\": 3000\n },\n \"tools\": {\n \"profile\": \"full\"\n },\n \"memory\": {\n \"active\": {\n \"enabled\": true\n },\n \"dreaming\": {\n \"enabled\": true,\n \"schedule\": \"0 3 * * *\"\n },\n \"wiki\": {\n \"enabled\": true\n },\n \"retention\": {\n \"days\": 90\n }\n },\n \"platforms\": {\n \"feishu\": {\n \"app_id\": \"${FEISHU_APP_ID}\",\n \"app_secret\": \"${FEISHU_APP_SECRET}\"\n },\n \"slack\": {\n \"bot_token\": \"${SLACK_BOT_TOKEN}\"\n }\n }\n}\n```\n\n## Resources\n\n- **Official Tutorial**: https://awesome.tryopenclaw.asia/\n- **GitHub Repo**: https://github.com/xianyu110/awesome-openclaw-tutorial\n- **Skills Marketplace**: Search via `openclaw models auth` (2026.4+) or legacy `clawhub search`\n- **Quick Start Guide**: [Chapter 3 - Quick Start](docs/01-basics/03-quick-start.md)\n- **API Integration**: [Chapter 10 - API & External Capabilities](docs/03-advanced/10-api-integration.md)\n- **Task Flow Guide**: [Chapter 13 - Advanced Automation](docs/04-practical-cases/13-advanced-automation.md)\n\n**Important**: This tutorial tracks v2026.4.14 stable. Some legacy content (old skill names, deprecated commands) remains for reference. Always verify against current `openclaw --version` and official docs.\n"}}}}