Manage your development tools using a clean, reproducible,
symlink-based tools system powered by GNU Stow.
This repository provides a convention-driven layout where each directory
maps directly to its destination in your $HOME, allowing safe
installation, removal, and updates without polluting your filesystem.
This tools setup is built around a few core principles:
- Declarative filesystem layout: The directory structure inside
the repo mirrors its final placement in
$HOME. - Symlink-based installation: GNU Stow manages all tools by creating symlinks instead of copying files.
- Zero interference: Stow ensures no accidental overwrites and keeps your environment portable and maintainable.
When installed via Stow, this layout cleanly symlinks into $HOME,
e.g.:
~/.local/bin/tmux-switch-session -> ~/tools/.local/bin/tmux-switch-session
cd ~
git clone https://github.com/nicolasabelanet/tools.gitcd ~/tools
stow .localThis creates symlinks for every script in:
tools/.local/bin/
so they appear in:
~/.local/bin/
Ensure ~/.local/bin is on your $PATH:
echo $PATH | grep -q "$HOME/.local/bin" && echo "OK" || echo "MISSING"If missing, add this to your shell:
export PATH="$HOME/.local/bin:$PATH"Then reload:
source ~/.zshrcValidate that your scripts resolve correctly:
which tmux-switch-sessionTo add a new script:
-
Place it into:
tools/.local/bin/ -
Make it executable:
chmod +x .local/bin/my-script
-
Re-stow the package:
stow .local
Stow will update the symlinks automatically.