بنقرة واحدة
esp-idf-setup
Set up ESP-IDF development environment, create new projects, and verify configuration
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Set up ESP-IDF development environment, create new projects, and verify configuration
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Generate a printable Typst build guide (source + PDF) for an ESP32/MCU project by analyzing its docs, source, and schematic
Register a project in the monorepo — justfile mod, CI matrix, standard file inventory
Standardize credential handling for an ESP32 project (credentials.h.example, .gitignore, pre-commit protection)
Generate a CLAUDE.md for a project with build commands, hardware constraints, architecture, and development tasks
Audit project completeness against the monorepo standard checklist (docs, config, registration)
Generate a standardized README.md for an ESP32 project by analyzing source code, justfile, and hardware configuration
| name | esp-idf-setup |
| description | Set up ESP-IDF development environment, create new projects, and verify configuration |
| argument-hint | [setup|new <name> <platform>|check] |
| user-invocable | true |
| allowed-tools | Bash(docker:*), Bash(just:*), Bash(mkdir:*), Bash(ls:*), Write, Edit, Read, Glob |
Apply this skill when the user:
setup)new <name> <platform>)check)Based on $ARGUMENTS:
setup → Environment setupnew <name> <platform> → Create new projectcheck → Verify environmentAll ESP-IDF builds run inside Docker containers. No local ESP-IDF installation needed.
# Full environment: Docker images + dev tools
just setup-all
# Or individually:
just docker-build # Build ESP-IDF container image
just install-dev-tools # Install host-side linters/formatters
These run natively (not in container):
esptool — for flashing firmware (pip install esptool)clang-format — C/C++ formatting (brew install clang-format)cppcheck — C/C++ linting (brew install cppcheck)ruff — Python linting (pip install ruff)pre-commit — git hooks (pip install pre-commit)just docker-dev # Root-level interactive shell
just webserver::shell # Project-specific shell
Run the environment check:
just check-environment
Also check:
Available serial ports:
ls -la /dev/cu.usbserial-* /dev/ttyUSB* 2>/dev/null || echo "No USB serial devices found"
Docker availability:
docker --version
Project structure:
just --list
Provide a summary: Docker status, serial ports, projects found, missing dependencies.
If issues found:
just install-dev-tools"esp32 — ESP-IDF based ESP32 projectesp32-cam — ESP32-CAM specific projectarduino — Arduino platform projectstm32 — STM32 platform projectpackages/<domain>/$name/
├── justfile
├── CMakeLists.txt
├── sdkconfig.defaults
├── version.txt
├── main/
│ ├── CMakeLists.txt
│ └── main.c
└── README.md
# Project Name
# Run `just --list` to see available recipes
set positional-arguments
import '../../../tools/esp32.just'
project_dir := "packages/<domain>/project-name"
port := env("PORT", _detected_serial) # or _detected_s3 for ESP32-S3
target := "esp32" # or "esp32s3"
default:
@just --list
[group: "build"]
build:
#!/usr/bin/env bash
set -euo pipefail
echo "Building project-name..."
{{container_cmd}} compose -f {{compose_file}} run --rm \
-w /workspace/{{project_dir}} \
esp-idf \
bash -c "idf.py set-target {{target}} && idf.py build"
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(project-name)
idf_component_register(
SRCS "main.c"
INCLUDE_DIRS "."
REQUIRES driver nvs_flash esp_wifi
)
CONFIG_IDF_TARGET="esp32"
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_PARTITION_TABLE_SINGLE_APP=y
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
packages/arduino-projects/$name/
├── src/
│ └── main.cpp
├── include/
├── lib/
├── platformio.ini
└── README.md
packages/stm32-projects/$name/
├── src/
│ └── main.c
├── include/
├── Makefile
└── README.md
packages/<domain>/<name>/import '../../../tools/esp32.just'mod name 'packages/<domain>/<name>'just name::buildCreate idf_component.yml in component directory:
dependencies:
espressif/led_strip: "^2.0.0"
Place in project's components/ directory.
just webserver::menuconfig
just xbox::menuconfig
mod/wiring-doc