git clone https://github.com/maedmatt/dotfiles.git ~/dotfiles && cd ~/dotfiles
./install.sh # symlink dotfiles
./install.sh --apps # install tools
./install.sh --claude # symlink Claude Code config
./install.sh --codex # symlink Codex rules, prompts, skills, and optional local config
./install.sh --opencode # symlink OpenCode config
./install.sh --pi # symlink Pi config, extensions, theme, rules, and skills
./install.sh --all # everythingshared/
βββ nvim/ # neovim config
βββ tmux.conf # tmux config
βββ yazi/ # yazi file manager
βββ herdr/ # herdr config
βββ claude/ # claude code (rules, commands)
βββ codex/ # openai codex (AGENTS.md, prompts, optional ignored config.toml)
βββ opencode/ # opencode (config, commands, themes)
βββ pi/ # pi settings, extensions, and themes
βββ skills/ # shared skills for all AI agents
macos/ # zshrc, ghostty
linux/ # bashrc, ghostty
Single always-on rule file, shared across all four agents:
shared/claude/CLAUDE.mdis the cross-project baseshared/codex/AGENTS.mdis a symlink to the same fileshared/opencode/opencode.jsonreferences the same file via itsinstructionsarray~/.pi/agent/AGENTS.mdsymlinks toshared/codex/AGENTS.md
Task-specific rules (commits style, Python conventions) live as skills under shared/skills/ and trigger on relevance.
Skills are shared across Claude Code, Codex, OpenCode, and Pi via symlinks to shared/skills/.
To install new skills:
npx add-skill <repo> -g -a claude-codeThe -g flag installs globally to ~/.claude/skills/, which symlinks to shared/skills/. All agents see new skills immediately.