Portable zsh profile, inspired by mypsh.
- Small
~/.zshrcloader - Ordered profile snippets under
profile.d - Green path prompt using zsh
%~path shortening - Compact async Git status prompt
zoxideintegration withj- Optional private local files:
~/.pathand~/.function
The prompt displays the current path and, inside Git repositories, a compact status segment:
~/code/project [main | clean]
🎃
Dirty repositories show counts:
~/code/project [main | ahead 1 | staged:2 | mod:1 | new:3]
🎃
Git status refreshes in the background. The first render in a repository may show the branch with ..., then the next prompt shows the full status.
Run from this repository:
./install.shThe installer backs up the existing ~/.zshrc and writes a small loader:
source "/path/to/myzsh/profile.zsh"profile.zsh Repo profile entrypoint
profile.d/10-env.zsh Environment and public PATH setup
profile.d/20-functions.zsh Private function loader
profile.d/40-prompt.zsh Async Git prompt
profile.d/50-zoxide.zsh zoxide initialization
install.sh Writes the ~/.zshrc loader
Edit files under profile.d instead of editing ~/.zshrc directly.
Machine-specific configuration should stay outside the repository:
# ~/.path
path+=("$HOME/local/bin")
# ~/.function
my-helper() {
command my-tool "$@"
}profile.d/10-env.zsh loads ~/.path when it exists, and profile.d/20-functions.zsh loads ~/.function when it exists.