<spanclass="line"><span>Ψ Compiling keymap with make gh60/satan:colemak</span></span>
<spanclass="line"><span>...</span></span></code></pre></div><p><strong>Usage in Layout Directory</strong>:</p><p>Must be under <code>qmk_firmware/layouts/</code>, and in a keymap folder.</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk compile -kb <keyboard_name></span></span></code></pre></div><p><strong>Example</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>$ cd ~/qmk_firmware/layouts/community/60_ansi/mechmerlin-ansi</span></span>
<spanclass="line"><span>Ψ Compiling keymap with make dz60:mechmerlin-ansi</span></span>
<spanclass="line"><span>...</span></span></code></pre></div><p><strong>Parallel Compilation</strong>:</p><p>It is possible to speed up compilation by adding the <code>-j</code>/<code>--parallel</code> flag.</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk compile -j <num_jobs> -kb <keyboard_name></span></span></code></pre></div><p>The <code>num_jobs</code> argument determines the maximum number of jobs that can be used. Setting it to zero will enable parallel compilation without limiting the maximum number of jobs.</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk compile -j 0 -kb <keyboard_name></span></span></code></pre></div><h2id="qmk-flash"tabindex="-1"><code>qmk flash</code><aclass="header-anchor"href="#qmk-flash"aria-label="Permalink to "`qmk flash`""></a></h2><p>This command is similar to <code>qmk compile</code>, but can also target a bootloader. The bootloader is optional, and is set to <code>:flash</code> by default. To specify a different bootloader, use <code>-bl <bootloader></code>. Visit the <ahref="./flashing">Flashing Firmware</a> guide for more details of the available bootloaders.</p><p>This command is directory aware. It will automatically fill in KEYBOARD and/or KEYMAP if you are in a keyboard or keymap directory.</p><p>This command can also flash binary firmware files (hex or bin) such as the ones produced by <ahref="https://config.qmk.fm"target="_blank"rel="noreferrer">Configurator</a>.</p><p><strong>Usage for Configurator Exports</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk flash [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>] <configuratorExport.json></span></span></code></pre></div><p><strong>Usage for Keymaps</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk flash -kb <keyboard_name> -km <keymap_name> [-bl <bootloader>] [-c] [-e <var>=<value>] [-j <num_jobs>]</span></span></code></pre></div><p><strong>Usage for pre-compiled firmwares</strong>:</p><p><strong>Note</strong>: The microcontroller needs to be specified (<code>-m</code> argument) for keyboards with the following bootloaders:</p><ul><li>HalfKay</li><li>QMK HID</li><li>USBaspLoader</li></ul><p>ISP flashing is also supported with the following flashers and require the microcontroller to be specified:</p><ul><li>USBasp</li><li>USBtinyISP</li></ul><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk flash [-m <microcontroller>] <compiledFirmware.[bin|hex]></span></span></code></pre></div><p><strong>Listing the Bootloaders</strong></p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk flash -b</span></span></code></pre></div><h2id="qmk-config"tabindex="-1"><code>qmk config</code><aclass="header-anchor"href="#qmk-config"aria-label="Permalink to "`qmk config`""></a></h2><p>This command lets you configure the behavior of QMK. For the full <code>qmk config</code> documentation see <ahref="./cli_configuration">CLI Configuration</a>.</p><p><strong>Usage</strong>:</p><divclass="language-
<spanclass="line"><span> Filter the list of keyboards based on their info.json data. Accepts the formats key=value, function(key), or function(key,value), eg. 'features.rgblight=true'. Valid functions are 'absent', 'contains', 'exists' and 'length'. May be passed multiple times; all filters need to match. Value may include wildcards such as '*' and '?'.</span></span></code></pre></div><h2id="qmk-console"tabindex="-1"><code>qmk console</code><aclass="header-anchor"href="#qmk-console"aria-label="Permalink to "`qmk console`""></a></h2><p>This command lets you connect to keyboard consoles to get debugging messages. It only works if your keyboard firmware has been compiled with <code>CONSOLE_ENABLE=yes</code>.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console [-d <pid>:<vid>[:<index>]] [-l] [-n] [-t] [-w <seconds>]</span></span></code></pre></div><p><strong>Examples</strong>:</p><p>Connect to all available keyboards and show their console messages:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console</span></span></code></pre></div><p>List all devices:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console -l</span></span></code></pre></div><p>Show only messages from clueboard/66/rev3 keyboards:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console -d C1ED:2370</span></span></code></pre></div><p>Show only messages from the second clueboard/66/rev3:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console -d C1ED:2370:2</span></span></code></pre></div><p>Show timestamps and VID:PID instead of names:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console -n -t</span></span></code></pre></div><p>Disable bootloader messages:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk console --no-bootloaders</span></span></code></pre></div><h2id="qmk-doctor"tabindex="-1"><code>qmk doctor</code><aclass="header-anchor"href="#qmk-doctor"aria-label="Permalink to "`qmk doctor`""></a></h2><p>This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk doctor [-y] [-n]</span></span></code></pre></div><p><strong>Examples</strong>:</p><p>Check your environment for problems and prompt to fix them:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk doctor</span></span></code></pre></div><p>Check your environment and automati
<spanclass="line"><span> The keyboard to build a firmware for. Ignored when a configurator export is supplied.</span></span></code></pre></div><p><strong>Example</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>$ qmk userspace-add -kb planck/rev6 -km default</span></span>
<spanclass="line"><span>Ψ Added planck/rev6:default to userspace build targets</span></span>
<spanclass="line"><span>Ψ Saved userspace file to /home/you/qmk_userspace/qmk.json</span></span></code></pre></div><h2id="qmk-userspace-remove"tabindex="-1"><code>qmk userspace-remove</code><aclass="header-anchor"href="#qmk-userspace-remove"aria-label="Permalink to "`qmk userspace-remove`""></a></h2><p>This command removes a keyboard/keymap from the External Userspace build targets.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk userspace-remove [-h] [-km KEYMAP] [-kb KEYBOARD] [builds ...]</span></span>
<spanclass="line"><span> The keyboard to build a firmware for. Ignored when a configurator export is supplied.</span></span></code></pre></div><p><strong>Example</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>$ qmk userspace-remove -kb planck/rev6 -km default</span></span>
<spanclass="line"><span>Ψ Removed planck/rev6:default from userspace build targets</span></span>
<spanclass="line"><span>Ψ Saved userspace file to /home/you/qmk_userspace/qmk.json</span></span></code></pre></div><h2id="qmk-userspace-list"tabindex="-1"><code>qmk userspace-list</code><aclass="header-anchor"href="#qmk-userspace-list"aria-label="Permalink to "`qmk userspace-list`""></a></h2><p>This command lists the External Userspace build targets.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk userspace-list [-h] [-e]</span></span>
<spanclass="line"><span></span></span>
<spanclass="line"><span>options:</span></span>
<spanclass="line"><span> -h, --help show this help message and exit</span></span>
<spanclass="line"><span> -e, --expand Expands any use of `all` for either keyboard or keymap.</span></span></code></pre></div><p><strong>Example</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>$ qmk userspace-list</span></span>
<spanclass="line"><span>Ψ Current userspace build targets:</span></span>
<spanclass="line"><span>Build clueboard/66/rev3:you [OK]</span></span></code></pre></div><h2id="qmk-userspace-doctor"tabindex="-1"><code>qmk userspace-doctor</code><aclass="header-anchor"href="#qmk-userspace-doctor"aria-label="Permalink to "`qmk userspace-doctor`""></a></h2><p>This command examines your environment and alerts you to potential problems related to External Userspace.</p><p><strong>Example</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>% qmk userspace-doctor</span></span>
<spanclass="line"><span>Ψ Userspace enabled: True</span></span></code></pre></div><hr><h1id="developer-commands"tabindex="-1">Developer Commands <aclass="header-anchor"href="#developer-commands"aria-label="Permalink to "Developer Commands""></a></h1><h2id="qmk-format-text"tabindex="-1"><code>qmk format-text</code><aclass="header-anchor"href="#qmk-format-text"aria-label="Permalink to "`qmk format-text`""></a></h2><p>This command formats text files to have proper line endings.</p><p>Every text file in the repository needs to have Unix (LF) line ending. If you are working on <strong>Windows</strong>, you must ensure that line endings are corrected in order to get your PRs merged.</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk format-text</span></span></code></pre></div><h2id="qmk-format-c"tabindex="-1"><code>qmk format-c</code><aclass="header-anchor"href="#qmk-format-c"aria-label="Permalink to "`qmk format-c`""></a></h2><p>This command formats C code using clang-format.</p><p>Run it with no arguments to format all core code that has been changed. Default checks <code>origin/master</code> with <code>git diff</code>, branch can be changed using <code>-b <branch_name></code></p><p>Run it with <code>-a</code> to format all core code, or pass filenames on the command line to run it on specific files.</p><p><strong>Usage for specified files</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk format-c [file1] [file2] [...] [fileN]</span></span></code></pre></div><p><strong>Usage for all core files</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk format-c -a</span></span></code></pre></div><p><strong>Usage for only changed files against origin/master</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk format-c</span></span></code></pre></div><p><strong>Usage for only changed files against branch_name</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk format-c -b branch_name</span></span></code></pre></div><h2id="qmk-generate-compilation-database"tabindex="-1"><code>qmk generate-compilation-database</code><aclass="header-anchor"href="#qmk-generate-compilation-database"aria-label="Permalink to "`qmk generate-compilation-database`""></a></h2><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk generate-compilation-database [-kb KEYBOARD] [-km KEYMAP]</span></span></code></pre></div><p>Creates a <code>compile_commands.json</code> file.</p><p>Does your IDE/editor use a language server but doesn't <em>quite</em> find all the necessary include files? Do you hate red squigglies? Do you wish your editor could figure out <code>#include QMK_KEYBOARD_H</code>? You might need a <ahref="https://clang.llvm.org/docs/JSONCompilationDatabase.html"target="_blank"rel="noreferrer">compilation database</a>! The qmk tool can build this for you.</p><p>This command needs to know which keyboard and keymap to build. It uses the same configuration options as the <code>qmk compile</code> command: arguments, current direc
<spanclass="line"><span>Ψ Making clean</span></span>
<spanclass="line"><span>Ψ Gathering build instructions from make -n gh60/satan:colemak</span></span>
<spanclass="line"><span>Ψ Found 50 compile commands</span></span>
<spanclass="line"><span>Ψ Writing build database to /Users/you/src/qmk_firmware/compile_commands.json</span></span></code></pre></div><p>Now open your dev environment and live a squiggly-free life.</p><h2id="qmk-docs"tabindex="-1"><code>qmk docs</code><aclass="header-anchor"href="#qmk-docs"aria-label="Permalink to "`qmk docs`""></a></h2><p>This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 5173.</p><p>This command requires <code>node</code> and <code>yarn</code> to be installed as prerequisites, and provides live reload capability whilst editing.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>usage: qmk docs [-h]</span></span>
<spanclass="line"><span></span></span>
<spanclass="line"><span>options:</span></span>
<spanclass="line"><span> -h, --help show this help message and exit</span></span></code></pre></div><h2id="qmk-generate-docs"tabindex="-1"><code>qmk generate-docs</code><aclass="header-anchor"href="#qmk-generate-docs"aria-label="Permalink to "`qmk generate-docs`""></a></h2><p>This command allows you to generate QMK documentation locally. It can be uses for general browsing or improving the docs. Use the <code>-s</code>/<code>--serve</code> flag to also serve the static site once built. Default port is 4173.</p><p>This command requires <code>node</code> and <code>yarn</code> to be installed as prerequisites, and requires the operating system to support symlinks.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>usage: qmk generate-docs [-h] [-s]</span></span>
<spanclass="line"><span></span></span>
<spanclass="line"><span>options:</span></span>
<spanclass="line"><span> -h, --help show this help message and exit</span></span>
<spanclass="line"><span> -s, --serve Serves the generated docs once built.</span></span></code></pre></div><h2id="qmk-generate-rgb-breathe-table"tabindex="-1"><code>qmk generate-rgb-breathe-table</code><aclass="header-anchor"href="#qmk-generate-rgb-breathe-table"aria-label="Permalink to "`qmk generate-rgb-breathe-table`""></a></h2><p>This command generates a lookup table (LUT) header file for the <ahref="./feature_rgblight">RGB Lighting</a> feature's breathing animation. Place this file in your keyboard or keymap directory as <code>rgblight_breathe_table.h</code> to override the default LUT in <code>quantum/rgblight/</code>.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk generate-rgb-breathe-table [-q] [-o OUTPUT] [-m MAX] [-c CENTER]</span></span></code></pre></div><h2id="qmk-kle2json"tabindex="-1"><code>qmk kle2json</code><aclass="header-anchor"href="#qmk-kle2json"aria-label="Permalink to "`qmk kle2json`""></a></h2><p>This command allows you to convert from raw KLE data to QMK Configurator JSON. It accepts either an absolute file path, or a file name in the current directory. By default it will not overwrite <code>info.json</code> if it is already present. Use the <code>-f</code> or <code>--force</code> flag to overwrite.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk kle2json [-f] <filename></span></span></code></pre></div><p><strong>Examples</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>$ qmk kle2json kle.txt</span></span>
<spanclass="line"><span>☒ File info.json already exists, use -f or --force to overwrite.</span></span></code></pre></div><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>$ qmk kle2json -f kle.txt -f</span></span>
<spanclass="line"><span>Ψ Wrote out to info.json</span></span></code></pre></div><h2id="qmk-format-python"tabindex="-1"><code>qmk format-python</code><aclass="header-anchor"href="#qmk-format-python"aria-label="Permalink to "`qmk format-python`""></a></h2><p>This command formats python code in <code>qmk_firmware</code>.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk format-python</span></span></code></pre></div><h2id="qmk-pytest"tabindex="-1"><code>qmk pytest</code><aclass="header-anchor"href="#qmk-pytest"aria-label="Permalink to "`qmk pytest`""></a></h2><p>This command runs the python test suite. If you make changes to python code you should ensure this runs successfully.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk pytest [-t TEST]</span></span></code></pre></div><p><strong>Examples</strong>:</p><p>Run entire test suite:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk pytest</span></span></code></pre></div><p>Run test group:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk pytest -t qmk.tests.test_cli_commands</span></span></code></pre></div><p>Run single test:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk pytest -t qmk.tests.test_cli_commands.test_c2json</span></span>
<spanclass="line"><span>qmk pytest -t qmk.tests.test_qmk_path</span></span></code></pre></div><h2id="qmk-painter-convert-graphics"tabindex="-1"><code>qmk painter-convert-graphics</code><aclass="header-anchor"href="#qmk-painter-convert-graphics"aria-label="Permalink to "`qmk painter-convert-graphics`""></a></h2><p>This command converts images to a format usable by QMK, i.e. the QGF File Format. See the <ahref="./quantum_painter#quantum-painter-cli">Quantum Painter</a> documentation for more information on this command.</p><h2id="qmk-painter-make-font-image"tabindex="-1"><code>qmk painter-make-font-image</code><aclass="header-anchor"href="#qmk-painter-make-font-image"aria-label="Permalink to "`qmk painter-make-font-image`""></a></h2><p>This command converts a TTF font to an intermediate format for editing, before converting to the QFF File Format. See the <ahref="./quantum_painter#quantum-painter-cli">Quantum Painter</a> documentation for more information on this command.</p><h2id="qmk-painter-convert-font-image"tabindex="-1"><code>qmk painter-convert-font-image</code><aclass="header-anchor"href="#qmk-painter-convert-font-image"aria-label="Permalink to "`qmk painter-convert-font-image`""></a></h2><p>This command converts an intermediate font image to the QFF File Format. See the <ahref="./quantum_painter#quantum-painter-cli">Quantum Painter</a> documentation for more information on this command.</p><h2id="qmk-test-c"tabindex="-1"><code>qmk test-c</code><aclass="header-anchor"href="#qmk-test-c"aria-label="Permalink to "`qmk test-c`""></a></h2><p>This command runs the C unit test suite. If you make changes to C code you should ensure this runs successfully.</p><p><strong>Usage</strong>:</p><divclass="language- vp-adaptive-theme"><buttontitle="Copy Code"class="copy"></button><spanclass="lang"></span><preclass="shiki shiki-themes github-light github-dark vp-code"><code><spanclass="line"><span>qmk test-c [-h] [-t TEST] [-l] [-c] [-e ENV] [-j PARALLEL]</span></span>
<spanclass="line"><span> -h, --help show this help message and exit</span></span>
<spanclass="line"><span> -t TEST, --test TEST Test to run from the available list. Supports wildcard globs. May be passed multiple times.</span></span>
<spanclass="line"><span> -l, --list List available tests.</span></span>
<spanclass="line"><span> -c, --clean Remove object files before compiling.</span></span>
<spanclass="line"><span> -e ENV, --env ENV Set a variable to be passed to make. May be passed multiple times.</span></span>