Paste a repo, a ticket, or a sentence.
It reproduces the bug, makes the smallest fix, proves it, and tells you how to defend it.
Bhai, bas bol de.
Chat and terminal are illustrations built from a real merged fix, RealtimeSTT #332, with that repo's measured numbers.
Install · What it does · The fix · Safety · FAQ
claude plugin marketplace add ANDROIDHASSAN/bhai
claude plugin install bhai@bhaiThen, in any repo: /bhai <a link or a sentence>.
Sibling skills, same install:
| Skill | Hardened? | For |
|---|---|---|
/tagda-fix <...> |
✅ mandatory, not optional | any route — a repo, a ticket, a task |
/tagda-build <idea> |
✅ same hardening | building a real thing from scratch |
/tagda-commit <repo> |
✅ same hardening | open-source contribution only — asks which repo, or what kind, if you don't name one |
/tagda-explain <...> |
— | verified explanation, no code change |
/tagda-research <...> |
— | goes beyond this codebase — papers, docs, real articles, more than one source, every finding sourced |
/bhai-status |
— | health check on your open PRs, no repo name needed |
/bhai-audit <repo> |
— | finds candidates, fixes nothing |
/bhai-help |
— | this list, from inside Claude Code |
| You type | bhai does |
|---|---|
/bhai add retry with backoff to the uploader |
builds it from scratch, the same careful way: understands the codebase first, smallest working change, proves it |
/bhai ABC-123 · a Jira/Linear/GitHub issue link |
reads the whole ticket (comments, screenshots, logs if connected), finds the root cause and its siblings, fixes and proves it |
/bhai https://github.com/owner/repo |
learns how that repo merges, finds a real bug, reproduces it with a failing test, fixes it, drafts a PR in the repo's own style |
/bhai why is this slow? · any plain question |
no code changes — just the answer in 5–10 lines, in words you'd use with a friend, marked clearly if it's a guess |
/bhai status · /bhai watch owner/repo |
looks after your open PRs: red CI, conflicts, bot reviews, merges, then the next bug |
| Most AI fixes | bhai |
|---|---|
| patch the line the error points at | fixes the root cause where every caller routes through, and the sibling bugs with the same cause |
| add a new helper | reuses what the codebase already has; one line if one line works |
| "tests pass" | the test fails on the old code first, then a mutation check breaks the fix to make sure the test notices |
| big diff | a shrink pass deletes every line the tests and acceptance list don't need |
| guesses | reads the real log line and database record when you have them connected (read-only) |
| "should work" | 29 self-grill questions before and after the fix, answered from command output |
| It always | It never, without your yes |
|---|---|
| reproduces before it fixes | pushes, opens a PR, comments, merges or deploys |
| runs the repo's own lint, type and test commands, and its CI workflows locally | force-pushes, adds a dependency, or edits lockfiles and versions |
| merges the default branch right before opening a PR, so there are no conflicts | claims a number it didn't measure |
| follows each repo's AI-contribution policy, and stops where it forbids AI PRs | opens another PR in a repo before the open ones there have had time to be reviewed |
| keeps the diff to the fix and its test | puts itself in your commits or PRs |
--auto is a one-run yes for a single PR whose gates all passed. Human reviewers, CLAs and design questions still come to you.
| Branch | fix/client-empty-language — draft ready, PR nahi khola |
| Bug kya tha | client language="" bhejta hi nahi tha, server "en" pe atak jaata tha |
| Fix kya kiya | client ab --language "" pass karta hai; server ka default chhua nahi |
| Proof | naya test master pe fail hua, fix ke baad pass; repo ke tests green |
| Reviewer pooche to | "server default badalna breaking change hota, isliye client side fix kiya" |
| Tumhe karna hai | "haan" bolo to PR khol dun |
Hinglish by default, technical words in English. Write to it in another language and it answers in that one.
The workflow inside /bhai is the one behind 15 merged pull requests in LiveKit, RealtimeSTT,
RealtimeTTS, Piper and Mastra in October 2026, plus a production ticket flow for a voice-AI platform. Each rule exists because of
a real failure; the research behind them is in research.md.
One Markdown file per run in ~/.bhai/runs/: decisions, every command and its output, the diff, each gate.
It lives outside your repo, so it can never land in a commit.
Will my PR get merged? No tool can promise that; maintainers decide. bhai removes everything on your side that blocks a merge: conflicts, red CI, style mismatches, missing template sections, duplicates.
Is this an AI-PR spam machine? The opposite. It refuses repos that ban AI PRs, never piles a second PR onto a repo faster than that repo can actually review, never pings maintainers, and won't open a PR you can't explain. Read the gates.
What does it need from me? A link or a sentence, gh logged in, and a "haan" before anything leaves your machine.
Full list.
Does it work with Codex, Cursor or Gemini CLI? The skill uses the open Agent Skills format. It is tested on Claude Code; other agents are not verified yet.
What doesn't it do? Model-quality bugs (LLM/STT/TTS behaviour), product decisions, and anything it can't reproduce: it stops and tells you why.
MIT © Hassan Kazi