- Install homebrew (Mac only)
Note: cross reference official documented install steps
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Add homebrew to $PATH for current session so that the follow steps can access homebrew packages.
export PATH=$PATH:/opt/homebrew/bin- Install dependencies
Mac:
brew install \
atuin \
borders \
fish \
fzf \
git \
gnupg \
golang \
jq \
lazygit \
neovim \
ripgrep \
scroll-reverser \
sesh \
sketchybar \
starship \
stow \
tmux \
trash \
tree-sitter-cli \
uv \
wget \
zoxide
&& \
brew tap homebrew/command-not-found && \
brew install --cask \
nikitabobko/tap/aerospace \
&& \
defaults write -g NSWindowShouldDragOnGesture -bool trueDebian/Ubuntu
Add Neovim unstable PPA for latest version:
echo "deb https://ppa.launchpadcontent.net/neovim-ppa/unstable/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/neovim-unstable.list
curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9DBB0BE9366964F134855E2255F96FCF8231B6DD" | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/neovim-ppa.gpgapt update && apt upgrade ;\
apt install \
fish \
fzf \
git \
golang \
lazygit \
neovim \
python3 \
python3-venv \
ripgrep \
stow \
tmux \
tree-sitter-cli \
wget \
zoxideThe live Pi picker requires fzf 0.44.1 or newer (Ubuntu 24.04+ or Debian 13+).
Install sesh with Go:
go install github.com/joshmedeski/sesh/v2@latestArch
pacman -Syu \
fish \
fzf \
git \
golang \
lazygit \
neovim \
python \
ripgrep \
stow \
tmux \
tree-sitter-cli \
wget \
zoxide(Arch/Debian) Install sesh with Go:
go install github.com/joshmedeski/sesh/v2@latest- Install
fnm(instead ofnvm)
Mac:
brew install fnmDebian/Arch:
curl -fsSL https://fnm.vercel.app/install | bash- Install rust
View latest documentation & follow install instructions. After installing, run this:
rustup updateLinux only (otherwise handled by homebrew):
cargo install --force yazi-build
cargo install starship --locked
cargo install atuin --locked1.Install Agents
(Optionally install Codex/Claude Code; view upstream documentation)
Pi:
bun add -g @earendil-works/pi-coding-agentbun add -g @jarkkojs/readseek# Atlassian
curl -fsSL --retry 2 https://teamwork-graph.atlassian.com/cli/install | bash
twg setup
# Snowflake
brew install snowflake-cli
# Azure
brew install azure-cli- Setup shell config
Fish (no sourcing needed — stow symlinks ~/.config/fish/ directly). Install fisher and plugins:
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisherFor secrets/API keys, create a file outside stow:
echo "set -gx OPENAI_API_KEY XXXXX" > $HOME/.config/fish/conf.d/00-secrets.fish- Symlink dotfiles
Mac:
mkdir ~/.config && \
stow -vRt $HOME unix-configs && \
stow -vRt $HOME mac-configs && \
mkdir -p "$HOME/.pi/agent" && \
ln -sfn "$PWD/pi-extensions" "$HOME/.pi/agent/pi-extensions"Linux:
mkdir ~/.config && \
stow -vRt $HOME unix-configs && \
mkdir -p "$HOME/.pi/agent" && \
ln -sfn "$PWD/pi-extensions" "$HOME/.pi/agent/pi-extensions"(Optional)
stow -vRt $HOME sway-configs-
Install bun
Follow installation instructions for bun
curl -fsSL https://bun.com/install | bash bun installThe root Bun workspace installs both the repository tooling and the runtime dependencies for
pi-extensions. No separate install insidepi-extensions/is needed. -
Setup git config
git config --global user.name "Paul DiLoreto" ;\ git config --global user.email "soodohh@pm.me" git config --global core.excludesfile "$HOME/.config/.gitignore_global"
-
Set default shell to Fish
command -v fish | sudo tee -a /etc/shells chsh -s $(command -v fish)
-
Install NERD fonts
Ghostty config uses FiraCode Nerd Font Mono
Mac:
brew install --cask font-fira-code-nerd-fontArch:
sudo pacman -S ttf-firacode-nerdUbuntu/Debian:
mkdir -p ~/.local/share/fonts && \
wget -P "$HOME/.local/share/fonts" https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/FiraCode/Regular/FiraCodeNerdFontMono-Regular.ttf-
Run
nvimand run:Lazy, pressUto update all packages -
In nvim, run
:Masonand update/install all tools