stowed
v0.1.1
Published
A simple symlink manager for your dotfiles. Similar to GNU Stow, but simpler.
Readme
stowed
A simple symlink manager for your dotfiles. Similar to GNU Stow, but simpler.
I started this project because there was no easy way of installing GNU Stow with cross-platform package managers like Mise-en-Place.
Installation
bun install -g stowed@latestor run directly:
bunx stowed@latestUsage
stowed [options] <packages...>Run from your dotfiles directory. Each package is a subdirectory containing files/folders to symlink to your home directory.
Options
| Flag | Description |
|------|-------------|
| -t, --target <dir> | Target directory (defaults to home) |
| -d, --dryRun | Preview changes without applying |
| --silent | Suppress "nothing to do" messages |
| --unlink | Remove symlinks instead of creating |
| -h, --help | Show help |
Examples
# Stow multiple packages
stowed nvim ghostty zsh
# Preview what would happen
stowed -d nvim ghostty
# Stow to a custom directory
stowed -t /custom/dir nvim
# Remove symlinks
stowed --unlink nvim ghosttyDirectory Convention
stowed uses a simple convention to determine what to symlink. It traverses each package directory and:
- Files are symlinked directly
- Directories matching the package name are symlinked entirely
- Directories containing files are symlinked entirely
- Directories containing only subdirectories are traversed deeper
Example Structure
dotfiles/
├── nvim/
│ └── .config/
│ └── nvim/ # Symlinked: ~/.config/nvim -> dotfiles/nvim/.config/nvim
│ ├── init.lua
│ └── lua/
├── git/
│ └── .gitconfig # Symlinked: ~/.gitconfig -> dotfiles/git/.gitconfig
├── zsh/
│ └── .zshrc # Symlinked: ~/.zshrc -> dotfiles/zsh/.zshrc
└── ghostty/
└── .config/
└── ghostty/ # Symlinked: ~/.config/ghostty -> dotfiles/ghostty/.config/ghostty
└── configRunning stowed nvim git zsh ghostty from the dotfiles/ directory creates:
| Source | Target |
|--------|--------|
| nvim/.config/nvim | ~/.config/nvim |
| git/.gitconfig | ~/.gitconfig |
| zsh/.zshrc | ~/.zshrc |
| ghostty/.config/ghostty | ~/.config/ghostty |
Similar Tools
License
MIT
