bro is a version control system for people who think git is boring. No offense to Linus Torvalds.
bro gives you all the power of git, but with commands that actually make sense. Instead of git commit, you yeet. Instead of git push, you launch. Instead of git pull, you absorb. You get the vibe.
# Using CMake (recommended)
mkdir build && cd build
cmake ..
make
# Or just use the existing Makefile
make# System-wide installation
sudo cmake --install . --prefix /usr
# Or using make install
cd build
sudo make installThis will produce the bro executable.
# Initialize a new repo
bro init
# Make some changes to your files...
# Then stage them
bro slap <file>
# Commit your changes
bro yeet -m "your message"
# See what's going on
bro vibe-check
# Push to remote
bro launch
# Get latest from remote
bro absorbHere's the full command reference. Every bro command maps to a git command:
| bro Command | Git Equivalent | Description |
|---|---|---|
bro init |
git init |
Start a new repo vibe |
bro slap |
git add |
Stage your changes |
bro yeet |
git commit |
Save your changes forever |
bro vibe-check |
git status |
See what's going on |
bro yap |
git log |
Read the history |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro squad |
git branch |
List your branches |
bro new-squad <name> |
git branch <name> |
Create a new branch |
bro teleport |
git checkout / git switch |
Jump to a different branch/commit |
bro launch |
git push |
Send code to the cloud |
bro absorb |
git pull |
Get the latest updates |
bro yoink |
git fetch |
Download info, don't merge yet |
bro steal |
git clone |
Copy someone else's work |
bro force-launch |
git push --force |
Force the cloud to listen |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro fuse |
git merge |
Combine two branches |
bro rewind |
git rebase |
Re-write history nicely |
bro yoink-cherry |
git cherry-pick |
Steal one specific commit |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro undo-vibes |
git reset |
Back up a bit |
bro soft-undo |
git reset --soft |
Undo commit, keep changes staged |
bro hard-undo |
git reset --hard |
Wipe everything to last commit |
bro oopsie |
git revert |
Undo a specific commit |
bro panic-revert |
git revert HEAD |
Emergency undo |
bro amend-yeet |
git commit --amend |
Fix the last commit |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro delete-bro |
git rm |
Delete a file |
bro yeet-file |
git mv |
Move/Rename a file |
bro untrack-bro |
git rm --cached |
Stop tracking but keep the file |
bro scrub |
git clean |
Wipe untracked files |
bro hide |
git stash |
Save for later, hide from view |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro roast |
git diff |
See what you actually changed |
bro diff-bro |
git diff --cached |
See what's ready to yeet |
bro peek |
git cat-file |
Look inside an object |
bro expose |
git show |
Inspect a specific object |
bro hash-slap |
git hash-object |
Generate a SHA-1 hash |
bro ls-bro |
git ls-files |
List all tracked files |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro drip |
git tag |
Mark a version |
bro nickname |
git describe |
Give a human name to a commit |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro detective |
git bisect |
Find where it all went wrong |
bro snitch |
git blame |
See who wrote that line |
bro search-bro |
git grep |
Find text in the code |
bro grep-it |
git grep |
Specialized search |
bro blame-grep |
git blame + grep |
Advanced investigation |
bro bro-doctor |
git fsck |
Check for corruption |
| bro Command | Git Equivalent | Description |
|---|---|---|
bro summary |
git shortlog |
Summarize the yap |
bro who-dis |
git shortlog -sn |
See who's contributing the most |
bro reflog-yap |
git reflog |
The real history (even deletes) |
bro time-machine |
git reflog + reset |
Go back to a specific state |
bro patch-mail |
git format-patch |
Prepare patches for email |
bro apply-mail |
git am |
Apply patches from email |
bro sticky-note |
git notes |
Add notes to commits |
bro sidekick |
git submodule |
Repo inside a repo |
bro multiverse |
git worktree |
Multiple branches at once |
bro only-fans |
git sparse-checkout |
Only download what you need |
bro zip-pack |
git bundle |
Repo in a single file |
bro range-roast |
git range-diff |
Compare two versions of a patch |
bro archive-vibes |
git archive |
Export the repo to a zip |
bro clean-house |
git gc |
Garbage collection / optimize |
bro ignore-bro |
.gitignore |
Management of ignored files |
bro config-vibe |
git config |
Change your settings |
bro tuiLaunch an interactive terminal UI (similar to tig or lazygit) for a visual git experience with:
- Branch graph visualization
- Multiple views: Commits, Branches, Stashes, Remotes, Stats
- Sidebar with quick actions
- Detail panel for selected items
- Keyboard navigation (j/k for up/down, 1-5 for views)
bro liveStart a background server mode for IDE integration (similar to a Git Language Server).
bro vim-ideLaunch a full-featured integrated development environment with:
- File Explorer: Browse and navigate project files
- Tab Management: Open multiple files in tabs
- Vim-style Navigation: h/j/k/l for cursor movement, i for insert mode
- Built-in Terminal: Run commands without leaving the editor
- Status Bar: Show cursor position, file status, mode
- Syntax Highlighting: Color-coded code display
Controls:
F1- Toggle terminalF2- Files viewF3- SearchTab- Switch tabsEnter- Open file:w- Save fileq- Quit
bro milanoteOpen a visual Kanban-style project board editor with:
- Multiple Boards: TODO, IN PROGRESS, DONE columns
- Card Management: Create, edit, delete, prioritize cards
- Task Tracking: Mark tasks complete, track progress
- Visual Layout: Cards displayed in columns with descriptions
- Progress Stats: See completion percentage at a glance
Controls:
j/kor↑/↓- Navigate cardsh/lor←/→- Switch boardsTab- Next board1/2/3- Jump to specific boardn- New carde- Edit/cycle priorityd- Delete cardSpace- Toggle done
bro thunderbirdAccess email functionality for patch management and collaboration with:
- Folder Navigation: Inbox, Sent, Drafts, Trash, Archive, Junk
- Email List: View emails with sender, subject, timestamp
- Email Preview: Read full email content
- Compose: Write and send new emails
- Actions: Reply, Forward, Flag, Star, Delete
- Unread Tracking: Show unread counts per folder
Controls:
j/kor↑/↓- Navigate emails←/→org/$- Switch foldersc- Compose new emailr- Replyd- Deletef- Flags- Staru- Toggle read/unreadq- Quit
Configure bro settings:
bro config-vibe user.name "Your Name"
bro config-vibe user.email "you@example.com"When you run bro init, it creates a .bro directory with:
.bro/
├── HEAD # Current branch reference
├── config # Repository configuration
├── info/ # Additional info
│ └── exclude # Patterns to ignore locally
├── objects/ # All your data (blobs, trees, commits)
└── refs/ # Pointers to commits
├── heads/ # Local branches
└── tags/ # Tags
Because versioning your code should be fun, not a chore.
"bro, did you commit that?"
"yeah bro, I yeeted it"
MIT. Go forth and yeet responsibly.