Personal macOS configuration files and development environment setup.
git clone https://github.com/andreivcodes/dotfiles.git ~/git/dotfiles
cd ~/git/dotfiles
./setup.sh- Brewfile: Declarative package management for Homebrew CLI tools and apps
- Shell Configuration: Performance-optimized
.zshrcwith lazy loading - AI CLI Configuration: Shared Codex, Claude Code, and OpenCode setup
- Shared Agent Rules & Skills: One canonical instructions file, synced repo skills, and preserved external skill installs
- Development Environment: Node.js (via NVM), Rust, Bun, and essential CLI tools
- Installation Scripts: Automated setup and symlink management
dotfiles/
├── README.md
├── Brewfile
├── setup.sh
├── installers/
│ ├── all.sh
│ ├── ai-tools.sh
│ ├── brew.sh
│ ├── dev.sh
│ ├── dock.sh
│ ├── mcp-env.sh
│ └── timemachine-exclude.sh
├── dotfiles/
│ ├── dotfiles.sh
│ ├── .zshrc
│ ├── agents/
│ │ ├── AGENTS.md
│ │ └── skills/
│ ├── codex/
│ │ └── config.toml
│ ├── claude/
│ │ ├── mcp.json
│ │ ├── settings.json
│ │ └── statusline.sh
│ ├── opencode/
│ │ └── opencode.json
│ └── zed/
│ └── settings.json
├── preferences/
│ └── system.sh
└── lib/
└── utils.sh
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlightinggit clone https://github.com/andreivcodes/dotfiles.git ~/git/dotfiles
cd ~/git/dotfiles
./setup.shThis will:
- Install all Homebrew packages and applications
- Set up Node.js, Bun, and Rust development environments
- Install Codex, Claude Code, OpenCode, Agent Browser, Railway CLI, and Vercel CLI
- Prompt for MCP API keys used by the shared AI tool configs
- Configure macOS system preferences
- Create symlinks for shell, editor, and shared AI CLI configs
- Configure Dock layout
- Set up Time Machine exclusions for development directories
bash installers/brew.sh
bash installers/dev.sh
bash installers/ai-tools.sh
bash installers/mcp-env.sh
bash preferences/system.sh
bash dotfiles/dotfiles.sh
bash installers/dock.sh
bash installers/timemachine-exclude.sh- Lazy loading for
nvm,cargo, andrustup - 100k command history with deduplication and sharing across sessions
- Git aliases for common workflows
- Daily completion cache refresh for faster shell startup
- Minimal Claude wrapper that injects the repo-managed MCP config
This repo manages shared config files for the three CLI tools:
- Codex:
~/.codex/config.toml,~/.codex/AGENTS.md - Claude Code:
~/.claude/settings.json,~/.claude/CLAUDE.md,~/.claude/mcp.json,~/.claude/statusline.sh - OpenCode:
~/.config/opencode/opencode.json,~/.config/opencode/AGENTS.md
Usage is plain:
codex
claude
opencodeAuthentication is also plain:
codex login
claude auth login
opencode auth loginThe repo only manages stable config files and shared skills. Auth, sessions, and other mutable runtime state stay in the tools' native user locations. Any old ~/.codex-profiles, ~/.claude-profiles, or ~/.opencode-profiles directories are no longer used by this repo.
During setup, installers/mcp-env.sh prompts for CONTEXT7_API_KEY and EXA_API_KEY and writes them to ~/.zshrc.local.
Shared MCP coverage includes context7, gh_grep, exa, vercel, and railway across Codex, Claude Code, and OpenCode.
- Repo skills are synced into
~/.agents/skills - External skills exposed through
~/.agents/skillsare preserved during sync - Native tool skill directories are linked to that shared location
- One canonical rules file in
dotfiles/agents/AGENTS.mdis linked into each tool's documented shared config location
This repo tracks the current upstream install pattern for superpowers across the supported AI CLIs:
- Claude Code: enabled via
enabledPluginsassuperpowers@claude-plugins-official - OpenCode: added to
pluginassuperpowers@git+https://github.com/obra/superpowers.git - Codex:
installers/ai-tools.shclonesobra/superpowersinto~/.codex/superpowers, anddotfiles/dotfiles.shlinks~/.agents/skills/superpowersto that checkout so native skill discovery can find it
After syncing dotfiles, restart Claude Code or run /reload-plugins, and restart OpenCode so the plugin installs load. For Codex, rerun bash dotfiles/dotfiles.sh after bash installers/ai-tools.sh if you install or update Superpowers separately.
Use the checked-in Brewfile directly:
cd ~/git/dotfiles
brew bundle install
brew bundle check
brew bundle cleanup
brew bundle install --file ~/git/dotfiles/Brewfile
brew bundle check --file ~/git/dotfiles/Brewfile- Codex agent server support
- Prettier formatters for JavaScript, TypeScript, and TSX
- Git gutter and inline blame
- Integrated zsh terminal
- System-aware One Light / One Dark theme
/usr/bin/time zsh -i -c exitExpected result with the current lazy-loading setup: roughly 0.05-0.15s.
zmodload zsh/zprof
exec zsh
zprofbrew update && brew upgrade
omz update
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && git pull
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && git pullThe dotfiles are symlinked into your home directory, so edits to managed paths such as ~/.zshrc, ~/.codex/config.toml, or ~/.config/zed/ are reflected in the repository.
- Profile the shell with
zprof - Check that
nvmandcargoare still lazy-loaded - Trim unused Oh My Zsh plugins
- Run
brew doctor
Verify the commands resolve correctly:
type codex
type claude
type opencodeIf a tool is missing, install it with:
brew install --cask codex
curl -fsSL https://claude.ai/install.sh | bash
brew install anomalyco/tap/opencode
brew install railway
npm i -g vercel@latestIf Claude is installed but not loading the shared MCP config, reload your shell and verify ~/.claude/mcp.json exists.
rm -f ~/.zcompdump
exec zshbrew doctor
brew cleanup
brew update
brew upgrade.gitignorekeeps secrets and local-only files out of the repo- This repo only symlinks stable AI config files; auth and session state stay tool-managed
always_allow_tool_actionsin Zed bypasses security prompts; adjust if needed
MIT License. Adjust as needed for your own setup.