Modern macOS terminal setup with automated installation and configuration for productivity-focused developers.
- π One-command setup - Automated installation with intelligent prompts
- π‘οΈ Safe installation - Automatic backups before overwriting existing configs
- π¦ Modern CLI tools - Curated collection of productivity-enhancing utilities
- π¨ Beautiful terminal - Pre-configured with Nerd Fonts and modern themes
- β‘ Performance focused - Fast shell startup with lazy-loaded plugins
- π§ TypeScript-powered - Type-safe setup script with comprehensive error handling
- π LazyVim IDE - Full-featured Neovim setup with LSP, debugging, and more
# Clone the repository
git clone https://github.com/yordan-kanchelov/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Run the bootstrap script (installs Node.js if needed)
./bootstrap.sh
# Run the interactive setup
npm install
npm run setup- ZSH with zplug plugin manager
- Syntax highlighting
- Auto-suggestions
- Vi-mode with visual feedback
- Directory jumping with zoxide
- Command history sync with atuin
- Starship prompt - Fast, customizable, cross-shell prompt
- Tmux with sensible defaults and plugin manager
- Neovim with LazyVim - Modern vim with pre-configured IDE features
- LSP support for intelligent code completion
- Treesitter for advanced syntax highlighting
- Telescope for fuzzy finding
- Custom keybindings and plugins
- Lazygit - Terminal UI for git
- GitHub CLI (
gh) - GitHub from the command line - fnm - Fast Node.js version manager
- Language support: Go, Python, Rust
- bat -
catwith syntax highlighting - eza - Modern
lsreplacement - ripgrep (
rg) - Fast file search - fzf - Fuzzy finder for everything
- yazi - Terminal file manager
- atuin - Sync shell history across machines
- zoxide - Smarter
cdcommand - bruno - API client
- FiraCode Nerd Font
- RobotoMono Nerd Font
npm run setupPrompts for each action with options to overwrite, skip, or backup existing files.
npm run setup:forceOverwrites existing files without prompting (creates backups first).
npm run setup:appendAppends configuration to existing shell RC files instead of replacing them.
npm run setup:no-packagesOnly sets up configuration files, skips Homebrew package installation.
npm run ci:setupNon-interactive installation for CI environments.
Edit brew_packages.txt to add new Homebrew packages (one per line).
.
βββ bootstrap.sh # Node.js setup script
βββ setup.ts # Main installation script
βββ brew_packages.txt # Homebrew packages list
βββ .config/ # Modern tool configs
β βββ nvim/ # LazyVim configuration
β β βββ init.lua # Main config entry
β β βββ lua/ # Lua configurations
β βββ starship.toml # Starship prompt
β βββ ghostty/ # Ghostty terminal
β βββ atuin/ # Shell history
βββ zsh/ # ZSH configuration
β βββ .zshrc
βββ tmux/ # Tmux configuration
β βββ .tmux.conf
βββ fonts/ # Nerd Font collections
Existing files are backed up to ~/.dotfiles_backup/ with timestamps.
- macOS (primary target, some features work on Linux)
- Command Line Tools for Xcode
- Internet connection for package downloads
# Run all tests
npm test
# Type checking
npm run typecheck# Test CI mode without actually installing
CI=true npm run ci:setup- Shell Configuration: Edit
zsh/.zshrcfor ZSH customizations - Neovim/LazyVim: Customize in
.config/nvim/lua/plugins/for additional plugins - Tmux: Modify
tmux/.tmux.conffor tmux settings - Starship Prompt: Customize
.config/starship.toml - Package List: Update
brew_packages.txtwith your preferred tools
- Check
~/.dotfiles_backup/for backed up files - Ensure Xcode Command Line Tools are installed:
xcode-select --install
MIT License - See LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This setup is inspired by the dotfiles community and includes configurations adapted from various sources. Special thanks to all the creators of the amazing tools included in this setup.