Skip to content

docs: Replace user setup script with ZMK CLI#3137

Merged
joelspadin merged 1 commit into
zmkfirmware:mainfrom
joelspadin:switch-to-zmk-cli
Dec 14, 2025
Merged

docs: Replace user setup script with ZMK CLI#3137
joelspadin merged 1 commit into
zmkfirmware:mainfrom
joelspadin:switch-to-zmk-cli

Conversation

@joelspadin

Copy link
Copy Markdown
Collaborator

This deletes the Bash and PowerShell setup scripts in favor of using ZMK CLI. The old setup scripts are broken, since the config repo template uses ZMK version 0.3, while the setup scripts use hardware metadata from the main branch. ZMK CLI doesn't have this issue, because it clones the version of ZMK listed in the config repo to get hardware metadata.

Much of the "Installing ZMK" page has been rewritten to give instructions for installing ZMK CLI and using it to create and modify a config repo. The previously-hidden page on ZMK CLI has been added to the sidebar and repurposed into general documentation for the tool.

This deletes the Bash and PowerShell setup scripts in favor of using
ZMK CLI. The old setup scripts are broken, since the config repo
template uses ZMK version 0.3, while the setup scripts use hardware
metadata from the main branch. ZMK CLI doesn't have this issue, because
it clones the version of ZMK listed in the config repo to get hardware
metadata.

Much of the "Installing ZMK" page has been rewritten to give
instructions for installing ZMK CLI and using it to create and modify
a config repo. The previously-hidden page on ZMK CLI has been added to
the sidebar and repurposed into general documentation for the tool.
@joelspadin joelspadin added the documentation Improvements or additions to documentation label Dec 13, 2025
@joelspadin
joelspadin requested a review from a team as a code owner December 13, 2025 20:08

@caksoylar caksoylar left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I haven't kept up with the developments in the area but in the future we can consider using something like pyinstaller to reduce the dependencies, especially for Windows.

Also worth considering adding pointers to the CLI in the new shield guide.

@joelspadin

joelspadin commented Dec 14, 2025

Copy link
Copy Markdown
Collaborator Author

LGTM. I haven't kept up with the developments in the area but in the future we can consider using something like pyinstaller to reduce the dependencies, especially for Windows.

Looks like pyinstaller doesn't support any form of cross-compile, but if we can get GitHub actions to run it for each OS, and if we can get it to install into a standard location that's on the PATH variable, that is worth considering.

I also wonder if uv might be simpler to use. I'm not sure yet if uv can automatically manage installing Python, but if so, the Windows (11) install would be as simple as

winget install --id Git.Git -e
winget install --id astral-sh.uv -e
uv tool install zmk

Also worth considering adding pointers to the CLI in the new shield guide.

Agreed, though I wanted to do that separately so this part could be done more quickly.

@joelspadin

joelspadin commented Dec 14, 2025

Copy link
Copy Markdown
Collaborator Author

Confirmed on another Windows 11 PC that never had Python installed: uv will automatically download the latest python version when you run uv tool install zmk. You do need to close and reopen the terminal after installing uv though.

The full install process would then be

winget install --id Git.Git -e
winget install --id astral-sh.uv -e

Restart terminal

uv tool install zmk
uv tool update-shell

Restart terminal

zmk init

@caksoylar

Copy link
Copy Markdown
Contributor

Do you want to update that? I like the winget approach and I don't have an issue recommending uv. You can also merge this and we can update later if you like.

@joelspadin

Copy link
Copy Markdown
Collaborator Author

I think we can go with this for now and investigate uv later. Winget is only preinstalled on Windows 11, so if we do want to switch the documentation to use it, we'll want to either have a fallback for Windows 10 or to explicitly state that you're on your own if you're still using that.

We'll also want to decide if Linux and Mac instructions should use uv as well. I'm not sure what is the best way to install uv on other OSes.

@nmunnich nmunnich left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM too, agree that we should go ahead with this and improve it over time as feedback comes in.

@joelspadin
joelspadin merged commit 930b5cc into zmkfirmware:main Dec 14, 2025
7 checks passed
@joelspadin
joelspadin deleted the switch-to-zmk-cli branch December 14, 2025 22:20
drewlwhitney pushed a commit to drewlwhitney/zmk that referenced this pull request Dec 22, 2025
This deletes the Bash and PowerShell setup scripts in favor of using
ZMK CLI. The old setup scripts are broken, since the config repo
template uses ZMK version 0.3, while the setup scripts use hardware
metadata from the main branch. ZMK CLI doesn't have this issue, because
it clones the version of ZMK listed in the config repo to get hardware
metadata.

Much of the "Installing ZMK" page has been rewritten to give
instructions for installing ZMK CLI and using it to create and modify
a config repo. The previously-hidden page on ZMK CLI has been added to
the sidebar and repurposed into general documentation for the tool.
dgct pushed a commit to dgct/zmk that referenced this pull request Apr 28, 2026
This deletes the Bash and PowerShell setup scripts in favor of using
ZMK CLI. The old setup scripts are broken, since the config repo
template uses ZMK version 0.3, while the setup scripts use hardware
metadata from the main branch. ZMK CLI doesn't have this issue, because
it clones the version of ZMK listed in the config repo to get hardware
metadata.

Much of the "Installing ZMK" page has been rewritten to give
instructions for installing ZMK CLI and using it to create and modify
a config repo. The previously-hidden page on ZMK CLI has been added to
the sidebar and repurposed into general documentation for the tool.
caksoylar pushed a commit to caksoylar/zmk that referenced this pull request May 27, 2026
This deletes the Bash and PowerShell setup scripts in favor of using
ZMK CLI. The old setup scripts are broken, since the config repo
template uses ZMK version 0.3, while the setup scripts use hardware
metadata from the main branch. ZMK CLI doesn't have this issue, because
it clones the version of ZMK listed in the config repo to get hardware
metadata.

Much of the "Installing ZMK" page has been rewritten to give
instructions for installing ZMK CLI and using it to create and modify
a config repo. The previously-hidden page on ZMK CLI has been added to
the sidebar and repurposed into general documentation for the tool.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants