Manages ~ on macOS via chezmoi. Covers shell, editor, AI tooling, calendar automation, and a library of AI agent skills.
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply athal7You'll be prompted for secrets and machine-specific values during init. See chezmoi's password manager docs for how to integrate with your preferred secret store.
- 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 — 26 skills for OpenCode and compatible agents (
dot_agents/skills/)
chezmoi uses filename prefixes to encode behavior. Key ones used here:
| Source name | Deploys to |
|---|---|
dot_foo |
~/.foo |
dot_config/ |
~/.config/ |
dot_agents/ |
~/.agents/ |
dot_local/ |
~/.local/ |
foo.tmpl |
foo (processed as a Go template) |
private_foo |
foo (deployed with chmod 600) |
run_once_*.sh |
Script run once on first apply |
run_onchange_*.sh |
Script run when its contents change |
See the chezmoi source state reference for the full list.
26 Agent Skills-compatible skills deployed to ~/.agents/skills/. Works with OpenCode and any compatible agent. See dot_agents/skills/README.md for the full list and install instructions.
Skills use a capability-based composition system — workflow skills declare what they requires, and a capabilities.yaml manifest 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.
Spec proposal: This composition model is proposed as an extension to the agentskills format at agentskills/agentskills#311.
Install individual skills via chezmoi external by adding entries to your .chezmoiexternal.toml:
["commit-skill"]
type = "archive"
url = "https://github.com/athal7/dotfiles/archive/refs/heads/main.tar.gz"
stripComponents = 3
include = ["*/dot_agents/skills/commit/**"]
targetPath = ".agents/skills/commit"
refreshPeriod = "168h"stripComponents = 3 strips the athal7-dotfiles-<sha>/dot_agents/skills/ prefix so the skill lands directly at the targetPath.
To use workflow skills that have requires, create ~/.agents/capabilities.yaml mapping each capability to a provider:
# Skill — loads SKILL.md instructions
logs: elasticsearch
# CLI — agent calls the binary directly via Bash
calendar: cli://ical
# MCP tool — activates tool calls on demand
pull-requests: mcp://githubYour agent also needs to know how to resolve capabilities. Add this to your global agent instructions (e.g. ~/.config/opencode/AGENTS.md):
## Skill Capabilities
When you load a skill that has `requires` in its metadata, read `~/.agents/capabilities.yaml`
to resolve each capability. If the value is a skill name, load that skill. If it starts with
`cli://`, call that binary via Bash and read its `--help` on demand. If it starts with `mcp://`,
activate that tool. If a capability has no mapping, ask the user which provider to use.