Personal shell, git, and vim configuration.
Run:
./installYou can now limit what ./install touches by passing component flags. When no component flags are provided, the script behaves as before and links every dotfile (plus the LLM and Opencode assets). Use flags like --bash, --codex, or --opencode to install only those sections:
--bash→~/.bashrc,~/.aliases,~/.bash_profile--zsh→~/.zshrc,~/.oh-my-zsh--git→~/.gitconfig,~/.gitignore,~/.gitcommit--vim→~/.vim,~/.vimrc--gemrc→~/.gemrc--editorconfig→~/.editorconfig--llmor--llms→ all LLM homes (agents, codex, gemini, claude)--agents,--codex,--gemini,--claude→ install only the individual agent home(s)--opencode→~/.config/opencode(agents, commands, hooks, skills, MCP config) plus Bun/NPM dependencies
If more than one flag is provided they can be combined (e.g., ./install --opencode --codex). Use --submodules=all to ensure every submodule updates, --submodules=none to skip them entirely, or the default --submodules=non-vim to update only oh-my-zsh.
This script backs up any existing files to ~/.dotfiles-backup/<timestamp> and then creates symlinks to this repo.
After cloning, run:
git submodule update --init --recursiveCreate any of these files in your home directory if you need machine-specific settings:
~/.gitconfig.local~/.zshrc.local~/.bashrc.local~/.aliases.local
Examples are available in this repo:
gitconfig.local.examplezshrc.local.examplebashrc.local.examplealiases.local.example
Opencode's workspace now lives inside the existing agents/ hierarchy so there's a single source of truth:
agents/agents,agents/hooks,agents/get-shit-done, andagents/skillsprovide the shared assets mirrored into~/.config/opencode.agents/promptshouses the GSD/hl/i command definitions (gsd-*,hl-*, andi-*files).agents/opencode-config/{opencode.json,settings.json,package.json,bun.lock}store the MCP configuration and dependency manifests that power the CLI.
Running ./install links each of those paths into ~/.config/opencode (with agents/prompts mirrored into ~/.config/opencode/commands/<prefix>/ and agents/opencode.settings.sample.json copied as opencode.json) and then boots Bun (preferred) or npm inside that directory to populate node_modules/.
If neither bun nor npm is available the installer will warn and you can manually run bun install (or npm install) inside ~/.config/opencode whenever the Opencode configuration or MCP dependencies change. The installer never commits node_modules, so rerun ./install after dependency updates.