Welcome to NeoPilot optimized development environment that is well integrated with our stack.
This dotfiles repository provides a comprehensive development setup including:
- Zsh with modern plugins and fuzzy completion
- Tmux with session management and productivity features
- Neovim with AI-powered completion and modern tooling
- Git with enhanced workflows and theming
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/neopilotai/dotfiles/master/scripts/assets/executable_install.sh)"cd $HOME
chezmoi init [email protected]:neopilotai/dotfiles.git
# Show diff of changes that will be made
chezmoi diff
# Apply changes
chezmoi apply -vAfter installation, close and reopen your terminal to trigger first-time setup.
- GitHub Authentication: Run
gh auth loginor add SSH key to your GitHub account - Nerd Fonts: Enable a nerd font (e.g.,
Hack Nerd Font) in your terminal - iTerm2 Integration: On macOS, the setup will offer to install the bundled iTerm2 profile
- Fuzzy Menus: Press
TABfor command completion,^Rfor history search - Vi Mode: Press
ESCto enter Vi NORMAL mode - Smart Prompt: Shows Git status, exit codes, and contextual information
- Auto-complete: Enhanced completion with previews and descriptions
- Insults/Cheers: Fun feedback for command success/failure (configurable)
- Weather Display: Shows current weather on startup
- GitHub Status: Displays GitHub service status
- Auto-updates: Automatic dotfile updates every 7 days
<TAB>- Command completion menu^R- History fuzzy searchESC- Enter Vi modevv(in Vi mode) - Open file in Neovim with Copilot
- Session Management: Automatic session restoration and fuzzy session switching
- Fuzzy Menu: Press
<C-a><C-Space>for quick tmux management - Tmux Menu: Press
F12for session/window/pane management - Nested Sessions: Press
F1to suspend/unsuspend local tmux
<C-a>or<C-b>- Prefix key<C-a><C-Space>- Fuzzy menuF12- Tmux management menuF1- Toggle nested sessions<C-a><C-/>- Fuzzy search in terminal buffer<C-a><C-P>- PathPicker integration
This environment provides a modern Neovim setup optimized for development.
- GitHub Copilot: Type
:Copilot setupto configure - CodeGPT: Highlight code and press
<space><space>for AI options - LanguageTool: Premium integration for grammar checking
- Fuzzy Menu: Press
<space><space>orShift+LeftMousefor contextual actions - Color Schemes: Multiple themes with Gruvbox as default
- Landing Page: Helpful links and discoverability aids
You can provide additional settings in:
$HOME/.vimrc_local- Additional Vim configuration$HOME/.vimrc_plugins- Additional plugins$HOME/.config/nvim/init.vim- Neovim-specific settings
- Delta Integration: Modern diff viewer with syntax highlighting
- Git Extras: Additional Git commands and utilities
- Smart Defaults: Optimized merge and push behavior
See .gitconfig_themes for available themes. Override in your local .gitconfig_local.
All tools support local override files that won't be overwritten by updates:
| Tool | Override File | Purpose |
|---|---|---|
| Zsh | .zshrc_local |
Additional shell configuration |
| Vim | .vimrc_local |
Additional Vim settings |
| Tmux | .tmux.conf_local |
Additional tmux settings |
| Git | .gitconfig_local |
Personal Git configuration |
| Homebrew | .brew_local |
Private package list |
| Fsh | .config/fsh_local |
Fast syntax highlighting theme |
The setup uses Gruvbox Dark as the default theme across all tools.
- macOS: iTerm2 profile installation offered during setup
- Linux: Colors set via escape codes (disable with
SET_TERMINAL_COLORS=false) - Alternative: Use terminal's built-in color profiles
- bat:
BAT_THEMEenvironment variable - FZF: Base16 color schemes from base16-fzf
- LS_COLORS: vivid integration
- Git: Multiple themes in
.gitconfig_themes
├── dot_* # Chezmoi dotfiles (prefixed with dot_)
├── scripts/ # Scripts and assets
│ ├── assets/ # Configuration assets, scripts, images
│ └── bin/ # Executable scripts
├── .github/workflows/ # GitHub Actions
├── .chezmoidot.toml # Chezmoi configuration
├── .chezmoiignore # Chezmoi ignore patterns
├── Makefile # Development tasks
└── README.md # This file
# Show available commands
make help
# Lint configuration files
make lint
# Validate setup and run security checks
make validate
# Run security validation only
make security
# Update dotfiles
make update
# Show current status
make status# Add a new file to be managed
make add FILE=path/to/your/file
# Edit existing dotfile with chezmoi
make edit# Disable automatic color setting
echo 'export SET_TERMINAL_COLORS=false' >> ~/.zshrc_local# Install Homebrew (required)
make install
# or manually:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# Check chezmoi status
chezmoi doctor
# Force update
chezmoi update --force
# Show what would change
chezmoi diff# Fix chezmoi permissions
chezmoi state reset
chezmoi apply- Check Status: Run
make statusto see current state - Validate Setup: Run
make validateto check for issues - View Diff: Run
chezmoi diffto see pending changes - Documentation: Check tool-specific documentation in comments
If something breaks, you can:
- Backup current setup:
chezmoi backup - Reset to known state:
chezmoi apply --force - Check logs: Look for error messages in terminal output
This dotfiles repository includes several security measures:
- No Hardcoded Secrets: All sensitive data uses environment variables or secure vaults
- Safe Installation: Verified downloads and proper input validation
- Secure Defaults: Conservative permissions and safe shell practices
- Regular Validation: Automated security checks and linting
Run security checks before making changes:
# Run full validation
make validate
# Run security validation only
make security
# Lint all configuration files
make lint- Store API keys and tokens in environment variables, not config files
- Use
*_localfiles for personal settings (they're automatically ignored) - Regularly update your system and packages
- Use SSH keys instead of passwords when possible
- Never commit secrets or personal information
- Use
make securitybefore submitting changes - Follow shell scripting best practices
- Validate all user input in scripts
- Homebrew installation uses official sources
- No automatic privilege escalation
- User confirmation for system changes
- Package updates use safe practices
- npm audit runs before applying fixes
- pip updates respect requirements files when available
- Local override files are never committed
- Sensitive paths are properly ignored
- No world-writable files by default
- Test changes: Use
make validatebefore committing - Security check: Run
make securityto ensure no security issues - Update documentation: Keep README.md in sync with changes
- Follow conventions: Use existing patterns for new configurations