This is a subtree of nix-config repo (chezmoi/).
I use it on non-nix systems.
- Install homebrew
brew install chezmoichezmoi init https://github.com/aur3l14no/dotfiles- brew install ...
Why mise? Single-user, works everywhere, relatively good repo.
# install mise
curl https://mise.run | sh
~/.local/bin/mise use --global chezmoi@latest
~/.local/share/mise/shims/chezmoi init https://github.com/aur3l14no/dotfilesCreate ~/.config/chezmoi/chezmoi.toml to set git identity:
[data.git]
name = "Your Name"
email = "you@example.com"
signingKey = "ssh-ed25519 AAAA..."If data.git is omitted, ~/.config/git/config is still generated but without name/email/signing key.
Entries stored as *.age are ignored unless your local chezmoi config sets
encryption = "age". This keeps chezmoi init --apply working on machines
without an age identity while still enabling the encrypted files once age is
configured. New encrypted files should follow the same *.age convention.
Library/Rime is the macOS Squirrel Rime overlay. Chezmoi pulls upstream
rime-ice with .chezmoiexternal.toml.tmpl, then applies personal patches and
the encrypted double-pinyin custom phrase table on top.
Runtime state and vendored upstream data are intentionally not tracked:
build/, sync/, *.userdb/, installation.yaml, user.yaml, schema
snapshots, dictionaries, Lua helpers, OpenCC tables, and the unused full-pinyin
custom_phrase.txt.
Install Squirrel first. The current Homebrew cask is:
brew install --cask squirrel-appThen run chezmoi apply; on Nix-managed macOS hosts, darwin-rebuild switch
already does that. Chezmoi caches the rime-ice archive and refreshes it weekly;
force a refresh with chezmoi apply --refresh-externals=always.
After Rime files change, use Squirrel's menu to redeploy Rime.
List lives in mise-packages.txt and is ignored by chezmoi (so it does not land in $HOME).
cat "$(chezmoi source-path)/mise-packages.txt" | xargs ~/.local/bin/mise use --globalRemote agent skills are resolved and locked by APM. The global manifest and
lock are managed by chezmoi under ~/.apm/; APM deploys skills to the shared
~/.agents/skills/ directory used by the agent clients.
Only locally maintained skills belong under chezmoi/dot_agents/skills/.
Do not add APM-deployed skills back to chezmoi: ~/.apm/apm_modules/ is APM's
runtime store, and apm install recreates both that store and the deployed
skill directories from the checked-in manifest and lock.
Install APM and restore the locked skills:
uv tool install apm-cli
chezmoi apply
apm install --global --frozenCheck for upstream changes without installing them:
apm outdated --globalPreview and apply compatible stable skill updates, then save the regenerated lock back to chezmoi:
apm update --global --dry-run --target agent-skills larksuite/cli
apm update --global --yes --target agent-skills larksuite/cli
chezmoi re-add "$HOME/.apm/apm.lock.yaml"lark-cli is separate from its skills. Its npm package is locked under
~/.local/opt/npm-tools/ and can be restored with:
npm-user ci --prefix "$HOME/.local/opt/npm-tools"Do not run lark-cli update: that command also invokes npx skills and would
bypass APM. The managed lark-cli wrapper permits update --check but blocks
the mutating update command.