Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting started

zenops is a declarative system configuration tool. It reads a TOML config from ~/.config/zenops/config.toml and keeps your shell environment, aliases, dotfile symlinks, and $PATH in sync with what you’ve declared. Run zenops apply to make the system match the config; run zenops status to see what would change without touching anything.

Install

cargo install zenops

zenops supports macOS, Fedora 42, Ubuntu 24.04 LTS, and Arch Linux. A host outside that matrix fails to start with Unsupported host: … rather than degrading silently.

Initialise a config

The fastest path, if you already have a zenops config repo:

zenops init git@github.com:you/dotfiles.git --apply

zenops init clones the repo into ~/.config/zenops/, validates the config.toml, and (with --apply) chains into zenops apply. From a clean start, write ~/.config/zenops/config.toml by hand — the configuration reference documents every section.

A minimal config:

[user]
name = "Ada Lovelace"
email = "ada@example.com"

[shell]
type = "bash"

[shell.environment]
EDITOR = "hx"

[shell.alias]
ll = "ls -la"

The apply loop

zenops status         # see what would change
zenops apply          # make the system match the config
zenops doctor         # diagnose the environment
zenops pkg            # list configured packages and their detect state

status is read-only. apply writes files, sets up symlinks, and updates shell init under ~/.config/. Both speak structured output: pass -o json for NDJSON events suitable for piping into another tool.

What this site documents

  • The configuration reference — every section, every field, every enum variant, generated from the schema that ships with each release.
  • The command-line interface — every subcommand and flag, generated from the clap definitions.

The same site is served by zenops docs (embedded in the binary, works offline) and is published to GitHub Pages at https://bjorn-ove.github.io/zenops/.