This repository contains configuration files for various development tools and environments. It serves as a centralized location for managing dotfiles across different systems. The setup focuses on manual symbolic links to maintain control over what gets installed and where.
These dotfiles include configurations for:
- Terminal emulators (Alacritty, Ghostty)
- Shell environments (Zsh, Bash)
- Text editors (Neovim with LazyVim and NvChad variants)
- Version control (Git)
- Terminal multiplexer (Tmux)
- Search tools (Ripgrep)
- Package management (Homebrew)
- Fonts (Hack Nerd Font) - https://www.nerdfonts.com/font-downloads
- AI agent system (OpenCode)
- FNM - Fast Node Manager
All configurations are stored in ~/.dotfiles and linked manually to their expected locations. This approach allows for easy updates, backups, and selective installation.
Clone this repository to ~/.dotfiles first:
git clone <repository-url> ~/.dotfiles
cd ~/.dotfiles
git submodule update --init --recursiveThen create symbolic links for each configuration. Run these commands from your home directory (~).
mkdir -p ~/.config/alacritty
ln -s ~/.dotfiles/alacritty ~/.config/alacrittymkdir -p ~/.config/ghostty
ln -s ~/.dotfiles/ghostty ~/.config/ghosttyln -s ~/.dotfiles/zsh ~/.zsh
ln -s ~/.dotfiles/zsh/zshrc ~/.zshrcChoose one variant. For LazyVim:
mkdir -p ~/.config
ln -s ~/.dotfiles/neovim/LazyVim ~/.config/nvimFor NvChad:
mkdir -p ~/.config
ln -s ~/.dotfiles/neovim/NvChad2.5 ~/.config/nvimln -s ~/.dotfiles/git/gitconfig ~/.gitconfig
ln -s ~/.dotfiles/git/gitignore ~/.gitignoreln -s ~/.dotfiles/tmux ~/.tmux
ln -s ~/.dotfiles/tmux/tmux.conf ~/.tmux.confln -s ~/.dotfiles/ripgrep/ripgreprc ~/.ripgreprc
ln -s ~/.dotfiles/ripgrep/ripgrepignore ~/.ripgrepignoreInstall Fast Node Manager
curl -fsSL https://fnm.vercel.app/install | bash
ln -s /opt/homebrew/opt/fnm ~/.fnmInstall the CommitMono Nerd Font variants to your system fonts directory:
# On macOS
cp ~/.dotfiles/fonts/*.otf ~/Library/Fonts/
# On Linux
mkdir -p ~/.local/share/fonts
cp ~/.dotfiles/fonts/*.otf ~/.local/share/fonts/
fc-cache -fvmkdir -p ~/.config
ln -s ~/.dotfiles/opencode ~/.config/opencodeTo pull latest changes:
cd ~/.dotfiles
git pull
git submodule update --recursiveBefore creating symlinks, backup any existing configurations:
# Example for a config file
cp ~/.config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml.backupOnly create symlinks for the tools you use. Skip configurations for unused applications.
Edit files in ~/.dotfiles directly. Changes will apply immediately since they are symlinked. Commit and push changes to share across machines.
If a symlink fails, ensure the target directory exists:
mkdir -p ~/.config/some-appTo remove a symlink:
rm ~/.some-configThe opencode/ directory contains an AI agent system powered by OpenCode. It includes:
- Agents: Specialized AI assistants for different tasks (explore, librarian, oracle, etc.)
- Skills: Reusable capabilities and workflows for specific domains
- Tasks: Structured task management system
- Configuration: JSON files defining agent behaviors and integrations
AGENTS.md: Documentation for available agentsskills/: Directory containing skill definitionsagents/: Agent-specific configurationstasks/: Task management files
The OpenCode system integrates with various development tools and provides intelligent assistance for coding, debugging, and project management. Refer to opencode/README.md for detailed setup and usage instructions.
Ensure Node.js and related tools are installed for full OpenCode functionality. The system uses modern JavaScript and may require additional setup for MCP (Model Context Protocol) integrations.
cd ~/.dotfiles/brew
./restore.shThis runs brew bundle using the Brewfile in that directory to install all listed packages.