# Dotfiles Package Configuration # Define packages to be installed across all systems # System packages (apt/yum/brew) system_packages: - name: sshuttle description: "VPN over SSH" check_command: "which sshuttle" install_commands: debian: "sudo apt update && sudo apt install -y sshuttle" ubuntu: "sudo apt update && sudo apt install -y sshuttle" fedora: "sudo dnf install -y sshuttle" centos: "sudo yum install -y sshuttle" rhel: "sudo yum install -y sshuttle" macos: "brew install sshuttle" - name: curl description: "Command line tool for transferring data" check_command: "which curl" install_commands: debian: "sudo apt update && sudo apt install -y curl" ubuntu: "sudo apt update && sudo apt install -y curl" fedora: "sudo dnf install -y curl" centos: "sudo yum install -y curl" rhel: "sudo yum install -y curl" macos: "brew install curl" - name: git description: "Version control system" check_command: "which git" install_commands: debian: "sudo apt update && sudo apt install -y git" ubuntu: "sudo apt update && sudo apt install -y git" fedora: "sudo dnf install -y git" centos: "sudo yum install -y git" rhel: "sudo yum install -y git" macos: "brew install git" - name: vim description: "Text editor" check_command: "which vim" install_commands: debian: "sudo apt update && sudo apt install -y vim" ubuntu: "sudo apt update && sudo apt install -y vim" fedora: "sudo dnf install -y vim" centos: "sudo yum install -y vim" rhel: "sudo yum install -y vim" macos: "brew install vim" # Binary downloads and installs binary_packages: - name: claude-code description: "Claude Code CLI" check_command: "which claude" install_type: "npm" npm_package: "@anthropic-ai/claude-code" fallback_install: | echo "Trying alternative binary installation..." if [[ "$OSTYPE" == "linux-gnu"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then curl -fsSL https://claude.ai/install.sh | bash else echo "Unsupported OS for Claude Code CLI" return 1 fi - name: gemini-cli description: "Google Gemini CLI" check_command: "which gemini" install_type: "npm" npm_package: "@google/gemini-cli" homebrew_package: "gemini-cli" npx_fallback: "https://github.com/google-gemini/gemini-cli" - name: task-master description: "Task management tool" check_command: "which task-master" install_type: "github" github_repo: "your-username/task-master" # Replace with actual repo github_install_method: "release" # or "build" install_path: "$HOME/.local/bin" # GitHub repository installations github_packages: - name: fzf description: "Command-line fuzzy finder" check_command: "which fzf" github_repo: "junegunn/fzf" install_method: "clone_and_install" install_path: "$HOME/.fzf" post_install: "$HOME/.fzf/install --all" - name: exa description: "Modern replacement for ls" check_command: "which exa" github_repo: "ogham/exa" install_method: "release_binary" install_path: "$HOME/.local/bin" binary_name: "exa" asset_pattern: "linux-x86_64" # or "macos-x86_64" for macOS - name: bat description: "A cat clone with syntax highlighting" check_command: "which bat" github_repo: "sharkdp/bat" install_method: "release_binary" install_path: "$HOME/.local/bin" binary_name: "bat" asset_pattern: "x86_64-unknown-linux-gnu" # or "x86_64-apple-darwin" for macOS - name: ripgrep description: "Fast text search tool" check_command: "which rg" github_repo: "BurntSushi/ripgrep" install_method: "release_binary" install_path: "$HOME/.local/bin" binary_name: "rg" asset_pattern: "x86_64-unknown-linux-gnu" - name: fd description: "Fast alternative to find" check_command: "which fd" github_repo: "sharkdp/fd" install_method: "release_binary" install_path: "$HOME/.local/bin" binary_name: "fd" asset_pattern: "x86_64-unknown-linux-gnu" - name: delta description: "Syntax-highlighting pager for git" check_command: "which delta" github_repo: "dandavison/delta" install_method: "release_binary" install_path: "$HOME/.local/bin" binary_name: "delta" asset_pattern: "x86_64-unknown-linux-gnu" # Python packages (pip) python_packages: - name: requests description: "Python HTTP library" check_command: "python3 -c 'import requests' 2>/dev/null" install_command: "pip3 install requests" # Node.js packages (npm) npm_packages: - name: pm2 description: "Process manager for Node.js" check_command: "which pm2" install_command: "npm install -g pm2" # Oh My Zsh plugins (only for zsh users) zsh_plugins: - name: zsh-syntax-highlighting description: "Syntax highlighting for zsh" check_path: "$HOME/.oh-my-zsh/plugins/zsh-syntax-highlighting" install_script: | if [[ -d "$HOME/.oh-my-zsh" ]]; then git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting fi - name: zsh-autosuggestions description: "Auto suggestions for zsh" check_path: "$HOME/.oh-my-zsh/plugins/zsh-autosuggestions" install_script: | if [[ -d "$HOME/.oh-my-zsh" ]]; then git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions fi # Optional packages (won't fail installation if they can't be installed) optional_packages: - name: docker description: "Container platform" check_command: "which docker" install_commands: debian: "curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh" ubuntu: "curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh" fedora: "sudo dnf install -y docker" centos: "sudo yum install -y docker" rhel: "sudo yum install -y docker" macos: "brew install --cask docker" - name: docker-compose description: "Multi-container Docker applications" check_command: "which docker-compose" install_commands: debian: "sudo apt update && sudo apt install -y docker-compose" ubuntu: "sudo apt update && sudo apt install -y docker-compose" fedora: "sudo dnf install -y docker-compose" centos: "sudo yum install -y docker-compose" rhel: "sudo yum install -y docker-compose" macos: "brew install docker-compose"