{"id":23739295,"url":"https://github.com/qmk/qmk_configurator","last_synced_at":"2025-06-10T21:19:25.409Z","repository":{"id":37336113,"uuid":"107621517","full_name":"qmk/qmk_configurator","owner":"qmk","description":"The QMK Configurator","archived":false,"fork":false,"pushed_at":"2025-04-24T18:06:23.000Z","size":28298,"stargazers_count":752,"open_issues_count":97,"forks_count":358,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-06-05T09:28:04.412Z","etag":null,"topics":["firmware-files","qmk-configurator"],"latest_commit_sha":null,"homepage":"http://config.qmk.fm","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"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":".github/FUNDING.yml","license":null,"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},"funding":{"open_collective":"qmk-firmware"}},"created_at":"2017-10-20T02:18:40.000Z","updated_at":"2025-06-02T03:16:58.000Z","dependencies_parsed_at":"2023-12-21T17:16:14.378Z","dependency_job_id":"8a37e252-9165-40ab-a0b9-8e0c09d0f57d","html_url":"https://github.com/qmk/qmk_configurator","commit_stats":{"total_commits":1193,"total_committers":161,"mean_commits":7.409937888198757,"dds":0.6797988264878458,"last_synced_commit":"ae0732ac579ff1ea3cf680d9229786f5cb0ed34d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_configurator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_configurator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_configurator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_configurator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qmk","download_url":"https://codeload.github.com/qmk/qmk_configurator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmk%2Fqmk_configurator/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258640186,"owners_count":22734339,"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","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":["firmware-files","qmk-configurator"],"created_at":"2024-12-31T09:36:45.160Z","updated_at":"2025-06-10T21:19:25.394Z","avatar_url":"https://github.com/qmk.png","language":"JavaScript","funding_links":["https://opencollective.com/qmk-firmware"],"categories":["Keyboard","Projects Using Vue.js","JavaScript","Open Source [🔝](#readme)","Awesome Vue.js [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)"],"sub_categories":["Open Source"],"readme":"# Quantum Mechanical Keyboard Configurator\n\n[![Build Status](https://github.com/qmk/qmk_configurator/workflows/Website%20build/badge.svg)](https://github.com/qmk/qmk_configurator/actions)\n[![Known Vulnerabilities](https://snyk.io/test/github/qmk/qmk_configurator/badge.svg)](https://snyk.io/test/github/qmk/qmk_configurator)\n[![Discord](https://img.shields.io/discord/440868230475677696.svg)](https://discord.gg/qmk)\n[![GitHub contributors](https://img.shields.io/github/contributors/qmk/qmk_configurator.svg)](https://github.com/qmk/qmk_configurator/pulse/monthly)\n[![GitHub forks](https://img.shields.io/github/forks/qmk/qmk_configurator.svg?style=social\u0026label=Fork)](https://github.com/qmk/qmk_configurator/)\n\nThe QMK Configurator is an online tool used for easily creating firmware files\nfor keyboards supported in [qmk_firmware](https://github.com/qmk/qmk_firmware).\nThe tool is located on \u003chttps://config.qmk.fm\u003e.\n\nThe QMK Configurator allows simple keymap creation and saving via .json keymap\nfiles, and generates appropriate firmware files for flashing onto selected\nkeyboards.\n\nThis project is very much a work in progress. To begin contributing, please\nrefer to the following:\n\n-   [Issues](https://github.com/qmk/qmk_configurator/issues)\n\n## Development\n\nWe recommend you install and use [NVM](https://github.com/creationix/nvm) to\nmanage node versions. There is a .nvmrc file in the root of the project\ndirectory that has been tested with our dependencies.\n\n### Select node version\n\n```shell\nnvm use\n```\n\n### Project setup\n\n```shell\nyarn install\n```\n\n### Compiles and hot-reloads for development\n\n```shell\nyarn run dev\n```\n\n### Compiles and minifies for production\n\n```shell\nyarn run build\n```\n\n### Run your tests\n\n```shell\nyarn run test\n```\n\n### Lints and fixes files\n\n```shell\nyarn run lint\n```\n\n### Run your end-to-end tests\n\nStart the server separately\n\n```shell\nyarn run test:cypress\n```\n\n### Run your end-to-end tests like CI\n\nStart the server separately\n\n```shell\nyarn run test:cypress:ci\n```\n\n### Run your unit tests\n\n```shell\nyarn run test:unit\n```\n\n### Customize configuration\n\nSee [Configuration Reference](https://vitejs.dev/config/).\n\n## Docker\n\nIf you don't have a webserver already and don't already have one in mind you\ncan use docker. By default it spins up a self-contained environment.\n\n```shell\n    docker run -p 8080:80 qmkfm/qmk_configurator:latest\n```\n\nYou can specify a different backend URL by setting `VUE_APP_API_URL`:\n\n```shell\n    docker run -e VITE_API_URL=http://localhost:8080 -p 8080:80 qmkfm/qmk_configurator:latest\n```\n\nIf you'd like to develop locally you can use a volume to tie your local\nfilesystem to the container:\n\n```shell\n    docker run --mount type=volume,source=.,target=/qmk_configurator -p 8080:80 qmkfm/qmk_configurator:latest\n```\n\n### Building The Docker Image\n\nMost of the time you don't need to do this, you can use volume mounts as\ndescribed above to use the pre-built image with your local tree.\n\nIf for some reason you do need to build it yourself, you can use this command:\n\n```shell\n    docker build -t qmk_configurator .\n```\n\nThis process will take a while. You may want to go make some tea or something.\nWhen it finishes you can run it with this command:\n\n```shell\n    docker run -p 8080:80 qmk_configurator\n```\n\n## Internationalization Guide\n\nPlease refer to [this document](internationalization_guide.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmk%2Fqmk_configurator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqmk%2Fqmk_configurator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmk%2Fqmk_configurator/lists"}