Skip to main content

dotfiles

Active

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.

Shell 2Updated Jul 17, 2026
agent-skillsaichezmoidevelopment-environmentdotfilesghosttyhomebrewlinuxmacosneovimnvimshowcasetmuxzsh

dotfiles

Cross-platform dev environment powered by Chezmoi + Homebrew. One command to a fully configured machine.

Quick Start · Report Bug · Agent Skills

License

Features

  • Homebrew + apt as source of truth for CLIs (git, gh, kubectl, terraform, …)
  • Per-language version managers: fnm (Node), uv (Python), rustup (Rust)
  • Pinned upstream installers for tools that need it: gcloud, aws-cli, Snowflake Cortex
  • Zsh with Oh My Zsh + Powerlevel10k and pre-generated completions
  • Tmux with Ctrl+a prefix, vim keys, Catppuccin cyberdream theme
  • Ghostty terminal with cyberdream theme and MonaspiceNe Nerd Font
  • Neovim (HEAD) with LSP for all included languages
  • AI agents (Claude Code, Antigravity, Codex, Copilot) auto-installed via chezmoi
  • A portable agent skills catalog in dot_agents/skills/ and subagents in dot_agents/agents/, installable into any tool via agentspec. See Agent Skills for the full list.
  • Chezmoi automation scripts that trigger on apply
  • Docker cleanup launchd agent running daily at 3 AM

Quick Start

One-liner (installs Homebrew + chezmoi, then runs chezmoi init --apply):

curl -fsSL https://raw.githubusercontent.com/urmzd/dotfiles/main/install.sh | bash

Or step by step:

# 1. Install Homebrew (macOS) or your distro's package manager (Linux)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. Install chezmoi and apply this repo in one shot
sh -c "$(curl -fsLS https://get.chezmoi.io)" -- init --apply urmzd

chezmoi apply installs Brewfile/apt packages, sets up gcloud/aws/cortex from upstream, and installs the AI CLIs. Open a new terminal afterwards.

Usage

Day-to-day

chezmoi diff          # Preview pending dotfile changes
chezmoi apply         # Apply dotfile changes to $HOME
chezmoi add <file>    # Start tracking a new file
chezmoi edit <file>   # Edit source, then apply

Maintenance

dotfiles apply           # Preview diff, confirm, then apply  (-y skips confirm)
dotfiles diff            # Preview pending chezmoi changes
dotfiles edit            # Open dotfiles source in editor
dotfiles config          # Re-run chezmoi prompts to pick up new/changed flags

dotfiles update          # Everything: brew packages + AI CLIs, then apply
dotfiles update packages # brew upgrade + apply
dotfiles update groups   # Toggle package groups + excludes (fzf), then apply
dotfiles update ai       # Reinstall AI CLIs at pinned versions

dotfiles doctor          # chezmoi doctor + tool versions + documentation hygiene
dotfiles status          # Show installed AI tool versions
dotfiles clean           # Prune build artifacts and caches

Run dotfiles config after pulling changes that add new prompts (like the package flags), then dotfiles update groups any time to fine-tune which groups install without hand-editing chezmoi.toml.

What’s installed

CLI essentials (Homebrew on macOS, apt/dnf/pacman on Linux): git, gh, fzf, ripgrep, jq, yq, just, tmux, direnv, chezmoi, tree-sitter, uv, tealdeer, terraform, kubectl, helm, k9s, colima, docker, fnm, deno, go, lua, …see Brewfile.tmpl.

Version managers (per-language, best-in-class): fnm (Node), uv (Python), rustup (Rust).

Upstream-pinned installers (security/auth fixes ship faster than distro repos):

Package selection is prompt-driven. chezmoi init asks for a package_preset (minimal = core CLI + editor, standard = + cloud/infra + fonts, full = + mobile dev), which sets defaults for the per-group toggles below. Each group can be overridden independently, and pkg_exclude drops individual packages by name.

FlagCoversDefault by preset
install_clouddocker, colima, kubectl, helm, k9s, terraform, runpodctloff on minimal, on otherwise
install_fontsMonaspace + Iosevka Nerd Fontsoff on minimal, on otherwise
install_mobileAndroid Studio + SDK command-line tools + CocoaPodson only for full
pkg_excludecomma-separated formula/cask names to skip (for example k9s,deno)empty

Set any of these at init or in ~/.config/chezmoi/chezmoi.toml, then re-run chezmoi apply. The Brewfile installer continues past individual package failures, retries the remainder once, and prints categorized next steps (tap, permission, unknown formula, network, conflict) rather than aborting the whole apply.

AI tools (installed via run_once_after_install-ai-clis.sh.tmpl, sentinel-gated): Claude Code, Codex (workspace-write “Auto” default with writer/reviewer/plan/guardian profiles), Antigravity CLI (agy, self-updating), GitHub Copilot. Update with dotfiles update ai.

