Deburger is a terminal-native CLI that answers one critical question:
What breaks the business first if this code fails?
It is not a SAST replacement.
It is the decision layer before SAST.
Modern SAST tools:
- Generate hundreds of findings
- Treat all issues as equal
- Lack business or failure impact context
Teams know what is wrong
They do not know what to fix first
Deburger analyzes a codebase and outputs:
- Only the top 10 issues
- Ranked by failure impact
- Explained in business consequences
It focuses on:
- Failure-prone areas
- Single-point-of-failure logic
- Risk concentration, not volume
Deburger operates as a decision layer on top of SAST:
βββββββββββββββββββββββββββββ
β Project Codebase β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Semgrep Runner β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Raw Findings β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Findings Normalizer β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Gemini AI Reasoner β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Prioritization Engine β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β Fix Generator (optional) β
βββββββββββββββ¬ββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββ
β CLI Output / Results β
βββββββββββββββββββββββββββββ
- Node.js >= 16
- Semgrep (for scanning)
- Google Gemini API Key (for AI analysis)
macOS:
brew install semgrepLinux/Other:
pip install semgrepnpm install -g deburgerOr clone and build:
git clone <repository-url>
cd deburger
npm install
npm run buildFirst, set up your identity:
deburger initRun a complete scan and analysis:
# Analyze current directory
deburger scan
# Analyze a specific directory
deburger scan ./path/to/project
# With project name
deburger scan --project my-projectIf you already have a findings.json file:
deburger analyze
# Or specify a file
deburger analyze findings.json# Create a project
deburger project create my-projectConfigure integrations:
# Configure Jira
deburger config jira
# Configure ClickUp
deburger config clickupCreate issues/tasks after analysis:
deburger scan --create-jira
deburger scan --create-clickupCreate a .env file in your project root or ~/.deburger/.env:
# Required for AI analysis
GEMINI_API_KEY=your_gemini_api_key_here
GEMINI_MODEL=gemini-1.5-pro
# Optional: Database persistence (MongoDB)
DATABASE_URL=mongodb://localhost:27017/deburger
# Or use MONGODB_URI for connection string format
MONGODB_URI=mongodb://user:pass@localhost:27017/deburger?authSource=admin
MONGODB_DB_NAME=deburger
# Optional: Jira integration
JIRA_DOMAIN=company.atlassian.net
JIRA_EMAIL=your@email.com
JIRA_API_TOKEN=your_jira_token
JIRA_PROJECT_KEY=PROJ
# Optional: ClickUp integration
CLICKUP_API_TOKEN=your_clickup_token
CLICKUP_LIST_ID=12345678- Go to Google AI Studio
- Create a new API key
- Add it to your
.envfile
Deburger analyzes findings based on:
- Payment Processing: Stripe, PayPal, checkout flows
- Authentication: Login, JWT, session management
- Admin Functions: Dashboard, management interfaces
- Public APIs: Exposed endpoints, controllers, routes
- Database Operations: Data modifications, secrets, vaults
- Production Context: Production configs, environment variables
Uses Google Gemini AI to:
- Correlate related findings
- Estimate blast radius and failure propagation
- Explain why an issue matters
- Help decide what to fix first
After analysis, Deburger can:
- Generate AI-powered code fixes
- Show fix explanations
- Apply fixes with your approval
- Suggest imports and dependencies
- Failure-first, not vulnerability-first: Focus on what breaks the business
- Forced prioritization: Top 10 issues only (by default)
- Business impact over technical noise: Real-world consequences matter
- Deterministic and auditable logic: Same input = same output
- Terminal-only workflow: No web UI, pure CLI
SAST tools
- Find what is wrong
Deburger
- Decides what matters first
Recommended flow:
Deburger β Decide priorities β SAST β Fix
npm run buildnpm run analyzedeburger/
βββ src/
β βββ index.ts # CLI entry point
β βββ api.ts # Programmatic API
β βββ parser.ts # Semgrep parser
β βββ context.ts # Business signal extraction
β βββ gemini.ts # Gemini AI integration
β βββ ai.ts # AI fix generation
β βββ ui.ts # Terminal UI
β βββ db.ts # Database operations
β βββ identity.ts # User identity management
β βββ fixer.ts # Code fix application
β βββ integrations/ # Jira, ClickUp
βββ bin/
β βββ deburger.js # CLI executable
βββ dist/ # Compiled output
Deburger displays:
-
Top 10 Risks with:
- Business impact explanation
- Technical reason
- Remediation steps
- Code snippets
- Location and confidence
-
Additional Findings in a summary table
-
Interactive Fix Flow for selected findings
- Semgrep scans the codebase
- Findings are normalized into unified format
- Context enrichment extracts business signals
- Gemini AI analyzes and prioritizes
- Top 10 risks are displayed
- Optional fix generation for selected findings
Deburger looks for:
- Payment keywords:
stripe,payment,checkout,billing - Auth keywords:
auth,login,jwt,token,identity - Admin keywords:
admin,dashboard,management - Public-facing:
api/,controllers/,routes/ - Database:
insert,update,delete,vault,secret,prod
- Dependent on Semgrep rule quality
- Static analysis only (no runtime behavior)
- AI-generated fixes require human review
- Business intent cannot be inferred directly
- Requires Semgrep and Gemini API access
MIT
Contributions welcome! Please ensure:
- Code follows TypeScript best practices
- Tests pass (if applicable)
- Documentation is updated
- Changes align with "failure-first" philosophy
Deburger is built on the principle that not all vulnerabilities are equal. A SQL injection in a payment flow is more critical than a low-severity issue in a rarely-used utility function.
By focusing on business impact and failure propagation, Deburger helps teams make informed decisions about where to invest their security efforts.
Built with β€οΈ and π
// fix
// fix