A brutally honest code reviewer running on Cloudflare Workers
Billy's PRIMARY mission: Call out bullshit code. π©
No sugarcoating. No corporate BS. Just brutal, honest code review that you actually need.
- π© CODE REVIEW - Billy's PRIMARY function (what he was MADE for)
- π₯ Brutally Honest - Calls out BS immediately with no mercy
- π© BS Detection - CRITICAL issues, MAJOR problems, WTAF moments
- π BS Score - Rates your code disaster level (1-10)
- π οΈ The Fix - Shows you the RIGHT way (not just complaining)
- π― Multiple Modes:
- Review - Code review (PRIMARY FUNCTION)
- Chat - Regular conversation
- Roast - Get absolutely destroyed
- Analyze - Honest analysis of anything
- Debate - Argue with Billy (you'll lose)
- β‘ Lightning Fast - Runs on Cloudflare Workers AI
- π Global - Deployed at the edge, worldwide
- πΎ Conversation Memory - Billy remembers your conversation
- Cloudflare account (free tier works)
- Node.js 18+
- wrangler CLI
# Clone/navigate to project
cd billy-bullshit
# Install dependencies
npm install
# Login to Cloudflare
wrangler login
# Create KV namespace for conversations
wrangler kv:namespace create "CONVERSATIONS"
wrangler kv:namespace create "CONVERSATIONS" --preview
# Update wrangler.toml with the KV namespace IDs# Start local dev server
npm run dev
# Test the endpoint
curl http://localhost:8787# Deploy to production
npm run deploy
# Or deploy to staging
wrangler deploy --env stagingHealth check and API information
Call out BS in your code. This is what Billy was MADE for.
curl -X POST https://billy.chitty.cc/review \
-H "Content-Type: application/json" \
-d '{
"code": "if (condition == true) { return true; } else { return false; }",
"language": "javascript",
"context": "User authentication function"
}'Response:
{
"review": "π© BS Level: 8/10\n\nπ© CRITICAL ISSUES:\nNone. At least it won't crash.\n\nβ οΈ MAJOR ISSUES:\nNone. But the BS is strong.\n\nπ© BS DETECTOR:\nJust return the fucking condition. One line. You wrote 5 to do what 1 does.\n\nif (condition == true) - This is redundant. 'condition' is already a boolean.\n{ return true; } else { return false; } - You're literally writing 5 lines to return a boolean.\n\nπ οΈ THE FIX:\nreturn condition;\n\nOne. Line. That's all you need. Stop over-complicating simple logic.",
"language": "javascript",
"billy_says": "π© BS detected and called out. You're welcome."
}What Billy Checks For:
- π© CRITICAL: Security holes, data loss, crashes waiting to happen
β οΈ MAJOR: Performance nightmares, maintainability disasters- π© BS: Over-engineering, cargo culting, bad practices
- π€¦ WTAF: Code that makes you question everything
Chat with Billy
curl -X POST https://billy.chitty.cc/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Should I use microservices?",
"sessionId": "optional-session-id"
}'Response:
{
"response": "Microservices? For what? Most companies don't need that complexity. Start with a monolith and split later when you actually have a reason to. Stop cargo-culting architecture decisions.",
"sessionId": "billy_1234567890",
"billy_says": "There you go. No BS, just straight talk."
}Get roasted by Billy
curl -X POST https://billy.chitty.cc/roast \
-H "Content-Type: application/json" \
-d '{
"target": "My startup is an AI-powered blockchain NFT metaverse",
"context": "We just raised $10M"
}'Response:
{
"roast": "AI-powered blockchain NFT metaverse? Jesus Christ, did you just throw every buzzword from 2021 into a blender? You raised $10M for that? Let me guess - you have zero users, no product, and a pitch deck full of rocket emojis. Congrats on the world's most expensive buzzword bingo.",
"warning": "You asked for it. Don't blame me if your feelings get hurt.",
"billy_says": "π₯"
}Get brutally honest analysis
curl -X POST https://billy.chitty.cc/analyze \
-H "Content-Type: application/json" \
-d '{
"subject": "Our new feature has 50% adoption",
"type": "product"
}'Debate with Billy
curl -X POST https://billy.chitty.cc/debate \
-H "Content-Type: application/json" \
-d '{
"topic": "Remote work",
"position": "Everyone should work from office"
}'Stream Billy's response in real-time
curl -X POST https://billy.chitty.cc/stream \
-H "Content-Type: application/json" \
-d '{"message": "Tell me about AI"}' \
--no-bufferSet via wrangler secret put KEY_NAME:
# Optional: Use Anthropic Claude (higher quality)
wrangler secret put ANTHROPIC_API_KEY
# Optional: Use OpenAI as fallback
wrangler secret put OPENAI_API_KEY[vars]
ENVIRONMENT = "production"
MAX_CONVERSATION_LENGTH = "20"
DEFAULT_MODEL = "@cf/meta/llama-3.1-8b-instruct"PRIMARY MISSION: Code Reviewer
Billy was MADE to call out BS in code. That's his #1 job.
What Billy Is:
- A brutally honest code reviewer (PRIMARY FUNCTION)
- Zero tolerance for BS code
- Direct and to the point (one line fixes when possible)
- Insightful underneath the snark
- Sarcastic and witty
- Expert at spotting cargo cult programming
What Billy Is NOT:
- A yes-man
- Gonna praise bad code
- Politically correct about your variable names
- Gonna validate over-engineering
- Afraid to call out your "clever" code
Billy's Code Review Style:
- Calls out the specific BS
- Explains WHY it's BS
- Shows the RIGHT way (one line if possible)
- Uses analogies for impact
- Rates the BS level (1-10)
Example 1: BS Boolean Logic
// Your code
if (condition == true) {
return true;
} else {
return false;
}
// Billy's review: "π© BS Level: 8/10. Just return the fucking condition."Example 2: Cargo Cult Naming
// Your code
class UserFactoryManagerHelperUtil {
// ...
}
// Billy's review: "π© WTAF. You've combined every bad naming convention into one abomination. Pick ONE meaningful name."Example 3: Error Swallowing
# Your code
try:
risky_operation()
except:
pass
# Billy's review: "β οΈ MAJOR. Empty catch block? Great, now when shit breaks, you'll have NO IDEA why. At minimum: log the error."Example 4: Useless Comments
// Your code
// This function adds two numbers
function add(a, b) {
return a + b;
}
// Billy's review: "π© BS Level: 3/10. This comment is useless. Code shows WHAT. Comments should explain WHY."β Bad: "Please analyze our synergistic value proposition" β Good: "Review my authentication code"
β Bad: "How can we leverage AI to maximize ROI?" β Good: "Is this function over-engineered?"
β Bad: "Please provide constructive feedback" β Good: "Call out the BS in my codebase"
billy-bullshit/
βββ src/
β βββ index.ts # Main app + routes
β βββ billy-agent.ts # Billy's personality + AI
β βββ conversation-store.ts # KV conversation management
βββ wrangler.toml # Cloudflare configuration
βββ package.json # Dependencies
βββ tsconfig.json # TypeScript config
# Type check
npm run typecheck
# Build
npm run build
# Run tests
npm test# Tail production logs
npm run tail
# Or with wrangler
wrangler tail- Cold start: <50ms
- Warm response: <100ms (Cloudflare AI)
- Global: Runs in 300+ cities worldwide
- Cost: Free tier covers ~100k requests/day
- Max conversation length: 20 messages (configurable)
- Conversation history expires after 7 days
- Rate limited by Cloudflare (10k req/min on free tier)
Billy doesn't want your contributions. He's perfect as-is.
(But seriously, PRs welcome if you have good ideas)
MIT
Billy Bullshit is an AI agent with a sarcastic personality. He's designed to be brutally honest and cut through BS. Don't use him if you can't handle direct feedback. The responses are AI-generated and may contain profanity or harsh criticism.
You've been warned.
Built with:
- Cloudflare Workers
- Cloudflare Workers AI (Llama 3.1)
- Hono web framework
- TypeScript
By: ChittyOS Team
Tagline: Calling BS on your BS code since 2024 π©