What it does
Managing dozens of repos by hand is tedious and error-prone: every repo has its own Settings tab with dozens of options. ghss reads the configuration from a repo you designate as the source of truth and lets you replicate it across a list of target repos, showing you exactly what will change in each one before anything is applied.
Four-step flow
- Connect to GitHub (gh CLI, personal access token, or device flow).
- Pick repos: mark one as the reference ★ and select the targets (filter by organization, team, or search).
- Audit: ghss compares each target against the reference and streams the differences to you.
- Sync: uncheck anything you don't want to propagate and apply. A failure on one repo doesn't stop the rest.
What settings it syncs
Default branch
The repository's default branch (applied only if it already exists in the target).
Features
Wikis, Issues, Projects, Discussions, and Allow forking.
Pull Requests
Merge/squash/rebase strategies, commit messages, auto-merge, suggest branch updates, and automatic branch deletion.
Others
Require sign-off on web-based commits.
Tags
Rulesets targeting tag (modern tag protection).
Rules
Branch rulesets and classic branch protection rules.
Built for large lists
- Granular selection: uncheck individual settings per repo before syncing; everything is selected by default, with a global Select / Deselect all toggle.
- Streaming audit: results appear as they are processed, with a progress bar.
- Persistent filters: search, organization, and team filters stay in place as you navigate.
- Error-resilient: a private repo on a free plan, an archived repo, or one you lack permissions for won't break the batch — it's marked as failed with a clear message and the rest continue.
- Archived repos are hidden by default and cannot be selected as targets (they can still be used as a reference).
Installation
Homebrew
brew install theburrowhub/tap/ghss
ghss
To upgrade: brew upgrade ghss
Direct download (.dmg)
For the packaged app, download the .dmg from the
latest release
(Apple Silicon & Intel), open it, and drag ghss to Applications.
Download (.deb / .AppImage)
Grab the .deb (Debian/Ubuntu) or the portable .AppImage from the
latest release.
# Debian / Ubuntu
sudo dpkg -i ghss_*_amd64.deb
# AppImage (any distro)
chmod +x ghss_*.AppImage
./ghss_*.AppImage
Requires a WebKitGTK runtime (webkit2gtk-4.1), present on most modern desktops.
From source (any OS)
git clone https://github.com/theburrowhub/ghss
cd ghss
npm install
npm run tauri build
Authentication
Choose your preferred method when you open the app:
- GitHub CLI (default): reuses your existing
gh auth loginsession. - Personal access token (PAT): paste it in and it will be saved in the system keychain. Requires the
reposcope to sync private repos. - OAuth Device Flow: enter a code on github.com (requires the Client ID of your own OAuth App).
Known limitations
Some toggles in the GitHub UI have no public API and cannot be synced: Sponsorships, restricting wiki edits to collaborators, comments on individual commits, auto-closing issues with linked PRs, push update limits, including Git LFS objects in archives, and "PR creation allowed by".
Privacy
ghss is a local app: your token never leaves your machine (it is stored in the system keychain) and all calls go directly to the GitHub API. There are no intermediate servers and no telemetry.