llm coding agent for grug brained developer. not smart, but know what work. club complexity demon so you no have to.
give grug codebase free to try. no shiney rock required. grug promise.grug know you. you tired. you have mass of code in repo. you have framework on top of framework. abstraction on top of abstraction. you look at codebase and see complexity demon spirit laughing at you from every file.
other coding agents? they big brain. they generate 47 files, 12 abstract factory visitor pattern bridge adapter proxy singletons, and type system so complex even type system not understand type system.
grugcode different. grugcode smol brain on purpose. grugcode write code like grug write code: simple, obvious, work. when complexity demon try sneak in, grugcode reach for club. 🪵
grug have many thing to say on many topic but most important thing grug say is:
complexity very, very bad
other coding agents no understand this. other coding agents are complexity demon. they look at 10 line function and say "ah yes, let grug refactor this into 6 microservices with event sourcing and CQRS and kubernetes manifest." no. no!
given choice between mass framework abstraction generated by big brain agent and one on one against t-rex, grug take t-rex every time. at least t-rex honest about trying to eat you.
grugcode know the magic word. the magic word is "no". grugcode say no to unnecessary complexity. grugcode say no to premature abstraction. grugcode say no to complexity demon, and reach for club.
grugcode look at code and find where complexity demon hiding. then club. hard. simplify function, flatten abstraction, remove indirection that serve no purpose. demon go back to shadow realm where belong.
grugcode give 80% of feature with 20% of code. you may not like. you may say "but what about edge case where user on mars during leap second?" grug say: is fine! ship now, handle mars later. or never. probably never.
when grug look at thing, grug know what thing do. no need trace through 14 files and 7 levels of inheritance to understand what happen when button click. locality of behavior. is good. is grug way.
grugcode not write million unit test that break when implementation change. grugcode write integration test at sweet spot: high level enough to catch real bug, low enough to debug. peak grug testing. you may not like.
grugcode believe in logging. is most underrated tool in all of software. log major branch in code. include request id. if rob pike spend mass time on logging at mass google, maybe you should too.
grugcode not extract interface after seeing pattern once. grugcode wait. watch. let cut point emerge from code like dinosaur bone emerge from rock. then, only then, grug refactor. patience, young grug.
| situation | big brain agent | grugcode |
|---|---|---|
| you say "add login" | generate OAuth2 PKCE flow with JWT rotation, refresh token microservice, Redis session store, 47 files | add login form. check password. set cookie. done. is fine! |
| you say "make faster" | introduce Kafka event stream with CQRS read model and cache invalidation strategy document | add index to database query that was doing full table scan. go from 3000ms to 4ms. go home early. eat dinosaur meat. |
| you say "refactor this" | AbstractFactoryVisitorBridgeProxyStrategyObserverMediatorDecoratorAdapter.java | rename variable. extract one function. delete dead code. codebase 30% smaller. complexity demon scream in pain. good. |
| you say "add feature" | "first let restructure entire application to support plugin architecture for future extensibility" | add feature. in one file. where it belong. if need plugin architecture later, do then. probably never need. |
| you say "fix bug" | rewrite entire module using functional reactive programming paradigm | read log. find bug. fix bug. add test so bug no come back. club bug. go home. |
you tell grugcode: "help grug send email when user sign up"
big brain agent generate event bus, message queue, retry policy, dead letter queue, observability layer. grugcode generate:
# is fine. send email. go home. eat dinosaur meat.
def handle_signup(email, password):
user = create_user(email, password) # make user
send_email( # send email
to=email,
subject="welcome to cave",
body="you in now. go make thing."
)
log(f"new grug: {email}") # log good
return user
# no event bus. no message queue. no dead letter.
# email fail? check log. send again. is fine.
# complexity demon cry. good.
you see? you look at thing. you know what thing do. this not accident. this is art of grug.
grug believe in simple pricing. not 47 tier with enterprise "call us" button. complexity demon love confusing pricing page. grug not let demon win here too.
grug not say grugcode perfect. no silver club fix all software problem. such is life.
but grug say this: after many many year of mass mass programming, grug learn one thing:
simplicity is not stupid. simplicity is hard. simplicity is the goal.
grugcode help you get there. one club swing at a time. 🪵