Shell env
A opinionated collection of agent skills organized by domain: dev, writing, productivity, and knowledge management
npx -y skills add kriscard/Skills --skill shell-envAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Stow-first shell environment editing for zsh, aliases, tmux/sesh, Starship, Ghostty, yabai, Git, and dotfiles packages. Use when the user wants to add or change terminal config, aliases, shell startup, or Stow-managed symlinks. Route Neovim-specific work to neovim and whole-system health checks to audit.
SKILL.md
4.6 KB, as published. Nobody here has run it
Shell & Terminal Environment
All config is managed with GNU Stow from ~/.dotfiles. Never edit files directly in ~ — always edit the source in ~/.dotfiles and let Stow manage the symlinks.
Config Locations
| Tool | Source path | Symlinked to |
|---|---|---|
| Zsh | ~/.dotfiles/zsh/.zshrc | ~/.zshrc |
| Zsh modules | ~/.dotfiles/zsh/zsh.d/ | ~/.zsh.d/ |
| Ghostty | ~/.dotfiles/.config/ghostty/config | ~/.config/ghostty/config |
| Tmux | ~/.dotfiles/.config/tmux/tmux.conf | ~/.config/tmux/tmux.conf |
| Starship | ~/.dotfiles/.config/starship.toml | ~/.config/starship.toml |
| yabai | ~/.dotfiles/.config/yabai/yabairc | ~/.config/yabai/yabairc |
Stow-first edit loop
- Locate the source file under
~/.dotfiles. - Inspect the current config before changing it; do not rely on remembered theme/font values.
- Edit only the source file, never the symlink target in
~. - Run the safest verification for the tool:
- zsh:
zsh -n <file>or open a new interactive shell - tmux:
tmux source ~/.config/tmux/tmux.conf - Starship:
starship explainorstarship timings - Ghostty: inspect/reload config, then restart or use the app reload command when available
- yabai:
yabai --restart-service - Stow:
cd ~/.dotfiles && stow -n <package>before relinking or restructuring
- zsh:
- Report the source path changed, reload command, and verification result.
Done when the config change is live or the remaining manual reload step is explicit.
GNU Stow Workflow
cd ~/.dotfiles
# Symlink a package (creates symlinks in home dir)
stow zsh
# Remove symlinks for a package (does NOT delete source files)
stow -D zsh
# Re-stow (unlink + relink, useful after restructuring)
stow -R zsh
# Dry run — see what would change without doing it
stow -n zsh
When adding a new tool:
- Create a package directory:
mkdir ~/.dotfiles/<toolname>. - Mirror the target directory structure inside it (e.g.,
.config/ghostty/for~/.config/ghostty/). - Add the config file.
- Run
stow -n <toolname>from~/.dotfiles, thenstow <toolname>if the dry run is clean.
Zsh: Modular Config
~/.dotfiles/zsh/zsh.d/ holds modular files, sourced automatically by .zshrc. Add new functionality as separate files rather than growing .zshrc:
zsh.d/
├── aliases.zsh # all aliases
├── exports.zsh # PATH and environment variables
├── functions.zsh # shell functions
├── completions.zsh # completion config
└── tools.zsh # tool-specific init (zoxide, starship, etc.)
Ghostty
Config at ~/.dotfiles/.config/ghostty/config. Inspect the file for current theme and font before changing them.
Changes take effect on Ghostty restart (or Cmd+Shift+, to reload config on macOS).
Tmux + sesh
Tmux config at ~/.dotfiles/.config/tmux/tmux.conf. Session management via sesh — creates and attaches to named tmux sessions.
sesh connect <project> # create or attach to a session
sesh list # list active sessions
When editing tmux config, reload without restart: tmux source ~/.config/tmux/tmux.conf or prefix + r if you have that binding.
Starship Prompt
Config at ~/.dotfiles/.config/starship.toml. Docs: starship.rs/config.
starship explain # shows what each segment in current prompt means
starship timings # shows how long each module took to render
yabai
Window manager config typically at ~/.dotfiles/.config/yabai/yabairc. Reload after changes:
yabai --restart-service
References
| Priority | Load when | Reference |
|---|---|---|
| High | Modern CLI tools or shell aliases: eza, bat, fd, rg, zoxide, fzf, lazygit | references/modern-cli-tools.md |
| High | Terminal emulator, tmux/sesh, Starship, yabai, or theme consistency config | references/terminal-config.md |
| Medium | Git identity setup, multi-config, signing, or git aliases | references/git-config.md |
Quick Reference
# Verify a symlink is correctly set up
ls -la ~/.zshrc # should point to ~/.dotfiles/zsh/.zshrc
# Check all stow packages currently linked
ls ~/.dotfiles/ # each dir is a stow package
# Find broken symlinks in home dir
find ~ -maxdepth 3 -type l ! -e 2>/dev/null