Manages ~ on macOS via chezmoi. Covers shell, editor, AI tooling, calendar automation, and a library of AI agent skills.
athal7.github.io/dotfiles — a slide deck walking through how the agent skills fit together into a daily development workflow.
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply athal7You'll be prompted for a few required values (name, email, code directory, GitHub token, calendar names). Optional integrations — Slack, Figma, Elasticsearch, Linear, ICS feeds, etc. — can be added by editing ~/.config/chezmoi/chezmoi.toml after init. See the commented sections in .chezmoi.toml.tmpl for the full list.
Per-machine values that don't belong in version control (secrets manifest, calendar configuration, per-org overrides) live in ~/.local/share/chezmoi/.chezmoidata/local.yaml. Copy local.yaml.example from this repo's root and fill in your values.
orgs.<org> keys cover per-GitHub-org behaviors used by the agent skills:
issues: linearroutes issue management to Linear instead of GitHub Issuesautomated_reviewdeclares an embedded code reviewer (e.g. GitHub Copilot review) — thereviewskill consumes prior automated findings instead of duplicating them locally
Note: the example file lives at the repo root rather than under .chezmoidata/. Files inside .chezmoidata/ are merged into chezmoi data at runtime, which would leak placeholder values into the live config.
- Shell — zsh (
dot_zshrc.tmpl,dot_zshenv.tmpl,dot_zprofile.tmpl) - Editor — Neovim (
dot_config/nvim/) - Git — config, aliases, hooks (
dot_config/git/) - Terminal — Ghostty (
dot_config/ghostty/) - AI tooling — OpenCode config, MCPs, plugins, agent instructions (
dot_config/opencode/) - Packages — brew, cask, mise, GitHub releases (
.chezmoidata/packages.yaml) - Calendar automation — sync, lunch guard, family scheduler (
dot_local/bin/,Library/LaunchAgents/) - Homebridge — Google Nest via HomeKit (
dot_homebridge/) - macOS services — LaunchAgents for background processes (
Library/LaunchAgents/) - Agent skills — see
skills/
Agent Skills-compatible skills deployed to ~/.agents/skills/. Works with OpenCode and any compatible agent.
Skills use a capability-based composition system — workflow skills declare what they requires, and skills/capabilities.yaml binds capabilities to providers (a skill, cli://<binary>, or mcp://<server>). This lets workflow skills stay tool-agnostic: swap Linear for Jira by changing one line. See agentskills/agentskills#311 for the spec proposal.
Skills tell the agent what to do. Without mechanical enforcement, every skill is a polite suggestion the agent skim-selects from. High-stakes actions — git commit, git push, any gh write — are gated through opencode's permission config in opencode.json: patterns marked "ask" prompt for approval before the action runs, and the user picks once, always, or reject per prompt. Common reads like gh pr list and gh issue view are explicitly "allow" to avoid prompt fatigue.
With the GitHub CLI:
gh skill install athal7/dotfiles commit
gh skill install athal7/dotfiles reviewWith chezmoi — declare skills in .chezmoidata/packages.yaml and use a run_onchange_ script to install and update them weekly. See my sync script as a reference:
# .chezmoidata/packages.yaml
packages:
skills:
- repo: athal7/dotfiles
skill: commit
- repo: athal7/dotfiles
skill: review