{
  "markdown": "<div align=\"center\">\n\n简体中文 | [English](./README.en.md)\n\n# embeddedskills — 嵌入式 AI 开发调试 Skill 集\n\n**让 AI 编码助手直接操控编译器、调试器和通信总线，实现从代码生成到硬件验证的完整闭环。**\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE)\n[![Status](https://img.shields.io/badge/status-active-success?style=flat-square)]()\n[![Stars](https://img.shields.io/github/stars/zhinkgit/embeddedskills?style=flat-square)](https://github.com/zhinkgit/embeddedskills/stargazers)\n[![CI](https://github.com/zhinkgit/embeddedskills/actions/workflows/ci.yml/badge.svg)](https://github.com/zhinkgit/embeddedskills/actions/workflows/ci.yml)\n\n[![Claude Code](https://img.shields.io/badge/Claude_Code-black?style=flat-square&logo=anthropic&logoColor=white)](https://claude.ai/code)\n[![OpenAI Codex CLI](https://img.shields.io/badge/OpenAI_Codex_CLI-412991?style=flat-square&logo=openai&logoColor=white)](https://github.com/openai/codex)\n[![TRAE](https://img.shields.io/badge/TRAE-0078D4?style=flat-square)](https://trae.ai)\n[![Cursor](https://img.shields.io/badge/Cursor-000?style=flat-square&logo=cursor&logoColor=white)](https://cursor.sh)\n[![Kiro](https://img.shields.io/badge/Kiro-232F3E?style=flat-square&logo=amazon&logoColor=white)](https://kiro.ai)\n\n</div>\n\n---\n\n## ✨ 三大核心优势\n\n### 🔁 嵌入式 AI 工作流闭环\n\n嵌入式开发有一道纯软件开发没有的鸿沟：写完代码只是开始，编译、烧录、调试每一步都需要人在中间传递信息。\n\n> AI 改完代码 → **你**手动编译 → **你**手动烧录 → **你**把报错复制给 AI → AI 再改 → **你**再编译……\n\n**embeddedskills 把这个循环交给 AI 自己跑：**\n\n```mermaid\nflowchart TD\n    A[\"💬 需求沟通\"] --> B[\"✍️ 代码生成与优化\"]\n    B --> C[\"🔨 自动编译 keil build / gcc build\"]\n    C -->|有错误| D[\"🤖 AI 读取编译错误\"]\n    D --> B\n    C -->|通过| E[\"⚡ 自动烧录 openоcd flash / jlink flash / probe-rs flash\"]\n    E --> F[\"🔬 自动调试验证\"]\n    F -->|异常| G[\"🤖 AI 读取调试信息\"]\n    G --> B\n    F -->|正常| H[\"✅ 提交最终代码\"]\n\n    style A fill:#4CAF50,color:#fff\n    style H fill:#4CAF50,color:#fff\n    style C fill:#2196F3,color:#fff\n    style E fill:#2196F3,color:#fff\n    style F fill:#FF9800,color:#fff\n    style D fill:#f44336,color:#fff\n    style G fill:#f44336,color:#fff\n```\n\n| 环节 | 传统 AI 辅助 | AI + embeddedskills |\n|------|------------|-------------------|\n| 代码编写 | AI 生成 | AI 生成 |\n| 编译构建 | **人工操作** | ✅ AI 调用 Keil / GCC |\n| 烧录下载 | **人工操作** | ✅ AI 调用 J-Link / OpenOCD |\n| 调试验证 | **人工操作** | ✅ AI 断点 / 寄存器 / 内存 |\n| 通信调试 | **人工操作** | ✅ AI 串口 / CAN / 网络 |\n| 错误修正 | **人工转述给 AI** | ✅ AI 读取并自主修正 |\n\n---\n\n### 🆓 完全免费，不限 AI 工具\n\n本项目完全开源免费（MIT 协议）。只要 AI 工具支持 Skill / CLAUDE.md / Rules 协议，均可直接使用，包括但不限于：\n\n- **Claude Code**\n- **OpenAI Codex CLI**\n- **TRAE**\n- **Cursor、Kiro、Windsurf** 等其他支持 Skill 协议的工具\n\n无需付费订阅任何附加服务，AI 工具自由切换。\n\n---\n\n### ⚡ 使用简单，无需迁移工程\n\n**直接在现有项目上使用，无需改动任何工程文件。** 支持业界主流工程体系和调试器：\n\n| 维度 | 支持范围 |\n|------|---------|\n| **构建系统** | Keil MDK 工程、CMake 工程 |\n| **调试器** | J-Link（SEGGER）、CMSIS-DAP / DAPLink |\n| **烧录框架** | OpenOCD、probe-rs 兼容工具链 |\n| **通信总线** | 串口（UART）、CAN / CAN-FD、以太网 |\n\n一条命令安装，AI 即可自动识别工程类型并开始工作：\n\n```bash\nnpx skills add https://github.com/zhinkgit/embeddedskills -g -y\n```\n\n---\n\n## Skill 一览\n\n| 分类 | Skill | 能做什么 | 主要子命令 |\n|:---:|:---:|---|---|\n| 🔨 构建 | **keil** | Keil MDK 工程扫描、Target 枚举、编译、重建、清理 | `scan` `targets` `build` `rebuild` `clean` `flash` |\n| 🔨 构建 | **gcc** | CMake 型 GCC 工程配置、编译、大小分析 | `scan` `presets` `configure` `build` `rebuild` `size` |\n| 🔨 构建 | **eide** | EIDE 工程扫描、配置枚举、构建和大小分析 | `scan` `configs` `build` `rebuild` `clean` `size` |\n| 🔬 调试 | **jlink** | 烧录、读写内存/寄存器、RTT/SWO、GDB 调试 | `flash` `read-mem` `write-mem` `regs` `rtt` `swo` + GDB |\n| 🔬 调试 | **openocd** | 烧录、擦除、GDB/Telnet、Semihosting/ITM | `flash` `erase` `reset` `gdb-server` `semihosting` `itm` |\n| 🔬 调试 | **probe-rs** | 探针发现、烧录、复位、内存读写、GDB 调试、RTT | `list` `info` `flash` `erase` `reset` `read-mem` `write-mem` `gdb` `rtt` |\n| 🔌 通信 | **serial** | 扫描串口、实时监控、发送数据、Hex 查看 | `scan` `monitor` `send` `hex` `log` |\n| 🔌 通信 | **can** | CAN/CAN-FD 监控、发帧、DBC 解码、统计 | `scan` `monitor` `send` `decode` `stats` |\n| 🔌 通信 | **net** | 抓包分析、连通性测试、端口扫描、流量统计 | `capture` `analyze` `ping` `scan` `stats` |\n| 🔌 通信 | **ssh** | SSH 配置、环境解析、只读探测、远程命令、上传下载、跳板机和端口转发 | `list` `find` `resolve` `show` `add` + exec/probe/transfer/tunnel |\n| 🔌 通信 | **terminal** | 串口、SSH、本地 Shell 双向交互会话 | `start` `send` `read` `attach` `stop` |\n| 🎯 编排 | **workflow** | 自动识别工程 → 选择工具链 → 串联全流程 | `plan` `build` `build-flash` `build-debug` `observe` `diagnose` |\n\n> [!TIP]\n> `Keil / GCC` 与 `J-Link / OpenOCD / probe-rs` 可自由正交组合，六种搭配均可开箱即用。\n\n---\n\n## 安装\n\n### 方法一：npx（推荐）\n\n```bash\n# 一键安装全部 skill\nnpx skills add https://github.com/zhinkgit/embeddedskills -g -y\n\n# 只安装需要的 skill\nnpx skills add https://github.com/zhinkgit/embeddedskills --skill jlink -g -y\n\n# 管理\nnpx skills ls -g        # 查看已安装\nnpx skills update -g    # 更新\nnpx skills remove -g    # 移除\n```\n\n### 方法二：直接 clone\n\n```bash\n# Claude Code（全局）\ngit clone https://github.com/zhinkgit/embeddedskills ~/.claude/skills/embeddedskills\n\n# 仅当前项目\ngit clone https://github.com/zhinkgit/embeddedskills .claude/skills/embeddedskills\n```\n\n> [!NOTE]\n> **[→ 完整安装与使用手册](docs/getting-started.md)**，包含截图演示和配置说明。\n\n---\n\n## 工作原理\n\n三个关键设计让 AI 能真正自主闭环：\n\n<details>\n<summary><b>① 封装命令行工具</b></summary>\n\n每个 Skill 是一组 Python 脚本，将底层工具（UV4.exe、cmake、JLink.exe、openocd、probe-rs、tshark 等）的命令行参数和交互流程转化为结构化子命令，AI 可以像调用函数一样调用这些工具。\n\n</details>\n\n<details>\n<summary><b>② 通过 SKILL.md 暴露给 AI</b></summary>\n\n每个 Skill 目录下的 `SKILL.md` 以自然语言描述能力、子命令和使用场景。AI 读取后即可正确调用，**无需额外训练或配置**，任何支持 Skill 协议的 AI 工具开箱即用。\n\n</details>\n\n<details>\n<summary><b>③ 统一 JSON 输出，驱动下一步决策</b></summary>\n\n所有脚本返回统一结构的 JSON，AI 直接解析状态、摘要和建议，自主决定下一步操作：\n\n```json\n{\n  \"status\": \"ok | error\",\n  \"action\": \"build\",\n  \"summary\": \"编译成功，0 errors，2 warnings\",\n  \"details\": { \"warnings\": [\"unused variable 'x' at main.c:42\"] },\n  \"artifacts\": { \"hex\": \".embeddedskills/build/output.hex\" },\n  \"next_actions\": [\"flash to device\"]\n}\n```\n\n</details>\n\n<br>\n\n**三层配置**，按需覆盖，优先级从高到低：\n\n```\nCLI 参数  ──►  skill/config.json（工具路径、硬件参数）\n          ──►  .embeddedskills/config.json（目标芯片、接口、日志目录）\n          ──►  .embeddedskills/state.json（最近一次构建/烧录/调试记录）\n          ──►  默认值\n```\n\n**统一日志目录：**\n\n```\nworkspace/\n└── .embeddedskills/\n    ├── build/          ← 编译日志与 hex/bin 产物\n    └── logs/\n        ├── serial/     ← 串口监控日志\n        ├── can/        ← CAN 报文日志\n        └── net/        ← 网络抓包文件\n```\n\n---\n\n## 外部依赖\n\n<details>\n<summary>展开查看各 Skill 所需依赖</summary>\n\n| Skill | 依赖 |\n|---|---|\n| keil | Keil MDK (UV4.exe) |\n| gcc | CMake · Ninja/Make · ARM GNU Toolchain |\n| jlink | SEGGER J-Link Software · arm-none-eabi-gdb |\n| openocd | OpenOCD · 调试器驱动 (ST-Link / CMSIS-DAP / DAPLink / FTDI) |\n| probe-rs | probe-rs CLI · arm-none-eabi-gdb |\n| serial | pyserial · USB 转串口驱动 |\n| can | python-can · cantools · pyserial · USB-CAN 驱动 |\n| net | Wireshark (tshark) · Npcap |\n| ssh | OpenSSH 客户端 (`ssh` / `scp` / `ssh-keygen`) |\n| terminal | pyserial（串口后端）· OpenSSH 客户端（SSH 后端） |\n\n> 除 CAN、串口和 terminal 的串口后端外，所有 Skill 均基于 Python 标准库实现，无需额外安装 Python 依赖。\n\n> [!WARNING]\n> Windows 下若要让 `probe-rs` 驱动 `J-Link`，通常需要把驱动切到 `WinUSB`，这会影响 SEGGER 官方工具继续使用。若你仍依赖 J-Link 官方工具链，优先继续使用现有 `jlink` skill。\n\n</details>\n\n---\n\n## 完成进度\n\n| Skill | 状态 |\n|---|:---:|\n| keil | ✅ 已完成测试 |\n| gcc | ✅ 已完成测试 |\n| platformio | 🔧 待支持 |\n| jlink | ✅ 已完成测试 |\n| openocd | ✅ 已完成测试 |\n| probe-rs | ✅ 已完成测试 |\n| pyocd | 🔧 待支持 |\n| serial | ✅ 已完成测试 |\n| net | ✅ 已完成测试 |\n| can | 🔧 待测试 |\n| ssh | ✅ 已完成测试 |\n| terminal | 🔧 待硬件测试 |\n| workflow | ✅ 已完成测试 |\n\n---\n\n## Star History\n\n<a href=\"https://star-history.dera.page/#zhinkgit/embeddedskills&type=date&legend=top-left\">\n <picture>\n   <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://star-history.dera.page/svg?repos=zhinkgit/embeddedskills&type=date&theme=dark&legend=top-left\" />\n   <source media=\"(prefers-color-scheme: light)\" srcset=\"https://star-history.dera.page/svg?repos=zhinkgit/embeddedskills&type=date&legend=top-left\" />\n   <img alt=\"Star History Chart\" src=\"https://star-history.dera.page/svg?repos=zhinkgit/embeddedskills&type=date&legend=top-left\" />\n </picture>\n</a>\n\n欢迎提 Issue 和 PR。感谢 [Linux.do](https://linux.do/) 社区支持。\n",
  "bytes": 7892,
  "sha": "494b93a5127045d4f490c336cc0cb541f64d5a23bc4b348ff4fd991ab56f703f",
  "repo_slug": "zhinkgit/embeddedskills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://api.agentalog.com/api/listings/skl_zhinkgit_embeddedskills_gcc_f88b48cf/readme"
}