zc-workstationDocumentation PDF GitHub

Getting started

Install zc-workstation and the tools it drives on macOS, Linux or Windows, then plan and apply.

.md

Install the tools it drives

zc-workstation runs your package manager, chezmoi and mise. Install the ones your config uses. A missing one shows up in the plan as a MANUAL step, so you can also start with plan and follow it.

  • macOS

  • Ubuntu and Debian

  • Fedora

  • Windows

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew install chezmoi mise mas
$ sudo apt-get install -y curl git
$ sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin
$ curl https://mise.run | sh
$ sudo dnf install -y chezmoi git
$ curl https://mise.run | sh
PS> winget install --id twpayne.chezmoi --exact
PS> winget install --id jdx.mise --exact

Install zc-workstation

The Homebrew cask, Linux packages and Windows zips come with each release. Before the first one, install with Go, or run make install in a clone.

  • Homebrew

  • Linux packages

  • Windows

  • Go

$ brew tap zoolcoder/zc-workstation https://github.com/zoolcoder/zc-workstation
$ brew install --cask zc-workstation

Each release has .deb, .rpm and .apk packages.

$ sudo apt-get install ./zc-workstation_*_linux_amd64.deb

Download the windows_amd64 or windows_arm64 zip from the releases page and put zc-workstation.exe on your PATH.

$ go install github.com/zoolcoder/zc-workstation/cmd/zc-workstation@latest

Needs Go 1.26 or later.

Write a config

Start from zc-workstation.example.yaml. It declares a target for each system and points at the sample manifests in example/. Point it at your own dotfiles repository instead. Writing a config lists every key.

$ mkdir -p ~/.config/zc-workstation
$ cp zc-workstation.example.yaml ~/.config/zc-workstation/zc-workstation.yaml
$ zc-workstation validate
/Users/me/.config/zc-workstation/zc-workstation.yaml: 6 target(s), valid

Plan, then apply

$ zc-workstation plan -out plan.json
CREATE  brew      brew:chezmoi  install with brew
CREATE  dotfiles  .gitconfig    add
MANUAL  runtimes  trust         mise does not trust .../mise.toml; review it, then run mise trust .../mise.toml

1 of these cannot be automated and are yours to do.
$ zc-workstation apply plan.json
done  CREATE brew brew:chezmoi
done  CREATE dotfiles .gitconfig
applied and verified

Installs run attached to your terminal, so sudo, a license prompt or the App Store sign-in can ask you directly.

Check the machine

$ zc-workstation doctor
ok    binary           /opt/homebrew/bin/zc-workstation
ok    system           macbook darwin/arm64
ok    config           /Users/me/.config/zc-workstation/zc-workstation.yaml, 6 target(s)
ok    program brew     /opt/homebrew/bin/brew
ok    program chezmoi  /opt/homebrew/bin/chezmoi
ok    program mise     /opt/homebrew/bin/mise
warn  target brew      78 of 80 packages installed (brew)
ok    target apt       not for darwin, only linux
ok    target dotfiles  2 of 2 dotfiles in place
ok    target runtimes  7 of 7 tools installed

Then open the dashboard with zc-workstation ui.

Edit this page Last updated

Keyboard shortcuts

Ctrl/⌘ K or /
Search the docs
↑ ↓ Enter
Move through the search results
← →
Previous or next page
f
Filter the pages in the sidebar
g h
Home
t
Cycle the theme
?
This list
Esc
Close a menu or the search results