{"id":13580410,"url":"https://github.com/qmk/qmk_toolbox","last_synced_at":"2026-04-30T02:02:30.823Z","repository":{"id":38288652,"uuid":"102075885","full_name":"qmk/qmk_toolbox","owner":"qmk","description":"A Toolbox companion for QMK Firmware","archived":false,"fork":false,"pushed_at":"2025-11-28T21:42:38.000Z","size":19738,"stargazers_count":2992,"open_issues_count":29,"forks_count":554,"subscribers_count":53,"default_branch":"master","last_synced_at":"2026-02-11T00:37:37.279Z","etag":null,"topics":["atmel","avr","caterina","dfu","macos","qmk","qmk-firmware","stm32"],"latest_commit_sha":null,"homepage":"https://qmk.fm/toolbox","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qmk.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"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":{"open_collective":"qmk-firmware"}},"created_at":"2017-09-01T05:09:41.000Z","updated_at":"2026-02-10T00:19:03.000Z","dependencies_parsed_at":"2025-11-30T13:05:40.804Z","dependency_job_id":null,"html_url":"https://github.com/qmk/qmk_toolbox","commit_stats":{"total_commits":376,"total_committers":33,"mean_commits":"11.393939393939394","dds":"0.46808510638297873","last_synced_commit":"b88f114931d6c2a0134826b62f85d2ebb28c4b82"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/qmk/qmk_toolbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qmk","download_url":"https://codeload.github.com/qmk/qmk_toolbox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_toolbox/sbom","scorecard":{"id":754179,"data":{"date":"2025-08-11","repo":{"name":"github.com/qmk/qmk_toolbox","commit":"3d4300587799b56e6fff0b22afdbf391437065f4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":8,"reason":"Found 25/29 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":3,"reason":"2 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/labeler.yml:10","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/labeler.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":0,"reason":"binaries present in source code","details":["Warn: binary detected: macos/QMK Toolbox/Resources/avrdude:1","Warn: binary detected: macos/QMK Toolbox/Resources/bootloadHID:1","Warn: binary detected: macos/QMK Toolbox/Resources/dfu-programmer:1","Warn: binary detected: macos/QMK Toolbox/Resources/dfu-util:1","Warn: binary detected: macos/QMK Toolbox/Resources/hid_bootloader_cli:1","Warn: binary detected: macos/QMK Toolbox/Resources/libftdi1.2.5.0.dylib:1","Warn: binary detected: macos/QMK Toolbox/Resources/libhidapi.0.14.0.dylib:1","Warn: binary detected: macos/QMK Toolbox/Resources/libusb-0.1.4.dylib:1","Warn: binary detected: macos/QMK Toolbox/Resources/libusb-1.0.0.dylib:1","Warn: binary detected: macos/QMK Toolbox/Resources/mdloader:1","Warn: binary detected: macos/QMK Toolbox/Resources/teensy_loader_cli:1","Warn: binary detected: macos/QMK Toolbox/Resources/wb32-dfu-updater_cli:1","Warn: binary detected: windows/QMK Toolbox/Resources/avrdude.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/bootloadHID.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/dfu-programmer.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/dfu-util.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/hid_bootloader_cli.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/libftdi1.dll:1","Warn: binary detected: windows/QMK Toolbox/Resources/libhidapi-0.dll:1","Warn: binary detected: windows/QMK Toolbox/Resources/libusb-0-1-4.dll:1","Warn: binary detected: windows/QMK Toolbox/Resources/libusb-1.0.dll:1","Warn: binary detected: windows/QMK Toolbox/Resources/libwinpthread-1.dll:1","Warn: binary detected: windows/QMK Toolbox/Resources/mdloader.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/qmk_driver_installer.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/teensy_loader_cli.exe:1","Warn: binary detected: windows/QMK Toolbox/Resources/wb32-dfu-updater_cli.exe:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:126: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:75: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:104: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/labeler.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/qmk/qmk_toolbox/labeler.yml/master?enable=pin","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact beta not signed: https://api.github.com/repos/qmk/qmk_toolbox/releases/226688894","Warn: release artifact 0.3.3 not signed: https://api.github.com/repos/qmk/qmk_toolbox/releases/155810941","Warn: release artifact 0.3.2 not signed: https://api.github.com/repos/qmk/qmk_toolbox/releases/148000140","Warn: release artifact 0.3.1 not signed: https://api.github.com/repos/qmk/qmk_toolbox/releases/143775357","Warn: release artifact 0.3.0 not signed: https://api.github.com/repos/qmk/qmk_toolbox/releases/142323596","Warn: release artifact beta does not have provenance: https://api.github.com/repos/qmk/qmk_toolbox/releases/226688894","Warn: release artifact 0.3.3 does not have provenance: https://api.github.com/repos/qmk/qmk_toolbox/releases/155810941","Warn: release artifact 0.3.2 does not have provenance: https://api.github.com/repos/qmk/qmk_toolbox/releases/148000140","Warn: release artifact 0.3.1 does not have provenance: https://api.github.com/repos/qmk/qmk_toolbox/releases/143775357","Warn: release artifact 0.3.0 does not have provenance: https://api.github.com/repos/qmk/qmk_toolbox/releases/142323596"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/qmk/.github/SECURITY.md:1","Info: Found linked content: github.com/qmk/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/qmk/.github/SECURITY.md:1","Info: Found text in security policy: github.com/qmk/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T21:08:08.458Z","repository_id":38288652,"created_at":"2025-08-22T21:08:08.458Z","updated_at":"2025-08-22T21:08:08.458Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32451481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"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":["atmel","avr","caterina","dfu","macos","qmk","qmk-firmware","stm32"],"created_at":"2024-08-01T15:01:50.863Z","updated_at":"2026-04-30T02:02:30.781Z","avatar_url":"https://github.com/qmk.png","language":"C#","funding_links":["https://opencollective.com/qmk-firmware"],"categories":["C# #","Keyboard","Firmware Tools, Libraries, and Frameworks","Build your own keyboard (Do it yourself - DIY)","C#"],"sub_categories":["Firmware"],"readme":"# QMK Toolbox\n\n[![Latest Release](https://img.shields.io/github/v/release/qmk/qmk_toolbox?color=3D87CE\u0026label=Latest\u0026sort=semver\u0026style=for-the-badge)](https://github.com/qmk/qmk_toolbox/releases/latest)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/qmk/qmk_toolbox/build.yml?logo=github\u0026style=for-the-badge)](https://github.com/qmk/qmk_toolbox/actions?query=workflow%3ACI+branch%3Amaster)\n[![Discord](https://img.shields.io/discord/440868230475677696.svg?logo=discord\u0026logoColor=white\u0026color=7289DA\u0026style=for-the-badge)](https://discord.gg/qmk)\n\nThis is a collection of flashing tools packaged into one app. It supports auto-detection and auto-flashing of firmware to keyboards.\n\n|Windows|macOS|\n|-------|-----|\n|[![Windows](https://i.imgur.com/jHaX9bV.png)](https://i.imgur.com/jHaX9bV.png)|[![macOS](https://i.imgur.com/8hZEfDD.png)](https://i.imgur.com/8hZEfDD.png)|\n\n## Flashing\n\nQMK Toolbox supports the following bootloaders:\n\n - ARM DFU (APM32, Kiibohd, STM32, STM32duino) via [dfu-util](http://dfu-util.sourceforge.net/)\n - Atmel/LUFA/QMK DFU via [dfu-programmer](http://dfu-programmer.github.io/)\n - Atmel SAM-BA (Massdrop) via [Massdrop Loader](https://github.com/massdrop/mdloader)\n - BootloadHID (Atmel, PS2AVRGB) via [bootloadHID](https://www.obdev.at/products/vusb/bootloadhid.html)\n - Caterina (Arduino, Pro Micro) via [avrdude](http://nongnu.org/avrdude/)\n - HalfKay (Teensy, Ergodox EZ) via [Teensy Loader](https://pjrc.com/teensy/loader_cli.html)\n - LUFA/QMK HID via [hid_bootloader_cli](https://github.com/abcminiuser/lufa)\n - WB32 DFU (WB32) via [wb32-dfu-updater_cli](https://github.com/WestberryTech/wb32-dfu-updater)\n - LUFA Mass Storage\n\nAnd the following ISP flashers:\n\n - AVRISP (Arduino ISP)\n - USBasp (AVR ISP)\n - USBTiny (AVR Pocket)\n\nIf there's an interest in any others, they can be added if their commands are known.\n\n## HID Console\n\nThe Toolbox also listens to HID messages on usage page `0xFF31` and usage `0x0074`, compatible with PJRC's [`hid_listen`](https://www.pjrc.com/teensy/hid_listen.html).\n\nIf you have `CONSOLE_ENABLE = yes` in your keyboard's `rules.mk`, you can print messages with `xprintf()`, useful for debugging:\n\n![Hello world from Console](https://i.imgur.com/bY8l233.png)\n\nSee the [QMK Docs](https://docs.qmk.fm/#/newbs_testing_debugging?id=debugging) for more information.\n\n## Installation\n\n### System Requirements\n\n* macOS 12 (Monterey) or higher\n* Windows 10 May 2020 Update (20H1) or higher\n\n### Dependencies\n\nWhen using the QMK Toolbox on Windows, it will prompt at first run to install the necessary drivers.\n\nIf you run into any issues with \"Device not found\" when flashing, then you may need to use [Zadig](https://docs.qmk.fm/#/driver_installation_zadig) to fix the issue.\n\n### Download\n\nThe [current version](https://github.com/qmk/qmk_toolbox/releases) of QMK Toolbox is **0.3.3**.\n\n* **Windows:** [standalone](https://github.com/qmk/qmk_toolbox/releases/latest/download/qmk_toolbox.exe), [installer](https://github.com/qmk/qmk_toolbox/releases/latest/download/qmk_toolbox_install.exe)\n* **macOS**: [standalone](https://github.com/qmk/qmk_toolbox/releases/latest/download/QMK.Toolbox.app.zip), [installer](https://github.com/qmk/qmk_toolbox/releases/latest/download/QMK.Toolbox.pkg)\n\nFor Homebrew users, it is also available as a Cask:\n\n```sh\nbrew install qmk-toolbox\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmk%2Fqmk_toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqmk%2Fqmk_toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmk%2Fqmk_toolbox/lists"}