Adding a new tool

  1. Homebrew: add to Brewfile.tmpl. Linux: add to the apt/dnf/pacman list in run_once_before_install-packages-v2.sh.tmpl.
  2. For tools needing version pinning: write a run_onchange_after_install-<name>.sh.tmpl mirroring the cortex / cloud-clis pattern.
  3. Run chezmoi apply. Completions regenerate if the package exposes zsh site-functions.

Adding a new dotfile

  1. Create or edit the file in your home directory
  2. Run chezmoi add <file> to start tracking it
  3. Use dot_ prefix naming, private_ for sensitive files, .tmpl for templates
  4. Platform-specific blocks use {{ if eq .chezmoi.os "darwin" }}...{{ end }}

Configuration

Chezmoi automation

These scripts run automatically on chezmoi apply:

ScriptTypeTrigger
install-packages-v2run_once (before)First apply (installs Homebrew + bootstrap Linux packages)
brewfile-installrun_onchange (after)Brewfile (any package group flag) or pkg_exclude changes
install-cloud-clisrun_onchange (after)Script changes (re-pin gcloud/aws version)
install-cortexrun_onchange (after)Script changes (gated on install_cortex flag)
generate-completionsrun_onchange (after)zshrc, Brewfile, or cloud-clis script changes
install-ai-clisrun_once (after)First apply (sentinel-gated; clear via dotfiles update ai)
install-skillsrun_once (after)First apply only (bootstraps agentspec, syncs skills to ~/.agents/skills/)
sync-agent-resourcesrun (after)Every apply (keeps new local skills and agents managed by agentspec)
install-stackrun_once (after)First apply only (installs sr, teasr, oag CLIs)
configure-terminalrun_once (after)First apply only
load-docker-cleanuprun_once (after)First apply only

AI tools

AI coding agents are installed by chezmoi apply (sentinel-gated, no shell-startup cost). Check versions with:

dotfiles status

Per-tool AI config is tracked and deployed by chezmoi:

ToolSourceDefault posture
Claude Codedot_claude/Settings, custom statusline, project-scoped skills
Codexdot_codex/Workspace-write “Auto” base (auto-run safe ops, guardian auto-reviewer vets escalations) + writer/reviewer/plan/guardian profile overlays and /agent subagents
Antigravity CLI (agy)dot_gemini/Legacy Gemini CLI settings kept as agy first-run migration seed; agy config lives in ~/.gemini/antigravity-cli/ (authored in-app via /config and /permissions)
GitHub Copilotdot_copilot/settings.json with model, xhigh effort, theme

Codex runs OpenAI’s documented “Auto” preset by default: sandbox_mode = "workspace-write" + approval_policy = "on-request", with the guardian auto-reviewer (approvals_reviewer = "auto_review") classifying every escalation before it reaches you. Drop to codex --profile reviewer or --profile plan for read-only work; the guardian profile supervises orchestrate-agents fleets.

Agent Skills

Skills and subagents in this repo are cross-project: once installed via agentspec, they are available to any tool (claude-code, codex, gemini, copilot) from any project. The source-of-truth lives in dot_agents/skills/ and dot_agents/agents/, following the Agent Skills Specification.

Related standards: AGENTS.md and llms.txt

Managing skills

All skills are installed automatically via chezmoi apply. The install-skills script uses agentspec to install both local skills from dot_agents/skills/ and third-party skills globally to all agents:

SourceSkills
This repo (dot_agents/skills/)All local skills
vercel-labs/skillsAll
vercel/ai-elementsAll
vercel/streamdownAll
google-gemini/gemini-skillsAll
better-auth/skillsbetter-auth-best-practices
vercel/aiai-sdk
fastapi/fastapifastapi

To manage skills and agents manually:

agentspec manage list                          # List managed resources with tool linkage
agentspec manage add <source>                  # Add from local path, GitHub (owner/repo), or name
agentspec manage link <name> <tool>            # Link resource to a tool (claude-code, codex, etc.)
agentspec manage remove <name>                 # Remove a managed resource
agentspec manage create [name]                 # Scaffold a new resource
agentspec manage validate [path]               # Validate SKILL.md or agent definition
agentspec status                               # Show managed vs unmanaged inventory
agentspec sync --fast                          # Discover, adopt, link, and verify all resources

All skills

Quality & design (framework -> principles -> operational)

SkillPurpose
assess-qualityFoundational quality framework. The “why” layer above review-design and write-code
review-designPragmatic Programmer principles (DRY, orthogonality, design by contract)
review-diffReview staged, unstaged, and untracked changes using the assess-quality and review-design rubric
write-codeOperational picks: error handling, testing strategy, commit conventions, interface design
write-code-portfolioPersonal portfolio specifics (Nix Flakes, chezmoi machine polymorphism, Powerlevel10k, Neovim)
test-codeTesting philosophy and per-language conventions
build-cliDesign and audit CLI tools end-to-end (output modes, TTY, JSON piping, install.sh, portfolio self-update / --format requirements)
check-projectValidate project structure against scaffold conventions
choose-stackCanonical tech stack reference by purpose

