@openstaticfish/bouncer
v0.1.0
Published
TUI for managing GitHub branch protection rules
Maintainers
Readme
Bouncer
A terminal UI for managing GitHub branch protection rules across multiple repositories.

Features
- Interactive TUI - Navigate organizations, repos, and branches with keyboard
- Visual Editor - Toggle protection settings with live preview
- Templates - Save and reuse protection configurations
- Bulk Apply - Apply the same rules to multiple repos/branches at once
- CI Integration - Auto-discovers CI job names for required status checks
- Local Detection -
--localmode detects current git repo automatically
Requirements
- Bun >= 1.0
- GitHub CLI (
gh) authenticated with repo access
Installation
# Install globally with bun
bun install -g @openstaticfish/bouncer
# Or run directly
bunx @openstaticfish/bouncerQuick Start
# Launch the TUI
bouncer
# Skip org selection, use current repo
bouncer --localKeyboard Shortcuts
| Key | Action |
|-----|--------|
| ↑/↓ | Navigate |
| Enter | Select / Toggle |
| Space | Toggle selection (multi-select) |
| Tab | Next field |
| Ctrl+A | Apply protection |
| Esc | Back / Cancel |
| t | Templates screen |
| s | Save as template |
Workflow
- Select Organization - Choose from your GitHub orgs or personal account
- Select Repositories - Pick one or more repos to protect
- Select Branch - Choose the branch to protect (e.g.,
main,master) - Edit Protection - Configure settings in the visual editor
- Preview & Apply - Review changes and apply
Configuration
Templates and logs are stored in:
~/.config/bouncer/
├── templates/ # Saved protection templates
│ ├── basic.json
│ ├── strict.json
│ └── ...
└── apply.log # History of applied protectionsDefault Templates
| Template | Description |
|----------|-------------|
| basic | Requires 1 PR approval, conversation resolution |
| strict | 2 approvals, code owners, admin enforcement |
| unprotected | No PR required, allows force pushes |
Screenshots
Organization Selector

Branch Protection Editor

Template Manager

Development
# Clone the repo
git clone https://github.com/OpenStaticFish/bouncer.git
cd bouncer
# Install dependencies
bun install
# Run locally
bun run cli.ts --local
# Run tests
bun test
# Type check
bun run typecheck
# Lint
bunx biome check .API Reference
The GitHub API interactions are handled via the gh CLI. Ensure you're authenticated:
gh auth login
gh auth statusContributing
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT © OpenStaticFish
