GRUG CRUSH BUG. GRUG BLOCK EVIL CVE. GRUG GUARD STRONG CODE. GRUG RUN PROJECT SMOOTH LIKE ROCK. GRUG KNOW SDLC. GRUG OPEN SOURCE. GRUG SELF-HOSTABLE. GRUG CRUSH BUG. GRUG BLOCK EVIL CVE. GRUG GUARD STRONG CODE. GRUG RUN PROJECT SMOOTH LIKE ROCK. GRUG KNOW SDLC.
v0.7.0

Grug code monkey.
Grug whole cave.

One grumpy caveman. Whole software lifecycle. Grug crush bug, block evil CVE, gate weak code, run project smooth like rock. Grug know SDLC. Grug live in GitHub, post Check Runs, never spam comments. You ship. Grug guard.

AGPL-3.0 Posts as GitHub Check Runs Many personas, one app $0 to self-host
GRUG.MOOD = ANGRY
Grug, the grumpy caveman, holding a wooden club
+ 4 personas active
CLUB.SWING() ←
checks/grug PR #358 · main ← graphify
×

Grug · 4 of 5 personas blocking

11/16 pass · 3 blocking
PersonaVerdict
smasher 2 null-deref paths in parser.goblock
guard CVE-2026-1144 in lodash@4.17.20block
elder complexity 18 in resolveTree()warn
chief missing acceptance criteriablock
warder changelog · semver hint minorpass
// what's in grug's cave
01
Grug crush bug

Static analysis, symbolic execution, and LLM diff review on every PR.

02
Grug block evil CVE

Vulnerable dependencies and known exploits get gated before merge.

03
Strong code only

Complexity, coverage, dead code, and review hygiene held to a line.

04
Grug run project

Stale PRs, sprint burndown, changelog drafts, semver hints. No yaml.

02 · what grug do

Grug do whole cave.
From idea to ship.

// One GitHub App. Many personas. Posts as Check Runs so branch-protection rules can require any of them. Toggle the ones your team needs.

F-01 / smasher

Grug crush bug before bug ship.

Static analysis + symbolic execution + LLM diff review. Finds null-derefs, race conditions, off-by-ones, and the sneaky logic bugs your linter misses.

null-derefparser.go:142 · req.body may be nilblock
racecache.go:88 · concurrent map writeblock
off-by-oneslice[i+1] when len-1warn
err-checkall returns handledpass
F-02 / guard

Grug block evil virus at gate.

SCA on every dependency, secret scanning, SAST on the diff, and a CVE database refreshed hourly. Evil shall not pass.

CVE-2026-1144lodash 4.17.20 · prototype pollution · CVSS 8.8block
secretAWS_SECRET_ACCESS_KEY in .env.exampleblock
SASTSQL string concat · users.go:201warn
deps317 packages · 0 unmaintainedpass
F-03 / elder

Strong code only. Grug not approve weak loop.

Line-by-line review for naming, complexity, test coverage and dead code. Posts inline suggestions you can accept with one click.