Scaffolding & setup

scaffold-project is the canonical source for standard files; each scaffold-<lang> adds only language-specific deltas.

SkillPurpose
scaffold-projectProject structure and standard files (canonical)
scaffold-goGo-specific deltas (toolchain, CI matrix, release publisher)
scaffold-nodeNode/TypeScript deltas
scaffold-pythonPython deltas
scaffold-rustRust deltas
scaffold-terraformTerraform infra deltas
setup-ciCI/CD pipeline conventions
setup-devenvPer-language version manager + direnv pattern (portable)
setup-devenv-with-chezmoiChezmoi-specific helpers for pinned installers and tracked .envrc
dotfilesChezmoi naming, templating, and agentspec resource management conventions
sync-releaseEnd-to-end release pipeline (sr.yaml, CI, multi-platform builds)
repo-initFull repo bootstrap (create, license, scaffold, push)
community-healthGitHub Community Standards (CODE_OF_CONDUCT, SECURITY, ISSUE_TEMPLATE) with $COMMUNITY_HEALTH_CONTACT

Workflow automation

SkillPurpose
shipGenerate a conventional commit, then optionally push and watch CI until pass/fail
prCreate PRs with auto-generated summary from commits
merge-readyDrive an existing PR or MR to a mergeable state without merging it
diagnose-ciFind failing remote CI pipelines, pull logs, identify root cause (local sibling: diagnose-runtime)
diagnose-runtimeTriage local runtime errors, hangs, slowness, and hardware/serial issues (the local counterpart to diagnose-ci)
triage-dotfiles-envPlaybook of known dotfiles-stack failure modes (pipx shims, gpg signing, nix shellHook, P10k, nvim Lua APIs) with mandatory verification
fix-and-retryDiagnose CI failure, apply fix, commit, push, re-run
repo-statusScan a folder of git repos and report recent activity, branch divergence, and uncommitted state (renamed from status)
release-auditAudit releases, tags, and assets for health
sync-ecosystemAudit one repository against ecosystem conventions and emit a drift report
sync-ecosystem-to-chezmoiApply a sync-ecosystem drift report back into the chezmoi source tree
update-repo-metaUpdate GitHub repo topics, description, homepage
manage-secrets1Password-based secret workflow (vault layout, 1p:// references, op run)
manage-detect-secretsdetect-secrets baseline mechanics: update flags, commit-loop break, allowlist pragmas, audit flow
orchestrate-agentsSurvey-first orchestration of agent CLIs (Claude, Codex, Antigravity) over tmux: adopt and extend existing sessions, spawn only what is missing
use-worktreesCreate, enter, and clean up git worktrees under the standard .worktrees/<name> layout

AI & documentation

create-oss-skill owns the base spec; extend-oss-skills-to-claude is a sequel covering only the Claude-specific deltas.

SkillPurpose
agent-design-doctrineHouse doctrine for LLM agent systems: safety in the harness, tools return results, minimal loop code, deterministic evals, POC scope discipline
clean-docsSlash-invocable documentation cleanup: no em dashes, current facts, readable formatting, user-focused guidance
configure-aiAI tooling configuration, AGENTS.md, skills standard
create-llms-txtGenerate llms.txt files
create-oss-skillCreate portable agent skills (canonical spec)
extend-oss-skills-to-claudeClaude-specific skill deltas (invocation control, subagent execution, model overrides)
audit-securitySecurity auditing and threat detection
run-eval-harnessRun a project’s eval suite end to end: launch, monitor, parse the report, diff against the previous run (forks to a sonnet subagent)
style-brandFrame and document a project’s visual identity. Ships Cyberdream + MonaspiceNe + teasr as a template, not a mandate
sync-docsAudit and synchronize project documentation (canonical doc-drift skill)
write-readmeREADME structure and section order

Subagents

Delegation targets in dot_agents/agents/ that adopt a specific reasoning mode. Installable into any tool via agentspec manage link <name> <tool>.

AgentPurpose
architectInterface-first systems design with verbose, principle-driven reasoning
curatorPrescriptive perfectionist for consistency, polish, and visual hierarchy
debuggerTerse, empirical root-cause analysis
guardianSupervises orchestrated agent fleets driven by the orchestrate-agents skill (also installed as a Codex profile)
ideatorExpansive, generative creative exploration
strategistImperative orchestration across multiple systems and repos
technical-documentation-architectStructured technical documentation and architecture docs
writerConcise, outcome-focused technical documentation

License

Apache-2.0