GuidesBeginner4 min read

Output Formats: Text, JSON, SARIF, and Markdown

A guide to all four output formats supported by the Vibgrate CLI — when to use each, what they contain, and how to integrate them into your workflows.

Vibgrate Docs

Vibgrate Help

Overview

Vibgrate supports four output formats. Each serves a different audience and integration point.

Text (Default)

The default output. A colored, human-readable report showing:

  • Overall drift score and risk level
  • Score component breakdown with visual bars
  • Per-project details: runtime lag, framework versions, dependency distribution
  • Findings with severity icons
vibgrate scan .
# or explicitly:
vibgrate scan . --format text

Best for: Local development, quick checks, terminal dashboards.

JSON Artifact

The full scan artifact in JSON format. Contains all raw data, scores, findings, and VCS metadata. Stable schema (schemaVersion: "1.0").

vibgrate scan . --format json --out scan.json

Best for: Automation, custom dashboards, CI pipelines, programmatic consumption.

This is the same artifact saved to .vibgrate/scan_result.json.

SARIF

Static Analysis Results Interchange Format — compatible with:

  • GitHub Code Scanning — findings appear inline in PRs
  • Azure DevOps — publish as build artifacts
  • VS Code SARIF Viewer — view results locally
vibgrate scan . --format sarif --out vibgrate.sarif

Best for: CI integration, code review workflows, security tooling interop.

SARIF output contains findings only (not all metrics).

Markdown

A clean Markdown report suitable for:

  • PR comments
  • Wiki pages
  • Documentation
  • Email distribution (as rendered HTML)
vibgrate scan . --format md --out report.md

Best for: Human stakeholders, documentation, audit trails.

Combining Formats

You can run the scan once and use vibgrate report to produce additional formats from the saved artifact:

# Run scan (saves .vibgrate/scan_result.json)
vibgrate scan .

# Generate additional formats
vibgrate report --format md
vibgrate report --format json

This avoids re-scanning when you need multiple output formats.