A high-performance, feature-rich ZSH theme with intelligent context display, inspired by and based on Agnoster but enhanced with additional developer-friendly features.
- Performance Caching: Minimizes slowdowns by caching version information
- Technology Detection: Automatically detects and displays:
- Node.js versions (with package manager indicator)
- Go versions
- .NET versions
- Docker projects
- Git status with clean/dirty indicators
- AWS profiles (with production warning colors)
- Python virtual environments
- Smart Context Display: Shows user@host only when needed (SSH or non-default user)
- Job & Process Status: Visual indicators for background jobs and exit codes
- Fully Customizable: Easy configuration for colors and segment enabling/disabling
- Terminal Compatibility: Works across different terminal emulators
-
Download the theme or clone the repository
-
move theme to your Oh My ZSH custom themes directory.
-
Set the theme in your
.zshrc
:
ZSH_THEME="agnopro"
- Restart your terminal or run:
source ~/.zshrc
To hide the username and hostname in local sessions, set your default username in .zshrc
before sourcing the theme:
DEFAULT_USER="your_username"
All segments are enabled by default. To disable any segment, add to your .zshrc
before sourcing the theme:
# Disable specific segments
ENABLE_NODE_PROMPT=0
ENABLE_DOCKER_PROMPT=0
# etc...
Available segments to configure:
ENABLE_STATUS_PROMPT
- Exit code and process statusENABLE_CONTEXT_PROMPT
- Username and hostnameENABLE_DIR_PROMPT
- Current directoryENABLE_NODE_PROMPT
- Node.js versionENABLE_GO_PROMPT
- Go versionENABLE_DOTNET_PROMPT
- .NET versionENABLE_DOCKER_PROMPT
- Docker project indicatorENABLE_GIT_PROMPT
- Git branch and statusENABLE_AWS_PROMPT
- AWS profileENABLE_VIRTUALENV_PROMPT
- Python virtual environment
To customize colors, add to your .zshrc
before sourcing the theme:
# Examples of color customization
CUSTOM_DIR_BG=34 # Change directory background to blue
CUSTOM_DIR_FG=255 # Change directory text to white
Reorder segments by setting the PROMPT_ORDER
variable in your .zshrc
before sourcing the theme:
# Custom ordering of segments
PROMPT_ORDER=(status context dir git node go docker)
This theme works best with a powerline-compatible font that includes the necessary glyphs:
- Nerd Fonts - Collection of patched fonts
- Powerline Fonts - Patched fonts for Powerline users
If using VS Code's integrated terminal, add this to your VS Code settings.json:
"terminal.integrated.fontFamily": "MesloLGS NF"
Replace "MesloLGS NF" with your preferred Nerd Font.
If you see boxes or question marks instead of icons:
- Ensure you have a Nerd Font installed and configured in your terminal
- For VS Code, configure the integrated terminal font as shown above
- Some terminal emulators may require additional configuration
If your prompt is slow to appear:
- The theme uses caching to minimize slowdowns, but large git repositories might cause delays
- Disable segments you don't need with the configuration options above
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by and based on the Agnoster ZSH theme
- Thanks to all contributors and testers