zenops
Declarative system configuration management for shell config and dotfiles.
zenops reads a TOML config from ~/.config/zenops/config.toml and uses it to
keep 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
Configure
Create ~/.config/zenops/config.toml:
[]
= "bash"
[]
= "nvim"
[]
= "ls -la"
[[]]
= ".config" # or "home"
= "app"
= "configs/app" # relative path inside the zenops config repo
= ["config.toml"] # listed files are symlinked; others are generated
Commands
zenops apply— apply the config (write generated files, create symlinks). Pass--pull-configtogit pull --rebasethe config repo first.zenops status— show what would change.--diffshows file diffs.zenops pkg— list configured packages and whether their dependencies are met.--allincludes disabled packages;--all-hintsshows every install hint.zenops repo <git-subcommand>— run a passthrough git command inside the zenops config repo.zenops completions <bash|zsh|fish|elvish|powershell>— print a shell completion script to stdout. Normally sourced automatically via the built-inzenopspkg; only needed for manual setup.
License
Dual-licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.