Personal dotfiles for zsh, prompt, terminal, and editor setup. Works on Linux and macOS.
curl -fsSL https://raw.githubusercontent.com/npgrosser/dotfiles/refs/heads/main/install.sh | bashinstall.sh is a bootstrapper. It downloads the repo archive and runs scripts/setup.sh.
| Tool | Description | Install method |
|---|---|---|
| zsh | Shell | Package manager |
| Oh My Zsh | Zsh framework | Installer script |
| Starship | Cross-shell prompt | Installer script |
| zsh-autosuggestions | Fish-like autosuggestions | git clone |
| zsh-syntax-highlighting | Syntax highlighting for zsh | git clone |
| fzf | Fuzzy finder | git clone |
| Tool | Description | Linux | macOS |
|---|---|---|---|
| eza | Modern ls replacement |
Binary download | brew |
| bat | Modern cat with syntax highlighting |
Binary download | brew |
| ripgrep | Fast grep replacement |
Binary download | brew |
| jq | JSON processor | Binary download | brew |
| yq | YAML processor | Binary download | brew |
| lazydocker | Docker TUI | Installer script | brew |
| Tool | Description | Install method |
|---|---|---|
| Claude CLI | Anthropic Claude | Installer script |
| GitHub CLI | GitHub from the terminal | Binary download / brew |
| uv | Python package manager | Installer script |
| Node.js | JavaScript runtime (via nvm) | nvm |
- Starship
tokyo-nightpreset ~/.zshrc_customwith aliases and PATH setup~/.tmux.confwith custom keybindings~/.gitconfig_dotfiles(included via~/.gitconfig)
On macOS, Homebrew is installed automatically if missing (required for CLI tools above). On Linux, zsh is installed automatically via the system package manager (dnf, apt-get, or pacman) if missing.
install.sh→ bootstrap entrypoint (local or remote)scripts/setup.sh→ main idempotent setup logicconfig/zshrc_custom→ user zsh custom configbin/dot→ CLI helper (dot add,dot update,dot install-vscode-ext)
After install, restart your shell or run:
exec zshAvailable dot commands:
dot update # pull latest dotfiles from GitHub and re-run setup
dot add list # show available packages and install status
dot add rust # install Rust toolchain
dot add gcloud # install Google Cloud CLI
dot add bw # install Bitwarden CLI
dot add cursor # install Cursor CLI
dot install-vscode-ext # install VS Code extensions from configbwenv syncs .env files with Bitwarden as secure notes. Requires bw (Bitwarden CLI) and jq.
The project name is auto-detected from the git remote or directory name. Items are stored as env/<project> in Bitwarden.
bwenv push [project] # push local .env to Bitwarden
bwenv pull [project] # pull .env from Bitwarden to local
bwenv diff [project] # show diff between local and Bitwarden
bwenv list # list all stored .env itemsCustom keybindings (prefix = Ctrl+b):
| Shortcut | Action |
|---|---|
Alt+Shift+D |
Smart split: splits along longer axis (spiral layout) |
Ctrl+Shift+←/→/↑/↓ |
Navigate panes |
Alt+Shift+←/→/↑/↓ |
Resize pane (5 cols/rows) |
Prefix+v |
Enter scroll/copy mode |
In copy mode: arrow keys or PgUp/PgDn to scroll, q to exit.
If dot is "command not found" in the current shell:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && exec zsh