#ZProfile
how I actually use LLMs. the age of the yapper is upon us
April 10, 2026 at 10:08 PM
ok, wtf brew have you dont to my .zprofile file 😅
November 29, 2024 at 5:32 AM
Me: why the heck do my shells take so long to open

My .zprofile:
January 11, 2025 at 4:20 AM
The `programs.zsh` module now sources Home Manager session variables from `.zprofile` for login shells. Non-login shells continue to source them from `.zshenv`. As a result, Home Manager now always writes `.zprofile` when `programs.zsh.enable` is set, instead of only [1/2]
#NixOS #Nix #HomeManager
June 2, 2026 at 5:00 AM
ok, I lasted like a week before manually add ll="ls -lah --color" to my .zprofile.

Yes, I know, dotfiles.

Anyone have a dotfiles approach that I'll actually use? MacOS primary, don't really care about syncing it elsewhere, I use homebrew.

I'd be open to some new shell thingie.
October 25, 2025 at 9:05 PM
meanwhile i have just tailored my ~/.zprofile to load a reasonable venv for whatever source directory I hove into via cd. it actually is way less cursed than i'm making it sound?
November 20, 2024 at 7:44 AM
writing it when `programs.zsh.profileExtra` is configured. This keeps `home.sessionPath` entries from being overwritten or reordered by system login startup files such as NixOS' `/etc/zprofile` or macOS' `path_helper`. [2/2]
June 2, 2026 at 5:00 AM
For the love of the (macOS) game. My new blog post covers a macOS DFIR blind spot:

zsh startup files such as .zshrc, .zprofile, and .zshenv can have compiled .zwc counterparts.

The full blog post here: dfir.ch/posts/compil...
September 24, 2026 at 5:31 AM
FUCKING APPLE!

IF YOU SET THE PATH IN /etc/zshenv THEN DON'T FUCKING DO IT AGAIN in /etc/zprofile AND OVERWRITE ANYTHING IN ~/.zshenv YOU ABSOLUTE FUCKING MELTS.

They had fucking unfucked this once, but no, they've decided to refuck it all over afucking-gain. Fuckers.
August 21, 2025 at 10:22 AM
How did I *properly* install Cocoapods on a M4 Macbook?

1. Install Homebrew
2. Install rbenv with Homebrew, and init it
3. Install Ruby with rbenv, and init rbenv in .zprofile
4. Install Cocoapods with gem
5. Now I can simply run "pod install" etc

#iosdev #buildinpublic #todayilearned
December 28, 2024 at 7:05 AM
After a lot of tinkering of my .zshrc, .zprofile, iterm's default start shell, adding zinit, and cleaning my zprofile… Now creating a tab (iterm) or window/pane (tmux) is instant (less than 50 milliseconds).

Aside from slow compinit (a classic), I had eval "$(pyenv init --path)" in several places
August 23, 2025 at 3:24 PM
and the reason I didn't catch it is because I didn't even know what `.zprofile` was or to look for it at all :-)
April 20, 2025 at 10:59 PM
Because at some point in my journey of copypasta in setting up zsh, I had accidentally included a line like `echo XXX > .zprofile` and it meant that every time I created a new shell, it _added a new line_ to .zprofile and when I finally checked it I saw like 4000 copies of that line 😅
April 20, 2025 at 10:58 PM
~/.zshrc から ~/.zprofile に移した環境変数の設定のうち、 PROMPT だけが Terminal​.app を再起動したときに反映されない。
PATH とか LSCOLORS といった他の環境変数は反映されてるんだけど。
April 6, 2024 at 11:55 PM
My 400 line .zprofile
September 24, 2025 at 8:40 PM
source ~/.zprofile すると、 PROMPT も反映されるので、 PROMPT の設定内容は問題ない…と思う。多分。
April 6, 2024 at 11:56 PM
it only took like 1.5 hours of talking through the most very basic aspects of CLI, homebrew, what a shell env is, what ssh is, what .zsh/.zprofile, what cat/echo/grep/bat/find/fd/etc are, etc to get to finally adding ssh key, terminal loading that correctly, and pushing some files to gh lol
i have been walking through setting up and using git on a macbook with the homie (he does accounting) and i am reminded of how much of a fucking nightmare all of computing is. i have wasted so much of my life on this to have it memorized. I Yearn For The Long Nap.
December 16, 2023 at 9:59 PM
Today I found this life hack

In my .zprofile:
alias hey="osascript -e 'display notification \"hey\"'"

cargo build && hey
September 18, 2024 at 12:15 PM
I use github.com/git/git/blob...

And in my .profile or .zprofile (zsh also needs an additional setopt PROMPT_SUBST):

source ~/.git-prompt.sh
PS1='\w$(__git_ps1 " [%s]") \$ '
March 19, 2024 at 3:23 PM
I replaced my home-grown list/load/save scripts with simple aliases to the github.com/charmbracele... key/value store command:

# ~/.zprofile
alias list='skate list --keys-only'
alias load='skate get'
alias save='skate set'

$ pbpaste | save 'happy gary'
$ load 'happy gary'
ᕕ(ᐛ)ᕗ

#Linux #MacOS
GitHub - charmbracelet/skate: A personal key value store 🛼
A personal key value store 🛼. Contribute to charmbracelet/skate development by creating an account on GitHub.
github.com
May 3, 2025 at 1:38 AM
:3 tl;dr

- .zshenv for things like XDG_CONFIG_DIR, ZSH_DIR, EDITOR since this gets sourced everywhere (usually)
- .zsh/.zprofile for PATH (zsh has a neat unique array thing to keep it tidt) and anything ur login shells need
- .zsh/.zshrc for interactive goodies (prompt, aliases, etc)
November 4, 2025 at 11:59 PM