Scaffold a dotfiles repo + idempotent install script. Pick the configs to track (.bashrc, .vimrc, .gitconfig, .tmux.conf, ssh config, …), choose a manager (GNU Stow / bare-git / chezmoi / Dotbot) with a full comparison table, and get a repo tree, README, idempotent install.sh that backs up existing files, and a secret-safe .gitignore with a 'never commit these' checklist. 100% client-side.
100% Private Works Offline Instant
Scaffold a dotfiles repo + idempotent install script. Pick the configs to track (.bashrc, .vimrc, .gitconfig, .tmux.conf, ssh config, …), choose a manager (GNU Stow / bare-git / chezmoi / Dotbot) with a full comparison table, and get a repo tree, README, idempotent install.sh that backs up existing files, and a secret-safe .gitignore with a 'never commit these' checklist. 100% client-side. Everything runs locally in your browser — your data never leaves your device.
How to use
Enter your input in the tool above.
Adjust any options to your preference.
Use the Copy or Download buttons to save the result.
Everything happens locally — your data never leaves your browser.
# dotfiles
> Dotfiles managed with **GNU Stow** (Symlink farm — each package dir maps to $HOME).
## Why GNU Stow?
**Pros**
- Tiny, ubiquitous, in most package managers
- Trivial mental model: dir per package
- Per-package roll-back (just `stow -D pkg`)
**Cons**
- No templating — config is literal
- Symlink conflicts require manual resolve
- No secrets support
Difficulty: beginner-friendly.
## Tracked dotfiles
- `.bashrc` — Bash config
- `.zshrc` — Zsh config
- `.vimrc` — Vim config
- `.gitconfig` — Git config
- `.tmux.conf` — tmux config
## Install on a new machine
```bash
git clone https://github.com/you/dotfiles.git
cd dotfiles
./install.sh
```
The install script is **idempotent** — running it twice produces the same
state. Existing files are backed up to `*.bak.<timestamp>`.
## Repo layout
```
dotfiles/
├── bashrc/
│ └── bashrc
├── zshrc/
│ └── zshrc
├── vimrc/
│ └── vimrc
├── gitconfig/
│ └── gitconfig
├── tmux.conf/
│ └── tmux.conf
├── install.sh
├── .gitignore
└── README.md
```
## Never commit these
See `.gitignore` — secrets are excluded by default. If you genuinely need
to track sensitive files, use [git-crypt](https://github.com/AGWA/git-crypt)
or [age](https://github.com/FiloSottile/age) (chezmoi supports age natively).
## License
MIT — see [LICENSE](./LICENSE).
Never commit these
SSH private keys (~/.ssh/id_*)
Allows anyone to impersonate you on every server the key grants access to
Cloud account takeover — can cost thousands in crypto mining
critical
.netrc (HTTP basic-auth credentials)
Plaintext credentials for FTP/HTTP services
critical
.env files
App secrets, DB passwords, API tokens
critical
GnuPG dir (~/.gnupg)
Private keys + keyring
critical
Shell history (.bash_history, .zsh_history)
May contain tokens typed in commands, file paths revealing structure
warn
Git credentials (~/.config/gh/hosts.yml)
GitHub OAuth tokens
critical
password-store (~/.local/share/password-store)
Encrypted password vault — still don't expose
critical
.docker/config.json
Registry auth tokens
critical
Privacy: All scaffolding runs locally. The generated .gitignore is designed to keep your secrets out of git. History is stored in localStorage on this device only.