Skip to main content
Commands

vg init

Initialize Vibgrate in your project. Creates the .vibgrate directory and config file.

Overview

vg init is your first step when adopting Vibgrate. It creates the project structure and configuration file needed for drift tracking.

Quick Start: Run vg init --baseline to initialize with a baseline in one command.


Usage

vg init [path] [options]

Options

FlagTypeDefaultDescription
--baselinebooleanfalseCreate an initial drift baseline after init
--yesbooleanfalseSkip confirmation prompts (non-interactive mode)

What It Creates

Running vg init sets up the following structure:

your-project/
├── .vibgrate/
│   ├── baseline.json      # (if --baseline used)
│   └── scan_result.json   # (created on first scan)
└── vibgrate.config.ts     # Configuration file

Examples

Basic Initialization

# Initialize in current directory
vg init

# Initialize in specific path
vg init ./my-project

Output:

✓ Created .vibgrate/ directory
✓ Generated vibgrate.config.ts
→ Run 'vg scan' to analyze your project

Initialize with Baseline

vg init --baseline

Output:

✓ Created .vibgrate/ directory
✓ Generated vibgrate.config.ts
✓ Running initial scan...
✓ Baseline saved to .vibgrate/baseline.json
→ Commit baseline.json to version control

Non-Interactive Mode (CI/Automation)

vg init --yes --baseline

Tip: Use --yes in CI setup scripts to skip all prompts.


Generated Configuration

The generated vibgrate.config.ts provides sensible defaults:

import type { VibgrateConfig } from '@vibgrate/cli@latest';

const config: VibgrateConfig = {
  // Directories to exclude from scanning
  exclude: ['legacy/**', 'vendor/**', 'node_modules/**'],
  
  // Threshold configuration for CI gates
  thresholds: {
    failOnError: {
      eolDays: 180,              // Fail if runtime EOL < 180 days
      frameworkMajorLag: 3,      // Fail if 3+ major versions behind
      dependencyTwoPlusPercent: 50, // Fail if 50%+ deps are 2+ majors behind
    },
    warn: {
      frameworkMajorLag: 2,
      dependencyTwoPlusPercent: 30,
    },
  },
  
  // Scanner configuration
  scanners: {
    platformMatrix: { enabled: true },
    dependencyRisk: { enabled: true },
    securityPosture: { enabled: true },
    codeQuality: { enabled: false },
    // ... additional scanners
  },
};

export default config;

Alternative Config Formats

Vibgrate also supports:

FormatFile
JavaScriptvibgrate.config.js
JSONvibgrate.config.json
TypeScript (default)vibgrate.config.ts

Best Practices

PracticeRationale
🔄 Run on main branch firstEstablishes canonical baseline
✅ Commit vibgrate.config.tsShared configuration across team
✅ Commit baseline.jsonEnables CI drift comparison
❌ Ignore scan_result.jsonTransient artifact, changes each run

Recommended .gitignore Addition

# Vibgrate artifacts
.vibgrate/scan_result.json
.vibgrate/*.sarif

Related Commands

No live demo for this command

vg init scaffolds the .vibgrate/ directory and a config file in your project (and may prompt you), so it changes your working tree rather than producing a replayable run. The files it creates are described above.

Related Documentation

Related Help Articles