Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Spotter for BicepNew to Visual Studio Code? Get it now.
Spotter for Bicep

Spotter for Bicep

Bicep Spotter

| (0) | Free
Progressive Bicep standards ratchet — inline violations as you code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Spotter for Bicep

Progressive Bicep standards ratchet — catches policy violations inline as you code, without blocking you on existing debt.

How it works

Spotter runs your custom rules against every .bicep file in the workspace on each save. Violations are shown as squiggles in the editor and in the Problems panel.

  • Yellow warning — new violation not yet in the baseline (must fix or baseline)
  • Blue info — violation exists in the baseline (already accepted, tracked)

The status bar shows a live count: ⚠ 3 new or ✓ 12 baselined.

Requirements

The Bicep CLI must be installed. Spotter uses it to compile .bicep files internally.

Install via Azure CLI:

az bicep install

Or via winget:

winget install Microsoft.Bicep

Getting started

  1. Open a workspace that contains .bicep files — Spotter activates automatically.
  2. Run spotter init in the terminal to create an initial .spotter.json baseline from your current violations.
  3. Write custom rules in .spotter/rules/ — Spotter picks them up on the next save.

Baseline

The .spotter.json file is the ratchet. It records which violations are accepted so that adding rules never blocks existing code — only new code is held to the new standard. Commit .spotter.json to git; its history is your improvement curve.

Run spotter check from the CLI to update the baseline after reviewing and accepting violations.

Custom rules

Rules live in .spotter/rules/*.ts in your workspace. Example:

import type { SpotterRule } from '@bicep-spotter/core';

export const rule: SpotterRule = {
  id: 'MY001',
  description: 'Storage accounts must have HTTPS-only enabled',
  check(resource) {
    if (resource.type === 'Microsoft.Storage/storageAccounts') {
      if (resource.properties?.supportsHttpsTrafficOnly !== true) {
        return 'supportsHttpsTrafficOnly must be true';
      }
    }
  },
};

Extension settings

No configuration required. Spotter reads its settings from .spotter.json in the workspace root.

Links

  • CLI package (@bicep-spotter/cli)
  • Core engine (@bicep-spotter/core)
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft