.skel

✨ dotfiles (brew-first bootstrap)

Version Release CI UNLICENSE
Shell Zsh Framework Oh My Zsh Prompt Starship Python Pyenv
Editor Nano Lint ShellCheck Package Manager Homebrew Platform Linux/WSL

Clean, straightforward dotfiles setup for Linux/WSL:

Supported OS: Ubuntu, Ubuntu (WSL), and macOS. Focus: A Homebrew-first, zsh-focused dotfiles toolkit.

🚀 Quick start (local)

chmod +x install.sh
# preview changes first
./install.sh --dry-run --verbose
# run install
./install.sh -y

By default, existing files like ~/.zshrc are kept as-is. Use --override only when you intentionally want to replace files. When --override modifies an existing config, a .bak.<date> backup is created.

🌐 Quick start (Pages bootstrap)

curl -fsSL https://dot.rly.wtf/bootstrap.sh | bash -s -- --tag v1.0.0

🗂️ Project layout

.
├── bootstrap.sh
├── install.sh
├── inventory/
│   └── default.yaml
├── packages/
│   └── packages.yaml
├── scripts/
│   ├── lib/brew-env.sh
│   ├── setup-pyenv.sh
│   ├── setup-starship.sh
│   └── post-install-checks.sh
├── test/
│   ├── check-no-root-config-duplicates.sh
│   ├── lib/test-shims.sh
│   ├── test-backup-collision.sh
│   ├── test-install-lock.sh
│   ├── test-installer-idempotency.sh
│   ├── test-oh-my-tmux.sh
│   ├── test-report-json.sh
│   ├── test-skel-merge-behavior.sh
│   ├── test-ssh-config-migration.sh
│   ├── test-inference-opt-in.sh
│   ├── test-nanorc-optional-failure.sh
│   ├── verify-release-reproducible.sh
│   └── installer.bats
└── skel/
    └── default/
        ├── .zshrc
        ├── .tmux.conf.local
        ├── .gitconfig
        ├── .ssh/config
        └── .config/starship.toml

📣 Output style

⚙️ Installer flags

🔐 Security env knobs

📦 Build a release artifact manually

TAG=v1.0.0
REPO_NAME="$(basename "$PWD")"
mkdir -p dist
tar --sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner \
  --exclude='.git' --exclude='./dist' -cf - . | gzip -n > "dist/${REPO_NAME}-${TAG}.tar.gz"
(cd dist && sha256sum "${REPO_NAME}-${TAG}.tar.gz" > "${REPO_NAME}-${TAG}.tar.gz.sha256")

Verify deterministic archive output:

./test/verify-release-reproducible.sh "$TAG"

On macOS, install GNU tar first for deterministic-archive verification: brew install gnu-tar

🧰 Package inventory workflow

packages/packages.yaml is the single source of truth for package lists (brew and apt_minimal sections). The default brew set includes core tools like tmux, ripgrep, fzf, and fd.

🤖 Agentic/Copilot standards

Repository AI guidance lives in .github/copilot-instructions.md and includes:

🧠 Migration notes

✅ CI tests

GitHub Actions runs a CI workflow that checks:

📝 Changelog

Release notes live in CHANGELOG.md.

📜 License

Released under UNLICENSE. See UNLICENSE.