A modular development environment configuration focusing on Python, Node.js, and shell productivity.
This repository contains configuration for:
- 🐚 Shell (ZSH) configuration with performance optimizations
- 🐍 Python environment management (uv, venv, poetry)
- 📦 Node.js version management (fnm)
- 🔧 Development tools (direnv, starship)
- 🎨 Terminal customization
-
Clone the repository:
git clone https://github.com/yourusername/setup.git ~/dev/setup
-
Run the setup scripts:
cd ~/dev/setup ./setup
-
Restart your terminal
source ~/.zshrc
Later on, you can run
reload
to restart your terminal.
- Fast python package management with uv
- Node.js version management with fnm
- Custom prompt with starship
- Color schemes for Terminal.app and iTerm2
- Modular ZSH configuration
- Lazy loading for better startup time
- Optimized completions
- Useful aliases and functions
- Multiple python environment management options:
- uv (recommended)
- venv
- poetry
- Automatic environment activation with direnv
- Project scaffolding with
pyinit
- Global gitignore settings
- Common development files ignored
- Lazy loading of heavy commands
- Completion caching
- Command evaluation caching
- Shell startup profiling
- Automatic Python virtual environment activation
- Node.js version switching per project
- Custom terminal prompt with git status
- Docker container status in prompt
- macOS (primary support)
- Homebrew
- Git
- Zsh
Each component can be customized by editing its configuration:
- Shell:
shell/.zsh/*.zsh
- Terminal:
terminal/starship.toml
- Python:
direnv/direnvrc
- Git:
git/.gitignore_global
Use the built-in profiling tool:
zsh_profile