{"id":13720969,"url":"https://github.com/mylonics/zephyr-ide","last_synced_at":"2026-05-24T20:05:52.145Z","repository":{"id":237300941,"uuid":"794240563","full_name":"mylonics/zephyr-ide","owner":"mylonics","description":"Zephyr Extension for Visual Studio Code","archived":false,"fork":false,"pushed_at":"2025-10-14T22:18:07.000Z","size":8891,"stargazers_count":57,"open_issues_count":5,"forks_count":9,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-10-15T00:04:46.103Z","etag":null,"topics":["extension-vscode","ide","visual-studio-code","zephyr","zephyr-rtos"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=mylonics.zephyr-ide","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mylonics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["rijesha"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2024-04-30T18:17:52.000Z","updated_at":"2025-10-14T22:18:12.000Z","dependencies_parsed_at":"2025-06-13T16:47:13.537Z","dependency_job_id":"8c05ad87-4bf8-48f1-a220-bf30a630b238","html_url":"https://github.com/mylonics/zephyr-ide","commit_stats":null,"previous_names":["mylonics/zephyr-ide"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/mylonics/zephyr-ide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylonics%2Fzephyr-ide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylonics%2Fzephyr-ide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylonics%2Fzephyr-ide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylonics%2Fzephyr-ide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mylonics","download_url":"https://codeload.github.com/mylonics/zephyr-ide/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mylonics%2Fzephyr-ide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280154399,"owners_count":26281827,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-20T02:00:06.978Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["extension-vscode","ide","visual-studio-code","zephyr","zephyr-rtos"],"created_at":"2024-08-03T01:01:10.559Z","updated_at":"2026-05-24T20:05:52.139Z","avatar_url":"https://github.com/mylonics.png","language":"TypeScript","funding_links":["https://github.com/sponsors/rijesha"],"categories":["Tools"],"sub_categories":["Editors \u0026 IDEs"],"readme":"# IDE for Zephyr\n\n\u003cimg src=\"https://raw.githubusercontent.com/mylonics/zephyr-ide/main/docs/media/zephyr-ide_branding.png\" alt=\"IDE for Zephyr — VS Code extension for Zephyr RTOS embedded development\" width=\"50%\"/\u003e\n\nA Visual Studio Code extension for [Zephyr RTOS](https://zephyrproject.org/) embedded firmware development. Build, flash, and debug Zephyr projects for ARM Cortex-M, RISC-V, Xtensa, and x86 targets — including nRF52, nRF5340, STM32, ESP32, Raspberry Pi Pico, and any other board supported by Zephyr — without leaving VS Code. Automates host tool installation, Zephyr SDK management via `west sdk`, west workspace setup, and Cortex-Debug integration so you can go from zero to a running build in minutes.\n\nWorks with nRF Connect SDK (NCS), plain Zephyr, or any `west`-based manifest. Also integrates with Docker, devcontainers, and existing Zephyr installations via `ZEPHYR_BASE` detection.\n\nInstall from the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mylonics.zephyr-ide) or the [Open VSX Registry](https://open-vsx.org/extension/mylonics/zephyr-ide). An extension pack is also available on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mylonics.zephyr-ide-extension-pack) and [Open VSX](https://open-vsx.org/extension/mylonics/zephyr-ide-extension-pack), bundling Cortex-Debug, C/C++, Serial Monitor, Devicetree LSP, and CMake support.\n\n*Formerly known as Zephyr IDE.*\n\nYou can read about the motivation behind the project [here](https://mylonics.com/blog/zephyr-ide/).\n\n![IDE for Zephyr VS Code extension — setup panel, project tree view, and build dashboard](https://raw.githubusercontent.com/mylonics/zephyr-ide/main/docs/media/overview.png)\n\n## Why IDE for Zephyr\n\n- **Automated host tool install** — follows the [Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/develop/getting_started/index.html#install-dependencies) on Ubuntu, macOS, and Windows. Skip it if you already have the tools installed.\n- **Automated SDK install** — drives `west sdk` to install and manage SDK versions and toolchains.\n- **Full Cortex-Debug integration** — built-in launch templates for ST-Link, J-Link, OpenOCD, and Black Magic Probe, plus helper commands that resolve project, build, ELF, GDB, and toolchain paths from your active build.\n- **Multiple Zephyr workspaces** — register several west workspaces and switch between them seamlessly without reopening VS Code.\n- **Team-shareable projects** — projects, builds, runner profiles, KConfig, devicetree overlays, and per-build west/CMake args live in a human-readable `zephyr-ide.json` you can commit.\n- **Guided project + build creation** — add an existing app or copy from a Zephyr sample, then add as many builds as you need and bind each to a Runner Profile.\n- **Twister test integration** — add, run, and reconfigure Twister tests from the same UI as builds.\n- **Cross-platform** — Linux, macOS, and Windows.\n\n## Features\n\n### Workspace setup \u0026 SDK management\n\n- Installs host tools (CMake, Python 3, Ninja, DTC, gcc) on supported platforms\n- Sets up west via built-in `west.yml` templates or your own manifest\n- Clones existing west or IDE for Zephyr workspaces from Git\n- Adopts existing `.west` folders or external Zephyr installations via `ZEPHYR_BASE`\n- Installs and manages Zephyr SDK versions and per-architecture toolchains through `west sdk`\n- Register and switch between multiple west workspaces from one VS Code window\n\n### Projects \u0026 builds\n\n- Add existing applications or create new ones from Zephyr samples\n- Multiple projects per workspace, multiple builds per project, shared Runner Profiles across builds\n- Per-project and per-build KConfig and devicetree overlay files\n- Per-build board selection, Runner Profile bindings, and west / CMake argument overrides\n- Custom project / build variables surfaced through launch configurations\n- Configuration stored in human-readable `zephyr-ide.json` for version control\n\n### Build, flash \u0026 debug\n\n- Build, build pristine, clean, and flash from the status bar or project panel\n- Concurrent builds with per-target locking\n- Built-in `zephyr-ide` debugger that auto-translates `runners.yaml` into a Cortex-Debug session — no per-runner launch.json required\n- Runner Profiles bundle Flash / Debug / Attach binds (Zephyr runner with args, or `launch.json` entry) — with auto-fallback to `runners.yaml` defaults\n- Profiles live at user scope (`zephyr-ide.runnerProfiles` setting) or workspace scope (`.vscode/zephyr-ide.json`) and are edited from a dedicated CRUD webview panel\n- Cortex-Debug launch templates for ST-Link, J-Link, OpenOCD, and Black Magic Probe\n- Launch helper commands that resolve project, build, ELF, GDB, toolchain, and board paths\n- Debug Select configuration for picking which build to debug at launch time\n- Multi-root and `.code-workspace` aware debug session resolution\n\n### Productivity\n\n- Native VS Code tree view for projects, builds, runner profiles, and tests\n- Active project status bar control with automatic targeting based on the open file\n- Build Dashboard — interactive memory explorer, Kconfig viewer, and devicetree viewer\n- MenuConfig and GuiConfig editors\n- ROM and RAM usage reports\n- DTSh devicetree shell\n- Integrated west terminal for ad-hoc commands\n- Twister test panel for adding, running, and reconfiguring tests\n\n## Getting Started\n\nThe full documentation is available at [zephyr-ide.mylonics.com](https://zephyr-ide.mylonics.com/).\n\n### Video tutorials\n\n[![Getting Started with IDE for Zephyr](https://mylonics.com/assets/images/zephyr-ide/getting_started_thumbnail.png)](https://www.youtube.com/watch?v=Asfolnh9kqM\u0026t)\n\n[![STM32 Board Setup and Debugging](https://mylonics.com/assets/images/zephyr-ide/board_setup_thumbnail.png)](https://www.youtube.com/watch?v=TXcTzyswBMQ)\n\nA reference [sample project](https://github.com/mylonics/zephyr-ide-sample-project) is also available.\n\n## Requirements\n\nThe extension can install host tools (CMake, Python 3, Ninja, Devicetree Compiler, gcc) automatically on Ubuntu/Debian, macOS, and Windows. On other platforms, install them via your package manager — see the [host tools documentation](https://zephyr-ide.mylonics.com/getting-started/host-tools/) and consider opening an issue or PR to have the IDE do it automatically for you in the future.\n\nIf Zephyr is already installed on your machine (including nRF Connect SDK, Zephyr SDK, or any `west`-managed workspace), set `ZEPHYR_BASE` and the extension will use it directly. See [External Environments](https://zephyr-ide.mylonics.com/getting-started/external-environments/).\n\n### Supported hardware\n\nAny board supported by Zephyr RTOS, including: Nordic nRF52832/nRF52840/nRF5340, STM32 (all families), ESP32/ESP32-S3, Raspberry Pi Pico (RP2040), i.MX RT, NXP LPC, Microchip SAM, TI CC13xx/CC26xx, and hundreds more. Simulation targets including `native_sim` and QEMU are also fully supported.\n\n## Debug architecture\n\nThe `zephyr-ide` debug type synthesizes a `cortex-debug` configuration from\nthe build's `runners.yaml`, so most boards work with no debug config beyond\n`{ \"type\": \"zephyr-ide\", \"request\": \"launch\" }`. The Zephyr runner is mapped\nto a cortex-debug `servertype` via one of three paths:\n\n| Path | Runners | How it works |\n| --- | --- | --- |\n| **Native** | `jlink`, `openocd`, `pyocd`, `stlink`, `stm32cubeprogrammer-stlink`, `blackmagicprobe`/`bmp`, `qemu` | cortex-debug speaks the GDB protocol to its built-in server. Zephyr IDE lifts `runners.yaml` args into the matching cortex-debug fields (`configFiles`, `device`, `speed`, `interface`, `BMPGDBSerialPort`, …). |\n| **External bridge** | `nrfjprog`, `linkserver`, `esp32`, `stm32cubeprogrammer` | Zephyr IDE spawns `west debugserver --runner \u003cr\u003e --build-dir \u003cb\u003e`, parses the listening `host:port` from its stdout, and hands cortex-debug a `servertype: \"external\"` config pointing at it. The server child is killed when the debug session ends. |\n| **Unsupported** | flash-only runners (`dfu-util`, `uf2`, `bossac`, `teensy`, …) | The provider surfaces an actionable error listing the rejected runners. Switch to a debug-capable runner or write a hand-rolled cortex-debug config. |\n\n\u003e **Note on test coverage:** Not all debug runner paths and hardware combinations have been exercised. As a general rule — if you can start a debug session using a hand-written Cortex-Debug `launch.json`, the `zephyr-ide` debug type should also work for that same setup. If a runner path that should work gives you trouble, you can always fall back to a manual Cortex-Debug configuration in your `launch.json` in the meantime. Please [raise an issue on GitHub](https://github.com/mylonics/zephyr-ide/issues) so it can be tracked and fixed.\n\n### Field precedence\n\nWhen the same cortex-debug field can come from multiple sources, the\nfollowing order applies (last wins):\n\n1. `runners.yaml` (the build-system source of truth).\n2. The active runner profile's `extraArgs`.\n3. The runner profile's `bindOverrides[debug].extraArgs` (per-build override).\n4. The user's `launch.json` entry — any cortex-debug field set there\n   overrides everything except: `type`, `request`, `name`, `runner`, and\n   `rtos` (Zephyr IDE controls these).\n\n### Probe overrides for OpenOCD and pyOCD\n\nThe runner-profile editor exposes a **Probe / Interface** dropdown for the\n`openocd` and `pyocd` runners. Selecting a probe writes the corresponding\noverride into the profile's `extraArgs` (`--openocd-config interface/\u003cprobe\u003e.cfg`\nfor OpenOCD, `--probe=\u003ctype\u003e` for pyOCD), and Zephyr IDE filters any\nconflicting `interface/*.cfg` entry that came from `runners.yaml` so the\nchosen probe is not double-loaded. To use a probe not in the dropdown,\ntype its full cfg path or pyOCD probe URL into the **Extra args** field\ndirectly — the override semantics are identical.\n\n### External GDB servers\n\nTo connect to an already-running GDB server (Segger Ozone, a vendor IDE,\na manually-started `west debugserver`, …) supply `gdbTarget` in\n`launch.json`:\n\n```jsonc\n{\n  \"name\": \"Zephyr IDE: External GDB\",\n  \"type\": \"zephyr-ide\",\n  \"request\": \"launch\",\n  \"runner\": \"nrfjprog\",\n  \"gdbTarget\": \"127.0.0.1:2331\"\n}\n```\n\nWhen `gdbTarget` is present, Zephyr IDE suppresses its own bridge spawn\nand uses the user-supplied endpoint directly.\n\n## Known Issues\n\n- **Dev containers in WSL with Windows folders**: keep your workspace inside the Linux file system (e.g. `/home/user/project`) rather than `/mnt/c/...`. This is a `west boards` limitation.\n\n## Release Notes\n\nSee [CHANGELOG.md](CHANGELOG.md) for the full release history. Highlights for the 4.0 series are summarized in [What's New in 4.0](https://zephyr-ide.mylonics.com/whats-new-4-0/).\n\n## Development\n\nSee the [Developer Guide](https://zephyr-ide.mylonics.com/developer-guide/) for instructions on building, debugging, and contributing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmylonics%2Fzephyr-ide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmylonics%2Fzephyr-ide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmylonics%2Fzephyr-ide/lists"}