Back up your dotfiles and update your macOS development environment
ballin-scripts helps developers maintain repeatable, inspectable macOS
development environments. It snapshots shell and Git configuration, Homebrew
package lists, editor settings, and local tool state, then automates routine
updates.
ballin backupsnapshots local development-environment state to a configured secret GitHub Gist.ballin updateruns configured maintenance tasks such as Homebrew upgrades, Node.js/npm updates, macOS and App Store updates, self-updates, and backups.
The installer adds command shims, configures the backup Gist, and guides you through missing setup. For the smoothest first run, have Node.js LTS, Homebrew, and an authenticated GitHub CLI available.
Run the install script:
bash <(curl -fsSL https://raw.githubusercontent.com/JBallin/ballin-scripts/main/install.sh)ballin update output depends on installed tools and enabled integrations.
$ ballin update
==> Updating Homebrew packages
==> Cleaning up Homebrew packages
==> Checking Homebrew installation
Your system is ready to brew.
==> Updating App Store apps
==> Installing macOS updates
==> Backing up development environment
✔ zprofile
✔ zshrc
...
✔ vs_settings
✔ masOn a new Mac, install ballin-scripts and create or adopt the backup Gist. Use
existing snapshots as a rebuild reference.
ballin-scripts makes rebuilds more repeatable and auditable, but it is not a
full disk backup or one-command restore system.
| Command | Purpose |
|---|---|
ballin |
Shows available commands and common usage. |
ballin doctor |
Checks the managed environment. |
ballin backup |
Updates snapshots in the configured backup Gist. |
ballin backup open |
Opens the configured backup Gist. |
ballin backup read <file> |
Prints a backed-up file from the Gist. |
ballin update |
Runs configured update tasks. |
ballin config |
Reads and updates local Ballin settings. |
ballin self-update |
Updates the local checkout and refreshes installed commands and configuration. |
ballin uninstall |
Removes installed command shims and the local checkout. |
Backups are stored in a configured secret GitHub Gist. Secret Gists are unlisted, but anyone with the URL can view them. Treat the Gist URL and snapshots as sensitive.
ballin-scripts is not a secrets manager; review snapshots before sharing the
Gist URL or making the Gist public.
See the documentation for Node.js setup, update settings, optional integrations, and managed capabilities.
