# quickshell CLI helpers Three cross-platform CLI tools written in Node.js ESM (`.mjs` files). No npm dependencies, only Node built-ins. Run with `node .mjs` or directly (`./.mjs` after `chmod +x`). ## qs-version Print the installed `qs` version and the matching docs URL. ```sh $ qs-version Quickshell 0.3.0 https://quickshell.org/docs/v0.3.0/ ``` ## qs-scaffold Scaffold a new Quickshell config from an example. Copies `shell.qml` (and any supporting `*.qml` files), the `README.md`, and creates an empty `.qmlls.ini` (LSP marker). ```sh qs-scaffold mybar # uses 02-per-monitor-bar (default) qs-scaffold foo --from 03-clock # specific example qs-scaffold bar --from 07-composite-bar # multi-file: copies Bar.qml too ``` Result: ``` ~/.config/quickshell/mybar/ ├── shell.qml ├── Bar.qml (if the source example has one) ├── README.md └── .qmlls.ini (empty; quickshell will populate) ``` Then run with `qs -c mybar`. Refuses to clobber an existing target. ## qs-doc Print or open the docs URL for a type, namespaced or not. ```sh qs-doc PanelWindow # bare type https://quickshell.org/docs/v0.3.0/types/Quickshell/PanelWindow qs-doc Quickshell.Services.Pipewire.Pipewire # namespaced https://quickshell.org/docs/v0.3.0/types/Quickshell/Services/Pipewire/Pipewire qs-doc --list # full type index https://quickshell.org/docs/v0.3.0/types qs-doc PanelWindow --open # open in browser ``` ## Cross-platform - No shell, no POSIX assumptions; pure `node:child_process`, `node:fs`, `node:os`, `node:path`. - `xdg-open` on Linux, `open` on macOS, `cmd /c start` on Windows for `--open`. - `XDG_CONFIG_HOME` honored; falls back to `~/.config` (Linux/macOS) or `%APPDATA%` (Windows). ## Testing Tests are in `test/` and use the built-in Node test runner. Run all from the skill root: ```sh npm test ```