{
  "schemaVersion": "1.0",
  "item": {
    "slug": "qoder-cli-skill",
    "name": "Qoder CLI skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/lfeng/qoder-cli-skill",
    "canonicalUrl": "https://clawhub.ai/lfeng/qoder-cli-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/qoder-cli-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=qoder-cli-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/qoder-cli-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/qoder-cli-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/qoder-cli-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/qoder-cli-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/qoder-cli-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Qoder Agent (Print Mode - Non-Interactive)",
        "body": "Use Print mode (-p) for all Qoder CLI work in OpenClaw. TUI mode is not supported in automated environments.\n\n✅ All-Sessions Ready: This skill works in:\n\nDirect 1:1 chats\nGroup chats (DingTalk, Discord, Slack, etc.)\nShared workspace sessions\nPrivate sessions"
      },
      {
        "title": "⚠️ Important: Print Mode Only",
        "body": "TUI mode is NOT supported in OpenClaw or other automated environments due to TTY requirements.\n\nAlways use Print mode with the -p flag:\n\n# ✅ Correct - Print mode (non-interactive)\nbash workdir:~/project command:\"qodercli -p 'Add error handling'\"\n\n# ❌ Wrong - TUI mode requires interactive terminal\nbash pty:true command:\"qodercli\"  # Will fail"
      },
      {
        "title": "🔐 Environment Setup (Auto-Detected)",
        "body": "Qoder CLI authentication is automatically available via:\n\n# Environment variable (set in ~/.zshrc)\nQODER_PERSONAL_ACCESS_TOKEN=\"your_token_here\"\n\n# Or check if already authenticated\nqodercli status\n\nIn any session type, the environment variable is inherited from the shell, so Qoder CLI works seamlessly."
      },
      {
        "title": "Basic Usage",
        "body": "# Quick one-shot task\nbash workdir:~/project command:\"qodercli -p 'Add error handling to the API calls'\"\n\n# With ultimate model for best quality\nbash workdir:~/project command:\"qodercli --model=ultimate -p 'Refactor this module'\"\n\n# With JSON output\nbash workdir:~/project command:\"qodercli --output-format=json -p 'Analyze this code'\"\n\n# Continue last session\nbash workdir:~/project command:\"qodercli -c -p 'Continue the refactoring'\"\n\n# Max turns limit\nbash workdir:~/project command:\"qodercli --max-turns=10 -p 'Fix the bug'\"\n\n# Yolo mode (skip permissions)\nbash workdir:~/project command:\"qodercli --yolo -p 'Make the changes'\""
      },
      {
        "title": "🎯 Print Mode Flags",
        "body": "FlagDescriptionExample-pRequired - Run non-interactivelyqodercli -p \"task\"-qQuiet mode (hide spinner)qodercli -q -p \"task\"--output-formatOutput format: text, json, stream-jsonqodercli --output-format=json-wSpecify workspace directoryqodercli -w /path/to/project-cContinue last sessionqodercli -c -p \"continue\"-rResume specific sessionqodercli -r <session-id>--modelModel tier selectionqodercli --model=ultimate--max-turnsMaximum dialog turns (0 = unlimited)qodercli --max-turns=10--max-output-tokensMax tokens: 16k, 32kqodercli --max-output-tokens=32k--yoloSkip permission checksqodercli --yolo--allowed-toolsAllow only specified toolsqodercli --allowed-tools=READ,WRITE--disallowed-toolsDisallow specified toolsqodercli --disallowed-tools=Bash--agentsJSON object defining custom agentsqodercli --agents='{\"reviewer\":{...}}'--attachmentAttach image files (repeatable)qodercli --attachment=img.png"
      },
      {
        "title": "🧠 Model Selection",
        "body": "Qoder CLI uses automatic model routing - it selects the globally optimal model based on task characteristics. You can override this:\n\nModel ValueUse CaseSpeedQualityCostautoDefault - automatic routing⚡⚡⚡⭐⭐⭐💰💰💰efficientQuick tasks, simple queries⚡⚡⚡⚡⭐⭐💰💰liteVery simple tasks⚡⚡⚡⚡⚡⭐💰performanceComplex tasks needing depth⚡⚡⭐⭐⭐⭐💰💰💰💰ultimateBest quality - refactoring, architecture, code review⚡⭐⭐⭐⭐⭐💰💰💰💰💰qmodelQwen model family⚡⚡⚡⭐⭐⭐⭐💰💰💰q35modelQwen 3.5 specific⚡⚡⚡⭐⭐⭐⭐💰💰💰mmodelMiniMax model⚡⚡⚡⭐⭐⭐⭐💰💰💰gmodelGPT model family⚡⚡⭐⭐⭐⭐⭐💰💰💰💰\n\nRecommendations:\n\nDefault: Use --model=auto (let Qoder choose)\nRefactoring/Architecture: --model=ultimate\nQuick fixes: --model=efficient\nCode review: --model=performance or ultimate\nSimple queries: --model=lite or efficient"
      },
      {
        "title": "🎯 Quest Mode (Spec-Driven Development)",
        "body": "Quest Mode allows you to write specifications while AI automatically completes development tasks using subagents.\n\n# Quest mode via prompt\nbash workdir:~/project command:\"qodercli --model=ultimate -p 'Build a REST API with authentication, rate limiting, and logging'\"\n\nQuest Mode automatically:\n\nAnalyzes requirements\nRoutes to appropriate subagents\nCoordinates multi-step development\nEnsures consistency across files"
      },
      {
        "title": "🤖 Subagents",
        "body": "Subagents are specialized AI agents for specific tasks with their own context windows and tool permissions."
      },
      {
        "title": "Create a Subagent (Manual)",
        "body": "Create markdown files in:\n\n~/.qoder/agents/<agentName>.md - User-level (all projects)\n${project}/agents/<agentName>.md - Project-level\n\nExample: code-review agent\n\n---\nname: code-review\ndescription: Code review expert for quality and security checks\ntools: Read, Grep, Glob, Bash\n---\n\nYou are a senior code reviewer responsible for ensuring code quality.\n\nChecklist:\n1. Readability and code style\n2. Naming conventions\n3. Error handling\n4. Security checks\n5. Test coverage\n6. Performance considerations"
      },
      {
        "title": "Use Subagents",
        "body": "# Explicit invocation\nbash workdir:~/project command:\"qodercli -p 'Use code-review subagent to check code issues'\"\n\n# Implicit invocation\nbash workdir:~/project command:\"qodercli -p 'Analyze this code for potential performance issues'\"\n\n# Chained subagents\nbash workdir:~/project command:\"qodercli -p 'First use design subagent for system design, then use code-review subagent'\"\n\n# Custom agents inline\nbash workdir:~/project command:\"qodercli --agents='{\\\"reviewer\\\":{\\\"description\\\":\\\"Reviews code\\\",\\\"prompt\\\":\\\"You are a code reviewer\\\"}}' -p 'Review this'\""
      },
      {
        "title": "🌳 Worktree (Parallel Jobs)",
        "body": "Worktree jobs are concurrent jobs that use Git worktrees to run tasks in parallel, avoiding read/write conflicts.\n\nRequirements: Git installed and usable locally."
      },
      {
        "title": "Commands",
        "body": "CommandDescriptionqodercli --worktree \"job description\"Create and start new worktree jobqodercli jobs --worktreeList existing worktree jobsqodercli rm <jobId>Remove a job (delete worktree)"
      },
      {
        "title": "Create a Job",
        "body": "# Basic worktree job (non-interactive)\nbash workdir:~/project command:\"qodercli --worktree -p 'Fix issue #78'\"\n\n# With branch specification\nbash workdir:~/project command:\"qodercli --worktree --branch=main -p 'Implement feature'\"\n\n# With max turns\nbash workdir:~/project command:\"qodercli --worktree --max-turns=20 -p 'Complex refactoring'\""
      },
      {
        "title": "View Jobs",
        "body": "bash workdir:~/project command:\"qodercli jobs --worktree\""
      },
      {
        "title": "Delete Jobs",
        "body": "bash workdir:~/project command:\"qodercli rm <jobId>\"\n\n⚠️ Warning: Deletion is irreversible. Proceed with caution."
      },
      {
        "title": "Parallel Issue Fixing Example",
        "body": "# Multiple worktrees for parallel work\nbash workdir:~/project background:true command:\"qodercli --worktree -p 'Fix issue #78'\"\nbash workdir:~/project background:true command:\"qodercli --worktree -p 'Fix issue #99'\"\n\n# Monitor progress\nprocess action:list\nprocess action:log sessionId:XXX"
      },
      {
        "title": "🔌 MCP Servers",
        "body": "Qoder CLI integrates with any standard MCP (Model Context Protocol) tool."
      },
      {
        "title": "Add MCP Servers",
        "body": "# Basic syntax\nbash command:\"qodercli mcp add <name> -- <command>\"\n\n# Example: Playwright for browser control\nbash command:\"qodercli mcp add playwright -- npx -y @playwright/mcp@latest\""
      },
      {
        "title": "Recommended MCP Tools",
        "body": "# Context7 - Upstash context management\nbash command:\"qodercli mcp add context7 -- npx -y @upstash/context7-mcp@latest\"\n\n# DeepWiki - Wikipedia/knowledge access\nbash command:\"qodercli mcp add deepwiki -- npx -y mcp-deepwiki@latest\"\n\n# Chrome DevTools - Browser automation\nbash command:\"qodercli mcp add chrome-devtools -- npx chrome-devtools-mcp@latest\""
      },
      {
        "title": "Manage MCP Servers",
        "body": "# List servers\nbash command:\"qodercli mcp list\"\n\n# Remove server\nbash command:\"qodercli mcp remove playwright\""
      },
      {
        "title": "🔐 Permissions",
        "body": "Qoder CLI enforces precise tool execution permissions."
      },
      {
        "title": "Configuration Files (precedence: high → low)",
        "body": "${project}/.qoder/settings.local.json - Project-level, highest (gitignore)\n${project}/.qoder/settings.json - Project-level\n~/.qoder/settings.json - User-level"
      },
      {
        "title": "Permission Strategies",
        "body": "StrategyDescriptionallowAutomatically allow matching operationsdenyAutomatically deny matching operationsaskPrompt for permission (default for outside project)"
      },
      {
        "title": "Example Configuration",
        "body": "{\n  \"permissions\": {\n    \"ask\": [\n      \"Read(!/Users/demo/projects/myproject/**)\",\n      \"Edit(!/Users/demo/projects/myproject/**)\"\n    ],\n    \"allow\": [\n      \"Read(/Users/demo/projects/myproject/**)\",\n      \"Edit(/Users/demo/projects/myproject/**)\"\n    ],\n    \"deny\": [\n      \"Bash(rm -rf /**)\"\n    ]\n  }\n}"
      },
      {
        "title": "Permission Types",
        "body": "1. Read & Edit Rules\n\nPatterns follow gitignore-style matching:\n\nPattern FormDescriptionExampleMatches/pathAbsolute from system rootRead(/Users/demo/**)/Users/demo/xx~/pathFrom home directoryRead(~/Documents/*.png)/Users/demo/Documents/xx.pngpath or ./pathRelative to current dirRead(/*.java)./xx.java!**Negation patternRead(!**/node_modules/**)Excludes node_modules\n\n2. WebFetch Rules\n\nRestrict domains for network fetch:\n\n{\n  \"permissions\": {\n    \"allow\": [\n      \"WebFetch(domain:example.com)\",\n      \"WebFetch(domain:*.github.io)\"\n    ]\n  }\n}\n\n3. Bash Rules\n\nRestrict commands for shell execution:\n\n{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(npm run build)\",\n      \"Bash(npm run test:*)\",\n      \"Bash(curl http://site.com/:*)\"\n    ],\n    \"deny\": [\n      \"Bash(rm -rf *)\",\n      \"Bash(sudo *)\"\n    ]\n  }\n}"
      },
      {
        "title": "📝 Memory (AGENTS.md)",
        "body": "Qoder CLI uses AGENTS.md as memory - content is auto-loaded as context."
      },
      {
        "title": "File Locations",
        "body": "User-level: ~/.qoder/AGENTS.md - Applies to all projects\nProject-level: ${project}/AGENTS.md - Applies to current project"
      },
      {
        "title": "Typical Content",
        "body": "Development standards and notes\nOverall system architecture\nProject-specific conventions\nAPI documentation\nTesting requirements"
      },
      {
        "title": "Generate/Manage",
        "body": "# Manually create AGENTS.md in project root\ncat > ~/project/AGENTS.md << 'EOF'\n# Project Guidelines\n\n## Architecture\n- MVC pattern\n- REST API design\n\n## Code Style\n- ESLint strict mode\n- Prettier formatting\nEOF"
      },
      {
        "title": "⚡ Advanced Options",
        "body": "OptionDescriptionExample-wSpecify workspace directoryqodercli -w /path/to/project-cContinue last sessionqodercli -c -p \"continue\"-rResume specific sessionqodercli -r <session-id>--allowed-toolsAllow only specified toolsqodercli --allowed-tools=READ,WRITE--disallowed-toolsDisallow specified toolsqodercli --disallowed-tools=Bash--max-turnsMaximum dialog turnsqodercli --max-turns=10--yoloSkip permission checksqodercli --yolo--worktreeCreate worktree jobqodercli --worktree \"task\"--branchSet branch for worktreeqodercli --worktree --branch=main--agentsDefine custom agents inlineqodercli --agents='{...}'--attachmentAttach image filesqodercli --attachment=img.png"
      },
      {
        "title": "⚠️ Rules",
        "body": "Print mode only - TUI mode not supported in OpenClaw\nAlways use -p flag - Non-interactive mode required\nRespect workdir - Qoder sees only the specified directory's context\nMonitor with process:log - check background session progress\nUse worktrees for parallel work - avoid read/write conflicts\nInitialize AGENTS.md - helps Qoder understand project context\nConfigure permissions - set appropriate access rules per project\nLeverage subagents - specialized agents for specific tasks\nAdd MCP servers - extend capabilities with external tools\nWorks in all sessions - environment variables are inherited automatically\nUse ultimate model for complex tasks - refactoring, architecture, code review"
      },
      {
        "title": "Progress Updates (Critical)",
        "body": "When you spawn Qoder CLI in the background, keep the user in the loop:\n\nSend 1 short message when you start (what's running + where)\nThen only update again when something changes:\n\na milestone completes (build finished, tests passed)\nthe CLI asks a question / needs input\nyou hit an error or need user action\nthe CLI finishes (include what changed + where)\n\n\nIf you kill a session, immediately say you killed it and why\n\nThis prevents the user from seeing only \"Agent failed before reply\" and having no idea what happened."
      },
      {
        "title": "Auto-Notify on Completion",
        "body": "For long-running background tasks, append a wake trigger:\n\nbash workdir:~/project background:true command:\"qodercli --model=ultimate 'Build a REST API for todos.\n\nWhen completely finished, run: openclaw system event --text \\\"Done: Built todos REST API with CRUD endpoints\\\" --mode now'\"\n\nThis triggers an immediate wake event — you get pinged in seconds, not minutes."
      },
      {
        "title": "In Group Chats (DingTalk, Discord, Slack)",
        "body": "# Just use normal commands - environment is inherited\nbash workdir:~/project command:\"qodercli -p 'Help me fix this bug'\"\n\n# No special setup needed!"
      },
      {
        "title": "In Direct Messages",
        "body": "Same as group chats - works out of the box."
      },
      {
        "title": "In Shared Workspaces",
        "body": "# Specify the workspace explicitly\nbash workdir:/shared/project command:\"qodercli --model=ultimate -p 'Refactor this'\""
      },
      {
        "title": "Privacy Note",
        "body": "Qoder CLI only accesses the specified workdir\nEnvironment variables are inherited from the host shell\nNo credentials are exposed in chat messages\nEach session has isolated Qoder CLI state"
      },
      {
        "title": "📊 Comparison with Other Coding Agents",
        "body": "FeatureQoder CLICodexClaude CodePrint Mode✅✅❌Subagents✅❌❌Worktrees✅❌❌MCP Servers✅✅✅Memory (AGENTS.md)✅✅✅Model Selection✅ (auto-routing)❌❌Quest Mode✅❌❌Permission System✅ (granular)⚠️⚠️All-Sessions Ready✅⚠️⚠️\n\nQoder CLI strengths:\n\nSubagents for specialized tasks\nWorktrees for parallel development\nQuest mode for spec-driven development\nAutomatic model routing\nGranular permission system\nCross-session compatibility"
      },
      {
        "title": "📋 Quick Reference Card",
        "body": "# Quick task (print mode, auto model)\nqodercli -p \"Your prompt\"\n\n# High-quality task (ultimate model)\nqodercli --model=ultimate -p \"Your prompt\"\n\n# Quest mode (spec-driven)\nqodercli -p \"Build a REST API with auth\"\n\n# Background task (worktree)\nqodercli --worktree -p \"Your task\"\n\n# Check status\nqodercli status\n\n# Skip permissions (use with caution)\nqodercli --yolo -p \"Your prompt\"\n\n# Continue last session\nqodercli -c -p \"Continue\"\n\n# JSON output\nqodercli --output-format=json -p \"Analyze\"\n\n# With custom subagents\nqodercli --agents='{\"reviewer\":{...}}' -p \"Review this\""
      },
      {
        "title": "Not Logged In",
        "body": "# Check status\nqodercli status\n\n# Set environment variable\nexport QODER_PERSONAL_ACCESS_TOKEN=\"your_token\""
      },
      {
        "title": "Permission Denied",
        "body": "# Use yolo mode (caution)\nqodercli --yolo -p \"task\"\n\n# Or configure permissions in ~/.qoder/settings.json"
      },
      {
        "title": "Model Selection Issues",
        "body": "# Explicitly specify model\nqodercli --model=ultimate -p \"task\"\n\n# Or use auto for automatic routing\nqodercli --model=auto -p \"task\""
      },
      {
        "title": "TUI Mode Error",
        "body": "TUI mode is NOT supported in OpenClaw. Always use Print mode:\n\n# ✅ Correct\nqodercli -p \"Your task\"\n\n# ❌ Wrong (will fail)\nqodercli  # TUI requires interactive terminal"
      }
    ],
    "body": "Qoder Agent (Print Mode - Non-Interactive)\n\nUse Print mode (-p) for all Qoder CLI work in OpenClaw. TUI mode is not supported in automated environments.\n\n✅ All-Sessions Ready: This skill works in:\n\nDirect 1:1 chats\nGroup chats (DingTalk, Discord, Slack, etc.)\nShared workspace sessions\nPrivate sessions\n⚠️ Important: Print Mode Only\n\nTUI mode is NOT supported in OpenClaw or other automated environments due to TTY requirements.\n\nAlways use Print mode with the -p flag:\n\n# ✅ Correct - Print mode (non-interactive)\nbash workdir:~/project command:\"qodercli -p 'Add error handling'\"\n\n# ❌ Wrong - TUI mode requires interactive terminal\nbash pty:true command:\"qodercli\"  # Will fail\n\n🔐 Environment Setup (Auto-Detected)\n\nQoder CLI authentication is automatically available via:\n\n# Environment variable (set in ~/.zshrc)\nQODER_PERSONAL_ACCESS_TOKEN=\"your_token_here\"\n\n# Or check if already authenticated\nqodercli status\n\n\nIn any session type, the environment variable is inherited from the shell, so Qoder CLI works seamlessly.\n\n🚀 Quick Start\nBasic Usage\n# Quick one-shot task\nbash workdir:~/project command:\"qodercli -p 'Add error handling to the API calls'\"\n\n# With ultimate model for best quality\nbash workdir:~/project command:\"qodercli --model=ultimate -p 'Refactor this module'\"\n\n# With JSON output\nbash workdir:~/project command:\"qodercli --output-format=json -p 'Analyze this code'\"\n\n# Continue last session\nbash workdir:~/project command:\"qodercli -c -p 'Continue the refactoring'\"\n\n# Max turns limit\nbash workdir:~/project command:\"qodercli --max-turns=10 -p 'Fix the bug'\"\n\n# Yolo mode (skip permissions)\nbash workdir:~/project command:\"qodercli --yolo -p 'Make the changes'\"\n\n🎯 Print Mode Flags\nFlag\tDescription\tExample\n-p\tRequired - Run non-interactively\tqodercli -p \"task\"\n-q\tQuiet mode (hide spinner)\tqodercli -q -p \"task\"\n--output-format\tOutput format: text, json, stream-json\tqodercli --output-format=json\n-w\tSpecify workspace directory\tqodercli -w /path/to/project\n-c\tContinue last session\tqodercli -c -p \"continue\"\n-r\tResume specific session\tqodercli -r <session-id>\n--model\tModel tier selection\tqodercli --model=ultimate\n--max-turns\tMaximum dialog turns (0 = unlimited)\tqodercli --max-turns=10\n--max-output-tokens\tMax tokens: 16k, 32k\tqodercli --max-output-tokens=32k\n--yolo\tSkip permission checks\tqodercli --yolo\n--allowed-tools\tAllow only specified tools\tqodercli --allowed-tools=READ,WRITE\n--disallowed-tools\tDisallow specified tools\tqodercli --disallowed-tools=Bash\n--agents\tJSON object defining custom agents\tqodercli --agents='{\"reviewer\":{...}}'\n--attachment\tAttach image files (repeatable)\tqodercli --attachment=img.png\n🧠 Model Selection\n\nQoder CLI uses automatic model routing - it selects the globally optimal model based on task characteristics. You can override this:\n\nModel Value\tUse Case\tSpeed\tQuality\tCost\nauto\tDefault - automatic routing\t⚡⚡⚡\t⭐⭐⭐\t💰💰💰\nefficient\tQuick tasks, simple queries\t⚡⚡⚡⚡\t⭐⭐\t💰💰\nlite\tVery simple tasks\t⚡⚡⚡⚡⚡\t⭐\t💰\nperformance\tComplex tasks needing depth\t⚡⚡\t⭐⭐⭐⭐\t💰💰💰💰\nultimate\tBest quality - refactoring, architecture, code review\t⚡\t⭐⭐⭐⭐⭐\t💰💰💰💰💰\nqmodel\tQwen model family\t⚡⚡⚡\t⭐⭐⭐⭐\t💰💰💰\nq35model\tQwen 3.5 specific\t⚡⚡⚡\t⭐⭐⭐⭐\t💰💰💰\nmmodel\tMiniMax model\t⚡⚡⚡\t⭐⭐⭐⭐\t💰💰💰\ngmodel\tGPT model family\t⚡⚡\t⭐⭐⭐⭐⭐\t💰💰💰💰\n\nRecommendations:\n\nDefault: Use --model=auto (let Qoder choose)\nRefactoring/Architecture: --model=ultimate\nQuick fixes: --model=efficient\nCode review: --model=performance or ultimate\nSimple queries: --model=lite or efficient\n🎯 Quest Mode (Spec-Driven Development)\n\nQuest Mode allows you to write specifications while AI automatically completes development tasks using subagents.\n\n# Quest mode via prompt\nbash workdir:~/project command:\"qodercli --model=ultimate -p 'Build a REST API with authentication, rate limiting, and logging'\"\n\n\nQuest Mode automatically:\n\nAnalyzes requirements\nRoutes to appropriate subagents\nCoordinates multi-step development\nEnsures consistency across files\n🤖 Subagents\n\nSubagents are specialized AI agents for specific tasks with their own context windows and tool permissions.\n\nCreate a Subagent (Manual)\n\nCreate markdown files in:\n\n~/.qoder/agents/<agentName>.md - User-level (all projects)\n${project}/agents/<agentName>.md - Project-level\n\nExample: code-review agent\n\n---\nname: code-review\ndescription: Code review expert for quality and security checks\ntools: Read, Grep, Glob, Bash\n---\n\nYou are a senior code reviewer responsible for ensuring code quality.\n\nChecklist:\n1. Readability and code style\n2. Naming conventions\n3. Error handling\n4. Security checks\n5. Test coverage\n6. Performance considerations\n\nUse Subagents\n# Explicit invocation\nbash workdir:~/project command:\"qodercli -p 'Use code-review subagent to check code issues'\"\n\n# Implicit invocation\nbash workdir:~/project command:\"qodercli -p 'Analyze this code for potential performance issues'\"\n\n# Chained subagents\nbash workdir:~/project command:\"qodercli -p 'First use design subagent for system design, then use code-review subagent'\"\n\n# Custom agents inline\nbash workdir:~/project command:\"qodercli --agents='{\\\"reviewer\\\":{\\\"description\\\":\\\"Reviews code\\\",\\\"prompt\\\":\\\"You are a code reviewer\\\"}}' -p 'Review this'\"\n\n🌳 Worktree (Parallel Jobs)\n\nWorktree jobs are concurrent jobs that use Git worktrees to run tasks in parallel, avoiding read/write conflicts.\n\nRequirements: Git installed and usable locally.\n\nCommands\nCommand\tDescription\nqodercli --worktree \"job description\"\tCreate and start new worktree job\nqodercli jobs --worktree\tList existing worktree jobs\nqodercli rm <jobId>\tRemove a job (delete worktree)\nCreate a Job\n# Basic worktree job (non-interactive)\nbash workdir:~/project command:\"qodercli --worktree -p 'Fix issue #78'\"\n\n# With branch specification\nbash workdir:~/project command:\"qodercli --worktree --branch=main -p 'Implement feature'\"\n\n# With max turns\nbash workdir:~/project command:\"qodercli --worktree --max-turns=20 -p 'Complex refactoring'\"\n\nView Jobs\nbash workdir:~/project command:\"qodercli jobs --worktree\"\n\nDelete Jobs\nbash workdir:~/project command:\"qodercli rm <jobId>\"\n\n\n⚠️ Warning: Deletion is irreversible. Proceed with caution.\n\nParallel Issue Fixing Example\n# Multiple worktrees for parallel work\nbash workdir:~/project background:true command:\"qodercli --worktree -p 'Fix issue #78'\"\nbash workdir:~/project background:true command:\"qodercli --worktree -p 'Fix issue #99'\"\n\n# Monitor progress\nprocess action:list\nprocess action:log sessionId:XXX\n\n🔌 MCP Servers\n\nQoder CLI integrates with any standard MCP (Model Context Protocol) tool.\n\nAdd MCP Servers\n# Basic syntax\nbash command:\"qodercli mcp add <name> -- <command>\"\n\n# Example: Playwright for browser control\nbash command:\"qodercli mcp add playwright -- npx -y @playwright/mcp@latest\"\n\nRecommended MCP Tools\n# Context7 - Upstash context management\nbash command:\"qodercli mcp add context7 -- npx -y @upstash/context7-mcp@latest\"\n\n# DeepWiki - Wikipedia/knowledge access\nbash command:\"qodercli mcp add deepwiki -- npx -y mcp-deepwiki@latest\"\n\n# Chrome DevTools - Browser automation\nbash command:\"qodercli mcp add chrome-devtools -- npx chrome-devtools-mcp@latest\"\n\nManage MCP Servers\n# List servers\nbash command:\"qodercli mcp list\"\n\n# Remove server\nbash command:\"qodercli mcp remove playwright\"\n\n🔐 Permissions\n\nQoder CLI enforces precise tool execution permissions.\n\nConfiguration Files (precedence: high → low)\n${project}/.qoder/settings.local.json - Project-level, highest (gitignore)\n${project}/.qoder/settings.json - Project-level\n~/.qoder/settings.json - User-level\nPermission Strategies\nStrategy\tDescription\nallow\tAutomatically allow matching operations\ndeny\tAutomatically deny matching operations\nask\tPrompt for permission (default for outside project)\nExample Configuration\n{\n  \"permissions\": {\n    \"ask\": [\n      \"Read(!/Users/demo/projects/myproject/**)\",\n      \"Edit(!/Users/demo/projects/myproject/**)\"\n    ],\n    \"allow\": [\n      \"Read(/Users/demo/projects/myproject/**)\",\n      \"Edit(/Users/demo/projects/myproject/**)\"\n    ],\n    \"deny\": [\n      \"Bash(rm -rf /**)\"\n    ]\n  }\n}\n\nPermission Types\n1. Read & Edit Rules\n\nPatterns follow gitignore-style matching:\n\nPattern Form\tDescription\tExample\tMatches\n/path\tAbsolute from system root\tRead(/Users/demo/**)\t/Users/demo/xx\n~/path\tFrom home directory\tRead(~/Documents/*.png)\t/Users/demo/Documents/xx.png\npath or ./path\tRelative to current dir\tRead(/*.java)\t./xx.java\n!**\tNegation pattern\tRead(!**/node_modules/**)\tExcludes node_modules\n2. WebFetch Rules\n\nRestrict domains for network fetch:\n\n{\n  \"permissions\": {\n    \"allow\": [\n      \"WebFetch(domain:example.com)\",\n      \"WebFetch(domain:*.github.io)\"\n    ]\n  }\n}\n\n3. Bash Rules\n\nRestrict commands for shell execution:\n\n{\n  \"permissions\": {\n    \"allow\": [\n      \"Bash(npm run build)\",\n      \"Bash(npm run test:*)\",\n      \"Bash(curl http://site.com/:*)\"\n    ],\n    \"deny\": [\n      \"Bash(rm -rf *)\",\n      \"Bash(sudo *)\"\n    ]\n  }\n}\n\n📝 Memory (AGENTS.md)\n\nQoder CLI uses AGENTS.md as memory - content is auto-loaded as context.\n\nFile Locations\nUser-level: ~/.qoder/AGENTS.md - Applies to all projects\nProject-level: ${project}/AGENTS.md - Applies to current project\nTypical Content\nDevelopment standards and notes\nOverall system architecture\nProject-specific conventions\nAPI documentation\nTesting requirements\nGenerate/Manage\n# Manually create AGENTS.md in project root\ncat > ~/project/AGENTS.md << 'EOF'\n# Project Guidelines\n\n## Architecture\n- MVC pattern\n- REST API design\n\n## Code Style\n- ESLint strict mode\n- Prettier formatting\nEOF\n\n⚡ Advanced Options\nOption\tDescription\tExample\n-w\tSpecify workspace directory\tqodercli -w /path/to/project\n-c\tContinue last session\tqodercli -c -p \"continue\"\n-r\tResume specific session\tqodercli -r <session-id>\n--allowed-tools\tAllow only specified tools\tqodercli --allowed-tools=READ,WRITE\n--disallowed-tools\tDisallow specified tools\tqodercli --disallowed-tools=Bash\n--max-turns\tMaximum dialog turns\tqodercli --max-turns=10\n--yolo\tSkip permission checks\tqodercli --yolo\n--worktree\tCreate worktree job\tqodercli --worktree \"task\"\n--branch\tSet branch for worktree\tqodercli --worktree --branch=main\n--agents\tDefine custom agents inline\tqodercli --agents='{...}'\n--attachment\tAttach image files\tqodercli --attachment=img.png\n⚠️ Rules\nPrint mode only - TUI mode not supported in OpenClaw\nAlways use -p flag - Non-interactive mode required\nRespect workdir - Qoder sees only the specified directory's context\nMonitor with process:log - check background session progress\nUse worktrees for parallel work - avoid read/write conflicts\nInitialize AGENTS.md - helps Qoder understand project context\nConfigure permissions - set appropriate access rules per project\nLeverage subagents - specialized agents for specific tasks\nAdd MCP servers - extend capabilities with external tools\nWorks in all sessions - environment variables are inherited automatically\nUse ultimate model for complex tasks - refactoring, architecture, code review\nProgress Updates (Critical)\n\nWhen you spawn Qoder CLI in the background, keep the user in the loop:\n\nSend 1 short message when you start (what's running + where)\nThen only update again when something changes:\na milestone completes (build finished, tests passed)\nthe CLI asks a question / needs input\nyou hit an error or need user action\nthe CLI finishes (include what changed + where)\nIf you kill a session, immediately say you killed it and why\n\nThis prevents the user from seeing only \"Agent failed before reply\" and having no idea what happened.\n\nAuto-Notify on Completion\n\nFor long-running background tasks, append a wake trigger:\n\nbash workdir:~/project background:true command:\"qodercli --model=ultimate 'Build a REST API for todos.\n\nWhen completely finished, run: openclaw system event --text \\\"Done: Built todos REST API with CRUD endpoints\\\" --mode now'\"\n\n\nThis triggers an immediate wake event — you get pinged in seconds, not minutes.\n\n🌐 Cross-Session Usage\nIn Group Chats (DingTalk, Discord, Slack)\n# Just use normal commands - environment is inherited\nbash workdir:~/project command:\"qodercli -p 'Help me fix this bug'\"\n\n# No special setup needed!\n\nIn Direct Messages\n\nSame as group chats - works out of the box.\n\nIn Shared Workspaces\n# Specify the workspace explicitly\nbash workdir:/shared/project command:\"qodercli --model=ultimate -p 'Refactor this'\"\n\nPrivacy Note\nQoder CLI only accesses the specified workdir\nEnvironment variables are inherited from the host shell\nNo credentials are exposed in chat messages\nEach session has isolated Qoder CLI state\n📊 Comparison with Other Coding Agents\nFeature\tQoder CLI\tCodex\tClaude Code\nPrint Mode\t✅\t✅\t❌\nSubagents\t✅\t❌\t❌\nWorktrees\t✅\t❌\t❌\nMCP Servers\t✅\t✅\t✅\nMemory (AGENTS.md)\t✅\t✅\t✅\nModel Selection\t✅ (auto-routing)\t❌\t❌\nQuest Mode\t✅\t❌\t❌\nPermission System\t✅ (granular)\t⚠️\t⚠️\nAll-Sessions Ready\t✅\t⚠️\t⚠️\n\nQoder CLI strengths:\n\nSubagents for specialized tasks\nWorktrees for parallel development\nQuest mode for spec-driven development\nAutomatic model routing\nGranular permission system\nCross-session compatibility\n📋 Quick Reference Card\n# Quick task (print mode, auto model)\nqodercli -p \"Your prompt\"\n\n# High-quality task (ultimate model)\nqodercli --model=ultimate -p \"Your prompt\"\n\n# Quest mode (spec-driven)\nqodercli -p \"Build a REST API with auth\"\n\n# Background task (worktree)\nqodercli --worktree -p \"Your task\"\n\n# Check status\nqodercli status\n\n# Skip permissions (use with caution)\nqodercli --yolo -p \"Your prompt\"\n\n# Continue last session\nqodercli -c -p \"Continue\"\n\n# JSON output\nqodercli --output-format=json -p \"Analyze\"\n\n# With custom subagents\nqodercli --agents='{\"reviewer\":{...}}' -p \"Review this\"\n\n🔧 Troubleshooting\nNot Logged In\n# Check status\nqodercli status\n\n# Set environment variable\nexport QODER_PERSONAL_ACCESS_TOKEN=\"your_token\"\n\nPermission Denied\n# Use yolo mode (caution)\nqodercli --yolo -p \"task\"\n\n# Or configure permissions in ~/.qoder/settings.json\n\nModel Selection Issues\n# Explicitly specify model\nqodercli --model=ultimate -p \"task\"\n\n# Or use auto for automatic routing\nqodercli --model=auto -p \"task\"\n\nTUI Mode Error\n\nTUI mode is NOT supported in OpenClaw. Always use Print mode:\n\n# ✅ Correct\nqodercli -p \"Your task\"\n\n# ❌ Wrong (will fail)\nqodercli  # TUI requires interactive terminal"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lfeng/qoder-cli-skill",
    "publisherUrl": "https://clawhub.ai/lfeng/qoder-cli-skill",
    "owner": "lfeng",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/qoder-cli-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/qoder-cli-skill",
    "agentUrl": "https://openagent3.xyz/skills/qoder-cli-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/qoder-cli-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/qoder-cli-skill/agent.md"
  }
}