parser.go @@ -142,7 +142,12 @@
- for i := 0; i < len(items); i++ {
+ for i, item := range items {
grug Grug see C-style loop. Go have range. Use range.
× resolveTree() · cyclomatic 18 (max 10)
! coverage 67% on changed lines (target 80%)
0 dead exports · 0 unused vars
F-04 / chief + warder

Grug run project. Grug ward off bad release.

Hunt Plan on every PR (Chief ask before tribe leave cave). Stale-PR Pulse. Auto-changelog with semver hint. Sprint burndown that lives in your repo, not a Jira tab. Warder gates the deploy before virus infect tribe.

# on PR open
grug.chief ✓ acceptance · ✓ estimate · ✗ rollback plan
grug.sprint burndown · 12 / 18 pts · on track
grug.warder changelog drafted · semver: minor
grug.pulse 3 PRs stale > 4d · review blocked
# merge gated until rollback plan present
03 · the personas

Five Grugs. One cave.

// Each persona is its own Check Run. Require any of them in branch protection. Toggle per-repo. Bring your own model key if you self-host.

F-01 Smasher Grug, holding a stone club
F-01 · SMASHER

Smasher

Diff-scoped mutation testing today (mutate the changed lines, run your suite, surface surviving mutants). LLM diff review rides the Elder; broader static analysis is on the roadmap.

  • Languages: Go, TS, Py, Rust, Java, RubySOON
  • Posts inline suggestions you can acceptSOON
  • Blocks merge on critical findingsSOON
F-02 Guard Grug, wearing a stone helmet, arms crossed
F-02 · GUARD

Guard

SCA, secret scanning, SAST on the diff, hourly CVE feed. Quarantines evil dependencies before they reach main.

  • NIST + OSV + GHSA feeds mergedSOON
  • Inline secret revoke + rotate hintPREVIEW
  • License compliance gate (GPL/AGPL/MIT/...)SOON
F-03 Elder Grug, grizzled with white hair
F-03 · ELDER

Elder

Style, naming, complexity, test coverage, dead code. "Strong code only" is the motto. Grumpy but fair.

  • Cyclomatic + cognitive complexity capsSOON
  • Per-file test coverage thresholdsSOON
  • Style profiles or BYO rulesetSOON
F-04 Chief Grug, wearing a skull-and-feather crown
F-04 · CHIEF

Chief

Hunt Plan first. Before the tribe leave the cave, Chief ask: hunt have a name? meat counted? path home known? Project management without leaving the repo.

  • 5 Hunt Plan checks (strict / lenient modes)LIVE
  • Burndown chart on every release branchSOON
  • Nudges stale PRs (author pings live; reviewer pings soon)SOON
F-05 Warder Grug, shaman with a glowing staff
F-05 · WARDER

Warder

Stand at cave mouth. Drafts the changelog from merged PRs, picks semver, gates the deploy on staging health, posts release notes to Slack. Bad release not get past warder. Virus not infect tribe.

  • Conventional Commits or freeformLIVE
  • Semver hint: major / minor / patchLIVE
  • Deploy gate on Datadog SLO breachSOON
BYOG Hooded Grug - bring your own persona
CUSTOM

Bring your own Grug.

Define a persona in YAML or TS. Hook into the same Check Run pipeline. Grug ecosystem, your rules.

  • grug.config.ts in repo rootSOON
  • Reuse Grug's diff parser + GitHub plumbingSOON
  • Publish it for others if you wantSOON
04 · skills

Teach Grug a new trick.
Or a new tie.

// Drop-in skills extend Grug. Some are capabilities (Terraform plan review, GraphQL breaking-change). Some are cosmetic skins. All of them are free.

// Two kinds of skills. Capabilities are extra checks Grug runs on your PRs — turn them on and Grug starts reviewing that thing too. Skins just change how Grug looks and talks.

CAPABILITY

Terraform Reviewer

Grug reads your Terraform changes before you apply them. Yells if you're about to delete a database, change permissions, or break something already running.

free
CAPABILITY

API Breaking-Change Guard

Watches your GraphQL or OpenAPI schema. If a PR removes a field or renames a type that callers still use, Grug blocks the merge until someone owns the migration.

free
CAPABILITY

Accessibility Checker

Renders any UI components your PR touched and checks contrast, labels, and screen-reader behaviour. Won't let you ship a button no one can read.

free
CAPABILITY

Database Migration Sitter

Reads your Postgres or MySQL migrations and warns about ones that lock big tables, can't be re-run, or have no rollback. Catches the migrations that take prod down at 2am.

free
Classic Grug
SKIN INCLUDED

Classic Grug

Caveman. Wooden club. Orange polka-dot vest. The Grug your repo deserves.

FREE
Professional Grug, suit and tie
SKIN

Professional Grug

Suit and tie. Replaces caveman speak with passive-aggressive memos. For repos that take themselves seriously.

free
Mullet Grug, business in front, party in back
SKIN PACK

Mullet, Mohawk, Bald

Three haircuts and a leather jacket. Includes a "club smash" reaction GIF.

free
Custom Grug
CUSTOM

Custom Reactions

Bring your own emoji set and override Grug's failure copy. For in-jokes and angrier teams.

free
05 · the dashboard

Sign in. Toggle. Done.

// After GitHub OAuth you land here. Three columns: repos, personas, configuration. No yaml. No setup wizard.

grug.lol/dashboard
signed in as @you
Installed repos 7
YO
api-gatewayyour-org/ · 142 PRs
GH
grugquadseven/ · 38 PRs
YO
edge-routeryour-org/ · main
YO
platform-apiyour-org/ · paused
YO
retro-archiveyour-org/ · main
+ Add repository
Active personas api-gateway
📁 your-org/api-gateway main
T
Chief - Hunt Plan
Blocks merge until Hunt Plan ready. 5 plan checks · strict mode
312 runs / mo98% pass-rate1 blocking now
R
Elder
Comment-style review for naming, tests, complexity
Cave reviewBYO model key
M
Warder
Ward off bad release · changelog, semver, deploy gate
coming soon
P
Stuck-PR Pulse
Nudges stale PRs · highlights blocked reviewers
coming soon
Grug configuration
Active skin
Daily PR-check budget
19/ 50 used today
38%
Failure tone
CAVEMAN PROFESSIONAL DEADPAN CUSTOM…
Customize Grug →
06 · free

Take Grug home.

// Grug is free and open source, AGPL-3.0. The way you get Grug is to run your own — the cave on this website is one tribe's private cave, not a public service.

Run your own Grug
$0+ your own infra
  • Every persona, every repo, all features
  • Bring your own models — local or hosted
  • Code never leaves your network
  • Check Runs your branch rules can require
Get the source →
This cave
private
  • Runs on hardware one tribe pays for
  • Invite-only — installs outside the tribe do nothing
  • Not a signup, not a waitlist, not a product
  • Same code as yours — no secret Grug
How to run it →
07 · grug speak

What Grug say.

// Lifted verbatim from real check-run output. Unedited.

"You import lodash 4.17.20. Lodash 4.17.20 have hole. Hole let bad man in cave. Grug not let bad man in cave. Grug block."
— GUARD persona · CVE-2026-1144 · blocking
"resolveTree() have eighteen branch. Grug brain have ten branch. If Grug brain explode, you fix. Refactor."
— ELDER persona · run #20114 · warning
"Bug in parser.go line 142. Body of request maybe nil. You crash on Tuesday. Grug fix Monday. Grug heroic."
— SMASHER persona · run #20119 · blocking

Stop merging half-baked PRs.

Get Grug on GitHub → Read the source