agentsclimarketplace

Setup devenv with chezmoi

Skill urmzd/dotfiles/dot_agents/skills/setup-devenv-with-chezmoi

Cross-platform dotfiles managed by Chezmoi with Homebrew/apt and per-language version managers. One-command bootstrap for macOS and Linux with Neovim, Tmux, Zsh, and AI agent skills.

Install
npx -y skills add urmzd/dotfiles --skill setup-devenv-with-chezmoi

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Chezmoi-specific dev environment helpers: writing pinned-version installer scripts (run_onchange_after_install-<tool>.sh.tmpl), maintaining the dot_envrc.project.example template, and the chezmoi diff/apply loop. Use when wiring a new pinned vendor installer (gcloud, aws-cli, Cortex) for the portfolio or scaffolding a chezmoi-tracked project envrc. Do NOT use for portable per-language version-manager or vanilla-direnv patterns; those live in setup-devenv.

SKILL.md

3.4 KB, 730 tokens by cl100k_base, as published. Nobody here has run it

Dev Env with Chezmoi

Personal-portfolio extensions to setup-devenv. This skill assumes a chezmoi-managed home directory and stays focused on the chezmoi-specific plumbing the portable skill deliberately omits.

When to Use

  • Adding a pinned-version installer for a tool that ships only via a vendor script (gcloud, aws-cli, Snowflake Cortex, etc.).
  • Updating the canonical dot_envrc.project.example template that new projects copy.
  • Standardizing how ~/.local/bin is wired up across projects.

If you're not on chezmoi, use setup-devenv directly. Substitute Brewfile / Nix / your own dotfile manager.

Pinned Installer Pattern

~/.local/share/chezmoi/run_onchange_after_install-<tool>.sh.tmpl

Skeleton:

#!/usr/bin/env bash
set -euo pipefail

<TOOL>_VERSION="<pin>"
INSTALL_DIR="$HOME/.local/share/<tool>/${<TOOL>_VERSION}"
BIN_PATH="${INSTALL_DIR}/<tool>"
BIN_LINK="$HOME/.local/bin/<tool>"

# Guard must test the actual install path, not a bin/ subdir, or the script
# re-downloads on every `chezmoi apply`.
if [ -x "${BIN_PATH}" ]; then
  exit 0
fi

mkdir -p "${INSTALL_DIR}"
curl -fsSL "<download-url>" -o "${BIN_PATH}"
chmod +x "${BIN_PATH}"

ln -sf "${BIN_PATH}" "${BIN_LINK}"

Conventions:

  • Pin the version at the top in ALL_CAPS. Bumping is a one-line diff.
  • Install to ~/.local/share/<tool>/<version>/. Versioned subdirs let you roll back without re-downloading.
  • Symlink into ~/.local/bin/<tool>. Keeps $PATH stable.
  • Mirror the structure of existing scripts like run_onchange_after_install-cloud-clis.sh.tmpl or run_onchange_after_install-cortex.sh.tmpl. Consistency makes the directory scannable.

Project envrc Template

The canonical project envrc lives at:

~/.local/share/chezmoi/dot_envrc.project.example

When a new project needs .envrc, copy this file into the project root, strip the per-language idioms that don't apply, and direnv allow. The portable patterns the file demonstrates (layout python, use fnm, PATH_add bin, dotenv, source_up) are documented in setup-devenv; this skill owns the file itself.

Apply Loop

After editing any of the above:

chezmoi diff
chezmoi apply

Run chezmoi diff first so you can confirm the rendered output matches expectations before overwriting the home directory.

Gotchas

  • Don't run installers eagerly. run_onchange_after_install-*.sh.tmpl re-runs only when its content changes. If the version pin doesn't change, chezmoi will skip it; this is intentional.
  • No secrets in templates. Use manage-secrets (1Password) or .env references. Templated installer scripts end up in git history.
  • Version subdirs over latest symlinks. A latest symlink obscures which version a script actually saw.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 327,069. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.