{
  "schemaVersion": "1.0",
  "item": {
    "slug": "esp-idf-helper",
    "name": "ESP-IDF Helper",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/547895019/esp-idf-helper",
    "canonicalUrl": "https://clawhub.ai/547895019/esp-idf-helper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/esp-idf-helper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=esp-idf-helper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/esp-idf-cli.md",
      "references/idf-py-help.txt",
      "scripts/capture_idf_help.sh",
      "scripts/flash_with_progress.sh",
      "scripts/monitor_auto_attach.sh"
    ],
    "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-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/esp-idf-helper"
    },
    "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/esp-idf-helper",
    "agentPageUrl": "https://openagent3.xyz/skills/esp-idf-helper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/esp-idf-helper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/esp-idf-helper/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": "Goal",
        "body": "Provide a repeatable, command-line-first workflow for ESP-IDF development on Linux/WSL: configure → build → flash → monitor → debug/troubleshoot."
      },
      {
        "title": "Method 1: Activate ESP-IDF first (Recommended)",
        "body": "# 1) Source the ESP-IDF environment (once per terminal session)\ncd /path/to/esp-idf\n. ./export.sh\n\n# 1.1) Enable ccache to speed up compilation (recommended)\nexport IDF_CCACHE_ENABLE=1\n\n# 2) Go to your project and build\ncd /path/to/your/project\nidf.py set-target <target>    # Set target chip (once per project)\nidf.py build                 # Compile\nidf.py -p <PORT> -b <BAUD> flash  # Flash to device (optional)"
      },
      {
        "title": "Common commands",
        "body": "idf.py set-target <target> — Set chip target: esp32, esp32s2, esp32s3, esp32c3, esp32p4\nidf.py menuconfig — Configure project settings (must run in a new terminal window)\nidf.py build — Build the project\nidf.py update-dependencies — Update project component dependencies\nidf.py partition-table — Build partition table and print partition entries\nidf.py partition-table-flash — Flash partition table to device\nidf.py storage-flash — Flash storage filesystem partition\nidf.py size — Show firmware size information\nidf.py -p <PORT> -b <BAUD> flash — Flash firmware (default baud: 1152000)\nidf.py -p <PORT> monitor — Open serial monitor\nidf.py -p <PORT> -b <BAUD> monitor — Open serial monitor with specific baud (e.g. 1152000)\nidf.py -p <PORT> -b <BAUD> flash monitor — Flash then monitor\nbash {baseDir}/scripts/monitor_auto_attach.sh --project <PROJECT_DIR> --idf <IDF_DIR> --port <PORT> --baud <BAUD> — Auto attach serial (usbipd) and retry monitor on open failure\nbash {baseDir}/scripts/flash_with_progress.sh --project <PROJECT_DIR> --idf <IDF_DIR> --port <PORT> --mode <MODE> — Flash with real-time progress output (supports auto usbipd attach retry, error summary, and second retry)\n\nflash_with_progress 使用示例\n\n# 普通烧录整个固件（带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode flash\n\n# 加密烧录 app（带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode encrypted-app-flash\n\n# 仅烧录分区表（带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode partition-table-flash\n\n# 仅烧录文件系统分区（storage，带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode storage-flash\n\n# 指定波特率并关闭自动串口映射重试\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --baud 460800 \\\n  --mode flash \\\n  --no-auto-attach\n\n# 串口异常时自动二次重试（默认 retries=2，也可手动指定）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode encrypted-app-flash \\\n  --retries 2\n\nidf.py fullclean — Clean build directory"
      },
      {
        "title": "在新窗口打开 monitor（Windows + WSL2）",
        "body": "推荐用脚本方式，避免 PowerShell/cmd 引号和 UNC 路径问题。"
      },
      {
        "title": "在新窗口打开 menuconfig（必须）",
        "body": "menuconfig 是 TUI 交互界面，必须在新窗口打开（不要在非交互后台中运行）。\n\n在 WSL 直接运行（你已在独立终端时）：\n\nbash {baseDir}/scripts/run_menuconfig.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR>\n\n从 Windows PowerShell 拉起新窗口运行：\n\nStart-Process powershell -ArgumentList '-NoExit','-Command','wsl.exe -d <DISTRO> --cd / -- bash {baseDir}/scripts/run_menuconfig.sh --project <PROJECT_DIR> --idf <IDF_DIR>'"
      },
      {
        "title": "打开串口失败时自动映射并重试",
        "body": "当 idf.py monitor 因串口打开失败（端口不存在/被占用）报错时，可自动执行 usbipd 串口映射脚本并重试一次：\n\nbash {baseDir}/scripts/monitor_auto_attach.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --baud <BAUD> \\\n  --keyword \"ESP32\"\n\n在 WSL 创建启动脚本：\n\ncat >/tmp/run_monitor.sh <<'EOF'\n#!/usr/bin/env bash\nset -e\ncd /path/to/your/project\nsource /path/to/esp-idf/export.sh\nexec idf.py -p <PORT> -b 1152000 monitor\nEOF\nchmod +x /tmp/run_monitor.sh\n\n在 Windows PowerShell 新开窗口执行：\n\nStart-Process cmd.exe -WorkingDirectory C:\\ -ArgumentList '/k','wsl.exe -d <DISTRO> -- bash /tmp/run_monitor.sh'\n\n说明：\n\n使用 cmd.exe -WorkingDirectory C:\\ 可以避免 \\\\wsl.localhost\\... UNC 路径导致工作目录掉到 C:\\Windows。\n退出 monitor：Ctrl+]。"
      },
      {
        "title": "Workflow decision tree",
        "body": "If the user has no project yet → create from example/template; confirm target chip and IDF version.\nIf build fails → collect the first error lines; identify missing deps/toolchain/cmake/python packages; confirm IDF env.\nIf flash fails → confirm PORT permissions/WSL USB passthrough, baud rate, boot mode, correct chip target.\nIf monitor is gibberish → wrong baud (monitor uses app baud), wrong serial adapter settings, or wrong console encoding.\nIf boot loop / panic → request panic backtrace; decode with addr2line (or idf.py monitor built-in) and check partition/sdkconfig.\nIf [Errno 11] Could not exclusively lock port <PORT> → serial port is occupied by another process; force release it with:\nsudo fuser -k <PORT>"
      },
      {
        "title": "What to ask the user for (minimal)",
        "body": "Chip target: e.g. esp32, esp32s2, esp32s3, esp32c3, esp32p4.\nESP-IDF version + how it’s installed/activated (IDF Tools installer vs git clone; IDF_PATH / ESPIDF_ROOT).\nProject path + whether it’s an ESP-IDF project (has CMakeLists.txt, main/, sdkconfig).\nSerial port path: use <PORT> (e.g. /dev/ttyUSB0, /dev/ttyACM*, or WSL mapped /dev/ttyS*).\nExact failing command + the first error block in output."
      },
      {
        "title": "串口设备获取（Windows + WSL2）",
        "body": "先在 Windows PowerShell 找到串口号，再在 WSL2 里映射 USB 设备。"
      },
      {
        "title": "安装 usbipd-win（Windows，推荐）",
        "body": "在 管理员模式 PowerShell 中执行：\n\nwinget install dorssel.usbipd-win\n\n然后查看并映射设备：\n\n# Windows PowerShell：查看 USB 设备与 BUSID\nusbipd list\n\n# 将设备挂载到 WSL（每次重新插拔 USB 后都要重新执行）\nusbipd attach --wsl --busid=<BUSID>"
      },
      {
        "title": "串口自动映射（推荐）",
        "body": "可直接使用脚本自动选择并挂载串口设备（优先选择 Connected 区域中的 serial 设备，且优先 STATE=Shared）：\n\nbash {baseDir}/scripts/usbipd_attach_serial.sh\n\n常用参数：\n\n# 指定 BUSID\nbash {baseDir}/scripts/usbipd_attach_serial.sh --busid <BUSID>\n\n# 指定发行版\nbash {baseDir}/scripts/usbipd_attach_serial.sh --distro <DISTRO>\n\n# 按关键词筛选设备（如 ESP32 / COMxx / CP210x）\nbash {baseDir}/scripts/usbipd_attach_serial.sh --keyword \"ESP32\"\n\n# 仅预览，不执行\nbash {baseDir}/scripts/usbipd_attach_serial.sh --dry-run\n\n说明：\n\n每次 USB 设备重新插拔后，BUSID 可能变化，需要重新 usbipd list 或重新运行自动映射脚本。\n重新插拔 USB 后，通常都要再执行一次 usbipd attach --wsl --busid=<BUSID>（脚本会自动执行）。\n在 WSL2 内可用 ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null 确认串口节点。"
      },
      {
        "title": "首次需要手动加载内核模块（WSL 2.3.11+）",
        "body": "在较新的 WSL 版本中，内核采用模块化设计，vhci_hcd（虚拟主机控制器接口）驱动可能不会自动加载。\n\n在 WSL 终端执行：\n\nsudo modprobe vhci_hcd"
      },
      {
        "title": "New Feature: Create ESP-IDF Projects",
        "body": "Description: Create a new ESP-IDF project or create a project from an example in the ESP Component Registry.\nUsage:\nidf.py create-project <project_name> <project_path>\nidf.py create-project-from-example <example_name> <project_path>"
      },
      {
        "title": "Flash Encryption Support (加密烧录)",
        "body": "直接使用 idf.py 执行加密/非加密应用烧录：\n\n# 加密烧录整个固件 (bootloader + partition table + app)\nidf.py -p <PORT> encrypted-flash\n\n# 加密烧录 app 分区\nidf.py -p <PORT> encrypted-app-flash\n\n# 非加密烧录 app 分区\nidf.py -p <PORT> app-flash\n\n# 非加密烧录整个固件 (bootloader + partition table + app)\nidf.py -p <PORT> flash"
      },
      {
        "title": "references/",
        "body": "references/esp-idf-cli.md — concise command patterns + what to paste back when reporting errors.\nreferences/idf-py-help.txt — captured idf.py --help output for quick lookup/search.\n\nTo refresh the help text for your installed ESP-IDF version, run:\n\nscripts/capture_idf_help.sh"
      },
      {
        "title": "assets/",
        "body": "Not used by default."
      }
    ],
    "body": "esp-idf-helper\nGoal\n\nProvide a repeatable, command-line-first workflow for ESP-IDF development on Linux/WSL: configure → build → flash → monitor → debug/troubleshoot.\n\nQuick start (typical loop)\nMethod 1: Activate ESP-IDF first (Recommended)\n# 1) Source the ESP-IDF environment (once per terminal session)\ncd /path/to/esp-idf\n. ./export.sh\n\n# 1.1) Enable ccache to speed up compilation (recommended)\nexport IDF_CCACHE_ENABLE=1\n\n# 2) Go to your project and build\ncd /path/to/your/project\nidf.py set-target <target>    # Set target chip (once per project)\nidf.py build                 # Compile\nidf.py -p <PORT> -b <BAUD> flash  # Flash to device (optional)\n\nCommon commands\nidf.py set-target <target> — Set chip target: esp32, esp32s2, esp32s3, esp32c3, esp32p4\nidf.py menuconfig — Configure project settings (must run in a new terminal window)\nidf.py build — Build the project\nidf.py update-dependencies — Update project component dependencies\nidf.py partition-table — Build partition table and print partition entries\nidf.py partition-table-flash — Flash partition table to device\nidf.py storage-flash — Flash storage filesystem partition\nidf.py size — Show firmware size information\nidf.py -p <PORT> -b <BAUD> flash — Flash firmware (default baud: 1152000)\nidf.py -p <PORT> monitor — Open serial monitor\nidf.py -p <PORT> -b <BAUD> monitor — Open serial monitor with specific baud (e.g. 1152000)\nidf.py -p <PORT> -b <BAUD> flash monitor — Flash then monitor\nbash {baseDir}/scripts/monitor_auto_attach.sh --project <PROJECT_DIR> --idf <IDF_DIR> --port <PORT> --baud <BAUD> — Auto attach serial (usbipd) and retry monitor on open failure\nbash {baseDir}/scripts/flash_with_progress.sh --project <PROJECT_DIR> --idf <IDF_DIR> --port <PORT> --mode <MODE> — Flash with real-time progress output (supports auto usbipd attach retry, error summary, and second retry)\nflash_with_progress 使用示例\n# 普通烧录整个固件（带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode flash\n\n# 加密烧录 app（带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode encrypted-app-flash\n\n# 仅烧录分区表（带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode partition-table-flash\n\n# 仅烧录文件系统分区（storage，带进度）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode storage-flash\n\n# 指定波特率并关闭自动串口映射重试\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --baud 460800 \\\n  --mode flash \\\n  --no-auto-attach\n\n# 串口异常时自动二次重试（默认 retries=2，也可手动指定）\nbash {baseDir}/scripts/flash_with_progress.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --mode encrypted-app-flash \\\n  --retries 2\n\nidf.py fullclean — Clean build directory\n在新窗口打开 monitor（Windows + WSL2）\n\n推荐用脚本方式，避免 PowerShell/cmd 引号和 UNC 路径问题。\n\n在新窗口打开 menuconfig（必须）\n\nmenuconfig 是 TUI 交互界面，必须在新窗口打开（不要在非交互后台中运行）。\n\n在 WSL 直接运行（你已在独立终端时）：\nbash {baseDir}/scripts/run_menuconfig.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR>\n\n从 Windows PowerShell 拉起新窗口运行：\nStart-Process powershell -ArgumentList '-NoExit','-Command','wsl.exe -d <DISTRO> --cd / -- bash {baseDir}/scripts/run_menuconfig.sh --project <PROJECT_DIR> --idf <IDF_DIR>'\n\n打开串口失败时自动映射并重试\n\n当 idf.py monitor 因串口打开失败（端口不存在/被占用）报错时，可自动执行 usbipd 串口映射脚本并重试一次：\n\nbash {baseDir}/scripts/monitor_auto_attach.sh \\\n  --project <PROJECT_DIR> \\\n  --idf <IDF_DIR> \\\n  --port <PORT> \\\n  --baud <BAUD> \\\n  --keyword \"ESP32\"\n\n在 WSL 创建启动脚本：\ncat >/tmp/run_monitor.sh <<'EOF'\n#!/usr/bin/env bash\nset -e\ncd /path/to/your/project\nsource /path/to/esp-idf/export.sh\nexec idf.py -p <PORT> -b 1152000 monitor\nEOF\nchmod +x /tmp/run_monitor.sh\n\n在 Windows PowerShell 新开窗口执行：\nStart-Process cmd.exe -WorkingDirectory C:\\ -ArgumentList '/k','wsl.exe -d <DISTRO> -- bash /tmp/run_monitor.sh'\n\n\n说明：\n\n使用 cmd.exe -WorkingDirectory C:\\ 可以避免 \\\\wsl.localhost\\... UNC 路径导致工作目录掉到 C:\\Windows。\n退出 monitor：Ctrl+]。\nWorkflow decision tree\nIf the user has no project yet → create from example/template; confirm target chip and IDF version.\nIf build fails → collect the first error lines; identify missing deps/toolchain/cmake/python packages; confirm IDF env.\nIf flash fails → confirm PORT permissions/WSL USB passthrough, baud rate, boot mode, correct chip target.\nIf monitor is gibberish → wrong baud (monitor uses app baud), wrong serial adapter settings, or wrong console encoding.\nIf boot loop / panic → request panic backtrace; decode with addr2line (or idf.py monitor built-in) and check partition/sdkconfig.\nIf [Errno 11] Could not exclusively lock port <PORT> → serial port is occupied by another process; force release it with:\nsudo fuser -k <PORT>\n\nWhat to ask the user for (minimal)\nChip target: e.g. esp32, esp32s2, esp32s3, esp32c3, esp32p4.\nESP-IDF version + how it’s installed/activated (IDF Tools installer vs git clone; IDF_PATH / ESPIDF_ROOT).\nProject path + whether it’s an ESP-IDF project (has CMakeLists.txt, main/, sdkconfig).\nSerial port path: use <PORT> (e.g. /dev/ttyUSB0, /dev/ttyACM*, or WSL mapped /dev/ttyS*).\nExact failing command + the first error block in output.\n串口设备获取（Windows + WSL2）\n\n先在 Windows PowerShell 找到串口号，再在 WSL2 里映射 USB 设备。\n\n安装 usbipd-win（Windows，推荐）\n\n在 管理员模式 PowerShell 中执行：\n\nwinget install dorssel.usbipd-win\n\n\n然后查看并映射设备：\n\n# Windows PowerShell：查看 USB 设备与 BUSID\nusbipd list\n\n# 将设备挂载到 WSL（每次重新插拔 USB 后都要重新执行）\nusbipd attach --wsl --busid=<BUSID>\n\n串口自动映射（推荐）\n\n可直接使用脚本自动选择并挂载串口设备（优先选择 Connected 区域中的 serial 设备，且优先 STATE=Shared）：\n\nbash {baseDir}/scripts/usbipd_attach_serial.sh\n\n\n常用参数：\n\n# 指定 BUSID\nbash {baseDir}/scripts/usbipd_attach_serial.sh --busid <BUSID>\n\n# 指定发行版\nbash {baseDir}/scripts/usbipd_attach_serial.sh --distro <DISTRO>\n\n# 按关键词筛选设备（如 ESP32 / COMxx / CP210x）\nbash {baseDir}/scripts/usbipd_attach_serial.sh --keyword \"ESP32\"\n\n# 仅预览，不执行\nbash {baseDir}/scripts/usbipd_attach_serial.sh --dry-run\n\n\n说明：\n\n每次 USB 设备重新插拔后，BUSID 可能变化，需要重新 usbipd list 或重新运行自动映射脚本。\n重新插拔 USB 后，通常都要再执行一次 usbipd attach --wsl --busid=<BUSID>（脚本会自动执行）。\n在 WSL2 内可用 ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null 确认串口节点。\n首次需要手动加载内核模块（WSL 2.3.11+）\n\n在较新的 WSL 版本中，内核采用模块化设计，vhci_hcd（虚拟主机控制器接口）驱动可能不会自动加载。\n\n在 WSL 终端执行：\n\nsudo modprobe vhci_hcd\n\nNew Feature: Create ESP-IDF Projects\nDescription: Create a new ESP-IDF project or create a project from an example in the ESP Component Registry.\nUsage:\nidf.py create-project <project_name> <project_path>\nidf.py create-project-from-example <example_name> <project_path>\n\nFlash Encryption Support (加密烧录)\n\n直接使用 idf.py 执行加密/非加密应用烧录：\n\n# 加密烧录整个固件 (bootloader + partition table + app)\nidf.py -p <PORT> encrypted-flash\n\n# 加密烧录 app 分区\nidf.py -p <PORT> encrypted-app-flash\n\n# 非加密烧录 app 分区\nidf.py -p <PORT> app-flash\n\n# 非加密烧录整个固件 (bootloader + partition table + app)\nidf.py -p <PORT> flash\n\nBundled resources\nreferences/\nreferences/esp-idf-cli.md — concise command patterns + what to paste back when reporting errors.\nreferences/idf-py-help.txt — captured idf.py --help output for quick lookup/search.\n\nTo refresh the help text for your installed ESP-IDF version, run:\n\nscripts/capture_idf_help.sh\nassets/\n\nNot used by default."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/547895019/esp-idf-helper",
    "publisherUrl": "https://clawhub.ai/547895019/esp-idf-helper",
    "owner": "547895019",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/esp-idf-helper",
    "downloadUrl": "https://openagent3.xyz/downloads/esp-idf-helper",
    "agentUrl": "https://openagent3.xyz/skills/esp-idf-helper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/esp-idf-helper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/esp-idf-helper/agent.md"
  }
}