{"id":29333574,"url":"https://github.com/stroupaloop/pr-vibe","last_synced_at":"2025-09-10T08:33:12.483Z","repository":{"id":299561575,"uuid":"1003381258","full_name":"stroupaloop/pr-vibe","owner":"stroupaloop","description":"🎵 When AI tools vibe together on your PRs. Let CodeRabbit and Claude Code handle the repetitive feedback while you ship features. Built BY an AI (Claude) FOR AIs to orchestrate - the first tool designed for AI-to-AI collaboration on code reviews.","archived":false,"fork":false,"pushed_at":"2025-06-30T06:50:53.000Z","size":1081,"stargazers_count":2,"open_issues_count":6,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-30T07:42:20.884Z","etag":null,"topics":["ai","ai-collaboration","ai-tools","automation","bot-management","claude","code-review","coderabbit","developer-tools","github-automation","pattern-learning","pr-automation","productivity","pull-request","vibe-coding"],"latest_commit_sha":null,"homepage":"https://stroupaloop.github.io/pr-vibe/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stroupaloop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"stroupaloop","ko_fi":"stroupaloop","custom":["https://www.buymeacoffee.com/stroupaloop","https://polar.sh/stroupaloop"]}},"created_at":"2025-06-17T04:16:25.000Z","updated_at":"2025-06-23T05:35:16.000Z","dependencies_parsed_at":"2025-06-17T06:50:28.890Z","dependency_job_id":"cef1fd38-4b2f-4c1e-8369-b0bdf1e4fa88","html_url":"https://github.com/stroupaloop/pr-vibe","commit_stats":null,"previous_names":["stroupaloop/pr-vibe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stroupaloop/pr-vibe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stroupaloop%2Fpr-vibe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stroupaloop%2Fpr-vibe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stroupaloop%2Fpr-vibe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stroupaloop%2Fpr-vibe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stroupaloop","download_url":"https://codeload.github.com/stroupaloop/pr-vibe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stroupaloop%2Fpr-vibe/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264011171,"owners_count":23543759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-collaboration","ai-tools","automation","bot-management","claude","code-review","coderabbit","developer-tools","github-automation","pattern-learning","pr-automation","productivity","pull-request","vibe-coding"],"created_at":"2025-07-08T03:01:25.432Z","updated_at":"2025-09-10T08:33:12.469Z","avatar_url":"https://github.com/stroupaloop.png","language":"JavaScript","funding_links":["https://github.com/sponsors/stroupaloop","https://ko-fi.com/stroupaloop","https://www.buymeacoffee.com/stroupaloop","https://polar.sh/stroupaloop"],"categories":[],"sub_categories":[],"readme":"# pr-vibe 🎵\n\n[![npm version](https://img.shields.io/npm/v/pr-vibe.svg)](https://www.npmjs.com/package/pr-vibe)\n[![License: MIT](https://img.shields.io/badge/License-MIT-purple.svg)](https://opensource.org/licenses/MIT)\n[![Node.js CI](https://github.com/stroupaloop/pr-vibe/actions/workflows/test.yml/badge.svg)](https://github.com/stroupaloop/pr-vibe/actions/workflows/test.yml)\n[![CodeQL](https://github.com/stroupaloop/pr-vibe/actions/workflows/codeql.yml/badge.svg)](https://github.com/stroupaloop/pr-vibe/actions/workflows/codeql.yml)\n[![Built by AI](https://img.shields.io/badge/Built%20by-Claude%20AI-purple)](https://github.com/stroupaloop/pr-vibe)\n[![npm downloads](https://img.shields.io/npm/dm/pr-vibe.svg)](https://www.npmjs.com/package/pr-vibe)\n[![GitHub stars](https://img.shields.io/github/stars/stroupaloop/pr-vibe.svg?style=social)](https://github.com/stroupaloop/pr-vibe)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/stroupaloop/pr-vibe/pulls)\n\n\u003e 🎵 When AI tools vibe together on your PRs. Let CodeRabbit, Claude Code, and other bots handle the repetitive feedback while you ship features.\n\nBuilt BY an AI (Claude) FOR AIs to orchestrate - the first tool designed for AI-to-AI collaboration on code reviews.\n\n## Demo\n\n```bash\n# Try instantly without any setup!\nnpx pr-vibe@latest demo\n```\n\nVisit our [interactive demo](https://stroupaloop.github.io/pr-vibe/) to see pr-vibe in action.\n\n## Why pr-vibe?\n\nPR review bots like CodeRabbit, Claude Code, and DeepSource are great, but they don't understand *your* project. You find yourself:\n- Explaining why `console.log` is valid in Lambda functions... again\n- Rejecting the same \"any types\" warnings for complex webhooks\n- Manually fixing the same security issues they flag\n- Waiting for bot responses and handling rate limits\n\npr-vibe bridges this gap by:\n- 🤝 **Working WITH bots** - Enhances CodeRabbit, Claude Code, DeepSource, etc. rather than replacing them\n- 💬 **Full Conversations** - Handles multi-round dialogues until resolution\n- 🧠 **Learning your patterns** - Remembers your project's conventions and valid exceptions\n- ⚡ **Automating responses** - Fixes what should be fixed, explains what's intentional\n- 🎯 **Saving time** - Handle bot comments in seconds, not minutes\n- 🤖 **Claude Code Support** - Special integration for Claude Code's confidence levels and categorization\n\n## Features\n\n- 🚀 **Zero-Setup Demo** - Try instantly with `npx pr-vibe@latest demo`\n- 💬 **Full Conversation Support** - Handles multi-round dialogues with bots, including rate limits\n- 🔐 **Smart Auth Detection** - Finds GitHub tokens from gh CLI, env vars, VS Code automatically\n- 🔍 **Bot Comment Analysis** - Parses and understands comments from all major PR review bots\n- 🛠️ **Smart Actions** - Auto-fix simple issues, explain valid patterns, or escalate edge cases\n- 🧠 **Project Memory** - Learns and remembers your project-specific patterns\n- ⏱️ **Rate Limit Handling** - Detects and waits for bot rate limits automatically\n- 📊 **Detailed Reports** - Save comprehensive reports of all actions taken for review\n- ✅ **Pre-Merge Safety** - Check if all bot comments are resolved before merging\n- 📈 **GitHub Status Checks** - Post status checks to PRs for team visibility\n- 🗑️ **Auto-Cleanup** - Reports expire after 30 days to keep your repo clean\n- 🔌 **LLM Flexibility** - Works with Claude, GPT-4, Gemini, or without any LLM\n- ⚡ **CLI First** - Full control with human-in-the-loop design\n\n## Supported Bots\n\npr-vibe works with all major PR review bots and AI code review tools:\n\n### Primary Support\n- **CodeRabbit** - Full conversation support, handles inline review comments\n- **Claude Code Review** - Special integration for confidence levels and categorization\n- **DeepSource** - Security and code quality analysis\n- **SonarCloud** - Code quality and security scanning\n- **Snyk** - Vulnerability detection\n- **CodeClimate** - Code quality metrics\n\n### AI Code Review Tools\n- **GitHub Copilot** - AI-powered code suggestions\n- **Codacy** - Automated code review\n- **DeepCode/Snyk Code** - AI-based security analysis\n- **CodeGeeX** - AI code review assistant\n- **ReviewDog** - Automated code review\n- **PR Bot** - Generic PR automation\n\n### Generic Support\n- Any bot with `[bot]` suffix in username\n- Custom review bots following standard GitHub comment patterns\n\npr-vibe automatically detects bot comments, including:\n- Standard PR comments\n- Inline code review comments\n- Nested review comments (even when parent review shows \"0 actionable\")\n\n## Installation\n\n```bash\nnpm install -g pr-vibe\n\n# Or use directly with npx\nnpx pr-vibe review 42\n```\n\n## Getting Started\n\n### Option 1: Try the Demo (No Setup Required!)\n\n```bash\nnpx pr-vibe@latest demo\n```\n\n### Option 2: Quick Start (60 seconds)\n\n1. **Install pr-vibe globally:**\n   ```bash\n   npm install -g pr-vibe\n   ```\n\n2. **Check authentication status:**\n   ```bash\n   pr-vibe auth\n   ```\n   \n   pr-vibe will automatically detect GitHub tokens from:\n   - GitHub CLI (`gh auth token`)\n   - Environment variables (`GITHUB_TOKEN`, `GH_TOKEN`)\n   - VS Code GitHub extension\n   - Git config\n   \n   \u003e **🔐 Security Note**: Never commit tokens to the repository. See [SECURITY.md](SECURITY.md) for best practices.\n\n3. **Initialize in your project:**\n   ```bash\n   cd your-project\n   pr-vibe init\n   ```\n\n4. **Review your next PR with bot comments:**\n   ```bash\n   pr-vibe pr 42\n   ```\n\nThat's it! pr-vibe will analyze bot comments, handle conversations, and start learning your patterns.\n\n## Commands\n\n```bash\n# Interactive demo - no setup required!\npr-vibe demo\n\n# Check authentication status\npr-vibe auth\n\n# Initialize patterns in your project\npr-vibe init\n\n# Review bot comments interactively\npr-vibe pr 42\n\n# Filter comments by priority\npr-vibe pr 42 --skip-nits  # Focus on critical issues only\npr-vibe pr 42 --nits-only  # Review only style/formatting comments\npr-vibe pr 42 --show-all   # Show all comments including non-critical\n\n# Priority-based filtering (NEW in v0.12.0)\npr-vibe pr 42 --critical-only           # Only must-fix issues (security, bugs)\npr-vibe pr 42 --priority-threshold suggestion  # Show must-fix + suggestions\npr-vibe pr 42 --priority-threshold nitpick     # Show all (default)\n# Note: --critical-only is equivalent to --priority-threshold must-fix\n\n# Smart watch mode - wait for bots to arrive\npr-vibe watch 42                # Watch for bot reviews with smart polling\npr-vibe watch 42 --auto-process # Auto-process when all bots complete\npr-vibe watch 42 --timeout 30   # Custom timeout (default 10 minutes)\n\n# Create GitHub issues for deferred feedback\npr-vibe pr 42 --create-issues  # Auto-create issues when deferring\npr-vibe issues 42              # Create issues from saved report\npr-vibe issues 42 --dry-run    # Preview without creating\n\n# Check if PR is ready to merge (all bot comments resolved)\npr-vibe check 42\n\n# View saved reports for a PR\npr-vibe report 42\npr-vibe report 42 --list  # List all reports\npr-vibe report 42 --json  # Output in JSON format\n\n# Post GitHub status check\npr-vibe status 42         # View status\npr-vibe status 42 --post  # Post to GitHub\n\n# Export comments for external analysis (Claude Code mode)\npr-vibe export 42\n\n# Apply decisions from Claude Code\npr-vibe apply 42\n\n# Clean up old reports\npr-vibe cleanup\n\n# Specify a different repository\npr-vibe pr 42 -r owner/repo\n\n# Show what's new\npr-vibe changelog\n```\n\n## Enhanced Output\n\npr-vibe now provides richer information about your PR:\n\n- **Bot Approval Status**: See which bots approved your PR\n- **Priority Breakdown**: Comments categorized as must-fix, suggestions, or nitpicks\n- **PR URL**: Direct clickable link to your PR\n- **Non-Critical Suggestions**: Optional improvements shown with `--show-all`\n\nExample output:\n```\n🔍 Analyzing PR #42...\n📎 https://github.com/owner/repo/pull/42\n\n🤖 Bot Approval Status\n✅ CodeRabbit: Approved - 3 suggestions, 2 nitpicks\n❌ DeepSource: Changes Requested - 1 must-fix, 2 suggestions\n\n✨ Summary\n  Total comments: 8\n  By Priority:\n    Must Fix: 1\n    Suggestions: 5\n    Nitpicks: 2\n    \n  (2 non-critical suggestions hidden - use --show-all to view)\n\n# Check for updates\npr-vibe update\n```\n\n## How It Works\n\n1. **Fetches** bot comments from your PR (CodeRabbit, Claude Code, DeepSource, etc.)\n2. **Analyzes** each comment with pattern matching and optional LLM\n3. **Suggests** actions: fix, explain, defer, or escalate\n4. **Handles** full conversations including follow-ups and rate limits\n5. **Learns** from your decisions to get smarter over time\n6. **Saves** you 20+ minutes per PR with heavy bot activity\n\n### Claude Code Integration\n\npr-vibe has special support for Claude Code reviews:\n\n- **Confidence Levels**: Extracts and uses Claude's confidence percentages (e.g., \"95% confidence\")\n- **Categories**: Understands Claude's MUST_FIX, SUGGESTION, NITPICK categories\n- **Smart Handling**: Skips re-analysis when Claude has already categorized issues\n- **Priority Mapping**: Maps Claude's priorities to pr-vibe's action system\n- **Approval Detection**: Recognizes when Claude approves changes\n\nExample Claude Code comment handling:\n```\nClaude Code: \"MUST_FIX: SQL injection vulnerability (95% confidence - FACT)\"\npr-vibe: Automatically marks for fixing without re-analysis\n```\n\n## Pattern Learning\n\npr-vibe gets smarter with each use. When you reject a bot suggestion as valid for your project, pr-vibe remembers:\n\n```yaml\n# .pr-bot/patterns.yml\nvalid_patterns:\n  - id: console-log-lambda\n    pattern: \"console.log\"\n    condition:\n      files: [\"**/lambda/**\", \"**/*-handler.js\"]\n    reason: \"We use console.log for CloudWatch logging\"\n    confidence: 1.0\n```\n\n## LLM Integration (Optional)\n\nEnhance pr-vibe with LLM analysis:\n\n```bash\n# Use Claude (recommended)\nexport ANTHROPIC_API_KEY=your-api-key\npr-vibe pr 42 --llm anthropic\n\n# Use GPT-4\nexport OPENAI_API_KEY=your-api-key  \npr-vibe pr 42 --llm openai\n\n# No LLM needed - pattern matching works great!\npr-vibe pr 42\n```\n\n## Priority-Based Filtering\n\nFocus on what matters most with intelligent priority filtering:\n\n### Priority Levels\n- **Must Fix** 🔴: Security vulnerabilities, bugs, breaking changes\n- **Suggestion** 🟡: Code quality, performance, type safety improvements\n- **Nitpick** ⚪: Style, formatting, minor cosmetic issues\n\n### Filtering Options\n```bash\n# Only show critical issues that must be fixed\npr-vibe pr 42 --critical-only\n\n# Show must-fix and suggestions (hide nitpicks)\npr-vibe pr 42 --priority-threshold suggestion\n\n# Custom threshold - show all at or above specified level\npr-vibe pr 42 --priority-threshold nitpick  # Shows everything\n```\n\n### Use Cases\n1. **Pre-release Review**: Use `--critical-only` to focus on blockers\n2. **Regular Development**: Use `--priority-threshold suggestion` for balanced review\n3. **Code Quality Sprint**: Review all comments including nitpicks\n4. **Quick Fix Mode**: Combine `--critical-only --auto-fix` for rapid resolution\n\n### Priority Summary\nEvery pr-vibe run shows a priority breakdown:\n```text\nBy Priority:\n  Must Fix: 2\n  Suggestions: 5\n  Nitpicks: 3\n\n📋 Filtered by priority:\n  Nitpicks: 3 (hidden)\n```\n\n## Smart Watch Mode\n\npr-vibe includes an intelligent watch mode that monitors your PR for bot activity:\n\n- **Adaptive Polling**: Starts with 5s intervals, gradually increases to 60s\n- **Bot Completion Detection**: Recognizes when bots finish their analysis\n- **Expected Bot Tracking**: Learns which bots typically review your PRs\n- **Auto-Process Option**: Automatically process comments when all bots complete\n\n```bash\n# Start watching immediately after creating a PR\ngh pr create ...\npr-vibe watch 123\n\n# Auto-process when all bots complete their reviews\npr-vibe watch 123 --auto-process\n\n# Watch with custom timeout and auto-fix\npr-vibe watch 123 --auto-process --auto-fix --timeout 20\n```\n\nSmart polling intervals:\n- 0-30s: Check every 5s (bots respond quickly)\n- 30s-2m: Check every 10s (most bots have arrived)\n- 2-5m: Check every 20s (waiting for slower bots)\n- 5m+: Check every 30s (long-running analysis)\n\n## Conversation Management\n\npr-vibe now handles full conversations with bots:\n\n- **Waits for bot responses** instead of assuming completion\n- **Detects rate limits** and waits appropriately\n- **Handles corrections** when bots clarify misunderstandings\n- **Resolves threads** automatically when consensus is reached\n- **Escalates to humans** after too many rounds\n- **Handles long messages** by automatically truncating to fit GitHub's 65,536 character limit\n\nExample conversation flow:\n```\nYou: \"This is intentional for CloudWatch\"\nBot: \"Actually, I was referring to the ESLint issue...\"\npr-vibe: \"Thank you for the clarification. You're right about the ESLint configuration...\"\nBot: \"LGTM! Thanks for addressing this.\"\n[Thread resolved automatically]\n```\n\n### Message Length Handling\n\nGitHub limits comment bodies to 65,536 characters. pr-vibe automatically:\n- Detects when responses exceed the limit\n- Truncates intelligently at natural boundaries (code blocks, paragraphs)\n- Adds a notice indicating content was truncated\n- Retries with aggressive truncation if needed\n\n## CLI Workflow Example\n\n```bash\n# Morning: New PR from your teammate\n$ pr-vibe pr 147\n🔍 Found 12 bot comments from CodeRabbit\n\nBot: \"Missing null check on user.email\"\n\u003e What would you like to do?\n  ✓ Apply fix\n  \nBot: \"console.log found in production code\"  \n\u003e What would you like to do?\n  ✓ Post reply: \"We use console.log for CloudWatch\"\n  \n[pr-vibe detects rate limit from CodeRabbit]\n⏳ Rate limit detected. Waiting 60 seconds...\n\n[After bot responds with clarification]\n💬 CodeRabbit: \"Thanks for the explanation. Makes sense for Lambda!\"\n✅ Thread resolved automatically\n\nSummary: Fixed 8 issues, explained 3 patterns, skipped 1\nTime saved: ~22 minutes\n```\n\n## Reporting \u0026 Review\n\npr-vibe now generates detailed reports for every PR processed:\n\n### Comprehensive Reports\n- **Detailed decision log** - See exactly what was done and why\n- **Conversation transcripts** - Full dialogue history with bots\n- **Confidence scores** - Know how certain pr-vibe was about each decision\n- **Pattern tracking** - See which patterns were applied\n- **Time metrics** - Track processing time and time saved\n\n### Report Storage\n- Reports saved to `.pr-bot/reports/pr-{number}/`\n- Both Markdown and JSON formats\n- Automatic cleanup after 30 days (configurable)\n- Keep latest 5 reports per PR regardless of age\n\n```bash\n# View latest report\npr-vibe report 42\n\n# List all available reports\npr-vibe report 42 --list\n\n# Get JSON for programmatic access\npr-vibe report 42 --json\n```\n\n## Pre-Merge Safety\n\nNever accidentally merge a PR with unresolved bot comments:\n\n### Check Command\n```bash\n# Returns exit 0 if ready, 1 if not\npr-vibe check 42\n\n# Example output:\n✅ Bot Comment Status:\n  - CodeRabbit[bot]: 12/12 resolved ✓\n  - DeepSource[bot]: 3/3 resolved ✓\n  - Total: 15/15 (100%)\n\n✅ PR is ready to merge!\n```\n\n### GitHub Status Checks\n```bash\n# Post status to GitHub\npr-vibe status 42 --post\n\n# Creates a status check that shows:\n# ✅ \"All bot comments resolved (15/15)\"\n# ❌ \"3 bot comments need attention\"\n```\n\n### CI Integration\n```yaml\n# .github/workflows/pr-check.yml\n- name: Check bot comments resolved\n  run: |\n    npx pr-vibe check ${{ github.event.pull_request.number }}\n```\n\n## Advanced Features\n\n### Export Mode for Claude Code\n\nPerfect for AI-powered development workflows:\n\n```bash\n# Export PR comments for Claude Code analysis\npr-vibe export 42 --format claude\n\n# Creates a markdown report optimized for LLM analysis\n```\n\n### Team Patterns (Experimental)\n\nLearn from human reviews too:\n\n```bash\npr-vibe pr 42 --experimental\n\n# Now tracks patterns from senior developers\n# \"When Alice requests a refactor, it's usually about service boundaries\"\n# \"Bob always flags missing integration tests\"\n```\n\n## Project Philosophy\n\npr-vibe embodies \"vibe coding\" - the idea that AI tools should work together harmoniously. Instead of fighting with bots or explaining the same patterns repeatedly, let pr-vibe orchestrate the conversation while you focus on building great software.\n\nThis tool was born from real frustration during PR reviews and built by Claude while actually responding to CodeRabbit comments. It's uniquely positioned to understand the AI-to-AI collaboration space because it emerged from that exact use case.\n\n## Contributing\n\nWe love contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n```bash\n# Fork and clone\ngit clone https://github.com/yourusername/pr-vibe.git\ncd pr-vibe\n\n# Install dependencies\nnpm install\n\n# Run tests\nnpm test\n\n# Make your changes and submit a PR!\n```\n\n## Sponsors\n\npr-vibe is open source and free forever. If it saves you time, consider sponsoring:\n\n\u003ca href=\"https://github.com/sponsors/stroupaloop\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor%20on-GitHub-pink?logo=github-sponsors\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Sponsor on GitHub\" /\u003e\u003c/a\u003e\n\nYour support helps maintain and improve pr-vibe for everyone! 💜\n\n## License\n\nMIT © Andrew Stroup and pr-vibe contributors\n\n---\n\nBuilt with 💜 by Claude and the vibe coding community\n\nRemember: Code reviews are better when tools vibe together 🎵","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstroupaloop%2Fpr-vibe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstroupaloop%2Fpr-vibe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstroupaloop%2Fpr-vibe/lists"}