Skip to main content
Vibrant supports four output formats for displaying analysis results: pretty, compact, plan, and json.

Pretty format

The default format with detailed, human-readable output. Usage:
vibrant .
vibrant . --format pretty
Example output:
  Analysis Results

  src/auth.ts:45:12
    └─ hardcoded-credentials
       ✖ Hardcoded API key detected
       → Use environment variables instead
       fix available with --fix

  src/utils.ts:23:5
    └─ empty-catch-block
       ✖ Empty catch block swallows errors
       → Add error handling or logging

  ✖ 2 errors
  ⚠ 0 warnings
  📁 15 files · 234ms

  Run vibrant --fix to auto-fix 1 issue

Features

  • File path with line and column numbers
  • Rule ID for each issue
  • Detailed error messages
  • Suggestions when available
  • Auto-fix indicators
  • Summary statistics

Success output

When no issues are found:
  ✓ No issues found
  15 files · 234ms

Compact format

Condensed single-line output for each issue. Usage:
vibrant . --format compact
Example output:
✖ src/auth.ts:45:12 hardcoded-credentials Hardcoded API key detected
✖ src/utils.ts:23:5 empty-catch-block Empty catch block swallows errors
⚠ src/index.ts:10:3 console-log-debugging Console.log statement found

  2 errors · 1 warnings · 234ms

Features

  • One line per issue
  • File path, line, and column
  • Rule ID
  • Truncated message (60 characters max)
  • Severity icons (✖ for errors, ⚠ for warnings)
  • Compact summary

Success output

  ✓ No issues found

Plan format

Markdown report with detailed context and AI-friendly formatting. Usage:
vibrant . --format plan
This format automatically saves a vibrant-report.md file in the current directory. Example output:
# 🔍 Vibrant Analysis Report

> Generated by [Vibrant](https://github.com/francogalfre/vibrant) - Vibecode Detector

## 📊 Summary

| Metric | Value |
|--------|-------|
| 📁 Files Analyzed | 15 |
| ❌ Errors | 2 |
| ⚠️ Warnings | 1 |
| ⏱️ Duration | 234ms |

## 🔧 Issues to Fix

Below is a detailed list of issues found. Use this report to fix them manually or with AI assistance.

### 📄 `src/auth.ts`

#### Issue #1: ❌ ERROR

**Rule:** `hardcoded-credentials`

**Location:** Line 45, Column 12

**Problem:**

Hardcoded API key detected in source code

**Code:**

```typescript
const API_KEY = 'sk-1234567890abcdef';
const client = new Client(API_KEY);  // <-- Issue here
return client.connect();
Suggestion:
Use environment variables instead of hardcoding credentials
Auto-fix: Available (run vibrant --fix)

🤖 AI Fix Prompt

Copy and paste this to an AI assistant to help fix these issues:
Please fix the 3 issues found in this codebase. 
Focus on the 2 errors first.
Each issue includes the file path, line number, and a suggestion.

Report generated in 234ms

### Features

- Full markdown formatting
- Summary table with metrics
- Detailed issue breakdown by file
- Code context with line numbers
- Issue location markers
- Suggestions and fix availability
- AI prompt template
- Saved to `vibrant-report.md`

<Info>
Plan format is ideal for sharing with AI assistants or team members.
</Info>

## JSON format

Machine-readable JSON output for CI/CD integration.

**Usage:**

```bash
vibrant . --format json
Example output:
{
  "summary": {
    "filesAnalyzed": 15,
    "errorCount": 2,
    "warningCount": 1,
    "duration": 234
  },
  "results": [
    {
      "file": "/path/to/src/auth.ts",
      "errors": 1,
      "warnings": 0,
      "issues": [
        {
          "rule": "hardcoded-credentials",
          "severity": "error",
          "line": 45,
          "column": 12,
          "message": "Hardcoded API key detected in source code"
        }
      ]
    },
    {
      "file": "/path/to/src/utils.ts",
      "errors": 1,
      "warnings": 0,
      "issues": [
        {
          "rule": "empty-catch-block",
          "severity": "error",
          "line": 23,
          "column": 5,
          "message": "Empty catch block swallows errors"
        }
      ]
    },
    {
      "file": "/path/to/src/index.ts",
      "errors": 0,
      "warnings": 1,
      "issues": [
        {
          "rule": "console-log-debugging",
          "severity": "warn",
          "line": 10,
          "column": 3,
          "message": "Console.log statement found"
        }
      ]
    }
  ]
}

Features

  • Structured JSON output
  • Summary with totals
  • Per-file issue breakdown
  • All issue metadata included
  • Perfect for programmatic parsing
  • CI/CD pipeline integration

Parsing example

const output = JSON.parse(analysisOutput);

if (output.summary.errorCount > 0) {
  console.error(`Found ${output.summary.errorCount} errors`);
  process.exit(1);
}

output.results.forEach(result => {
  result.issues.forEach(issue => {
    console.log(`${result.file}:${issue.line} - ${issue.message}`);
  });
});

Configuring default format

Set the default format in vibrant.config.js:
vibrant.config.js
module.exports = {
  format: 'compact'  // or 'pretty', 'plan', 'json'
};
Command-line flags override the config file:
# Uses 'json' even if config says 'compact'
vibrant . --format json

Format comparison

Best for: Interactive terminal use, detailed debuggingPros:
  • Human-readable
  • Detailed suggestions
  • Color-coded severity
  • Fix indicators
Cons:
  • Verbose for large codebases
  • Not machine-parseable

Build docs developers (and LLMs) love