✓ Verified 💻 Development ✓ Enhanced Data

Securevibes Scanner

Run AI-powered application security scans on codebases.

Rating
5 (10 reviews)
Downloads
42,024 downloads
Version
1.0.0

Overview

Run AI-powered application security scans on codebases.

Key Features

1

Run an initial full scan (if not already done)

2

Bootstrap incremental state

3

Configure the cron

4

Verify

Complete Documentation

View Source →

SecureVibes Scanner

AI-native security platform that detects vulnerabilities using Claude AI. Multi-subagent pipeline: assessment → threat modeling → code review → report generation → optional DAST. Supports incremental scanning for continuous monitoring.

Prerequisites

  • Install the CLI: pipx install securevibes (preferred) or uv tool install securevibes. Avoid pip install — it can create stale shims if you have multiple Python environments.
  • Authenticate with Anthropic (one of):
  • Max/Pro subscription (recommended): If you're authenticated via Claude Code or Claude CLI OAuth, no API key is needed. The Claude Agent SDK picks up your OAuth session automatically. When running inside OpenClaw, leave ANTHROPIC_API_KEY unset or blank — the SDK handles auth.
  • API key: export ANTHROPIC_API_KEY=your-key-here (from console.anthropic.com)

Security Notes

  • Always use the scripts/scan.sh wrapper for full scans — it validates paths and rejects shell metacharacters before invoking securevibes.
  • Never interpolate unsanitized user input into shell commands.
  • The wrapper uses realpath to resolve paths safely and rejects any path containing ;, |, &, $, backticks, or other metacharacters.
  • Scan targets must be local directories. Clone remote repos to a known safe location first, then pass the resolved path to the wrapper.
  • DAST scans make network requests to the --target-url you provide. Only use against apps you own or have permission to test.

Execution Model

Full scans take 10-30 minutes across 4 phases. Run them as background jobs (cron or subagent), not inline.

Incremental scans take 2-10 minutes — they only scan commits since the last run.

Full Scan (One-Shot)

Running a Scan

  • Clone the target repo to a local directory
  • Run the wrapper script: bash scripts/scan.sh /path/to/repo --force --debug
  • Results appear in /path/to/repo/.securevibes/

Background Execution (Recommended)

For OpenClaw users, schedule scans as cron jobs:

  • Use sessionTarget: "isolated" with payload.kind: "agentTurn"
  • Set payload.timeoutSeconds: 2700 (45 minutes) to allow all phases to complete
  • Use delivery.mode: "announce" to get notified when done
The agentTurn message should instruct the subagent to:
  • cd into the repo and git pull for latest code
  • Clean previous .securevibes/ artifacts
  • Run securevibes scan . --force via the wrapper script
  • Read and summarize the results from .securevibes/scan_report.md

Incremental Scan (Continuous Monitoring)

The incremental scanner (ops/incremental_scan.py) tracks the last-scanned commit and only scans new commits. Designed for cron-driven continuous security monitoring.

How It Works

  • Tracks an anchor commit in .securevibes/incremental_state.json
  • On each run: fetches remote, compares HEAD to anchor
  • If new commits exist: runs securevibes pr-review on the diff
  • Updates anchor to new HEAD after successful scan
  • If no new commits: exits cleanly (no scan, no cost)

Setup

#### Step 1: Run an initial full scan (if not already done)

The incremental scanner requires .securevibes/SECURITY.md and .securevibes/THREAT_MODEL.json to exist. These come from an initial full scan:

bash
securevibes scan <repo-path> --model sonnet

Skip this step if the repo already has a .securevibes/ directory with these files.

#### Step 2: Bootstrap incremental state

Run the wrapper once to seed the anchor commit (no scan runs, just records current HEAD):

bash
python3 ops/incremental_scan.py --repo <repo-path> --remote origin --branch main

This creates .securevibes/incremental_state.json with status: "bootstrap".

#### Step 3: Configure the cron

For OpenClaw users, create a cron job:

bash
openclaw cron create \
  --name "securevibes-incremental" \
  --cron "*/30 * * * *" \
  --tz "America/Los_Angeles" \
  --agent main \
  --session isolated \
  --timeout-seconds 900 \
  --announce \
  --message "Run incremental security scan: python3 <skill-path>/ops/incremental_scan.py --repo <repo-path> --remote origin --branch main --model sonnet --severity medium --scan-timeout-seconds 600. Read .securevibes/incremental_scan.log for results. If new findings, summarize them."

Replace with the installed skill path and with the target repo.

#### Step 4: Verify

bash
# Check state
cat <repo-path>/.securevibes/incremental_state.json

# After first scheduled run, check logs
tail -10 <repo-path>/.securevibes/incremental_scan.log

# Check findings
cat <repo-path>/.securevibes/PR_VULNERABILITIES.json

Incremental Scanner Options

text
python3 ops/incremental_scan.py [options]

OptionDescription
--repoRepository path (default: .)
--branchBranch to track (default: main)
--remoteGit remote (default: origin)
--modelClaude model: sonnet, haiku (default: sonnet)
--severityMinimum severity: critical, high, medium, low
--scan-timeout-secondsTimeout per scan command (default: 900)
--git-timeout-secondsTimeout for git operations (default: 60)
--rewrite-policyHistory rewrite handling: reset_warn, strict_fail, since_date
--sinceOverride: scan commits since this date (ISO or YYYY-MM-DD)

Operational Guarantees

  • File lock at .securevibes/.incremental_scan.lock prevents overlapping runs
  • Atomic state writes (fsync + os.replace) prevent corruption
  • Structured logging at .securevibes/incremental_scan.log
  • Run records saved to .securevibes/incremental_runs/ (one JSON per run)

Rewrite Policy

When last_seen_sha is not an ancestor of the new remote HEAD (e.g., force push):

PolicyBehavior
reset_warnReset anchor to new HEAD, continue
strict_failFail and keep current anchor
since_dateRun a --since scan for visibility, keep previous anchor

Full Scan Commands Reference

Scan

securevibes scan [options]

OptionDescription
-f, --formatmarkdown (default), json, text, table
-o, --outputCustom output path
-s, --severityFilter: critical, high, medium, low
-m, --modelClaude model (e.g., sonnet, haiku)
--subagentRun one phase: assessment, threat-modeling, code-review, report-generator, dast
--resume-fromResume from a specific phase onwards
--dastEnable dynamic testing (requires --target-url)
--target-urlURL for DAST (e.g., http://localhost:3000)
--forceSkip prompts, overwrite existing artifacts
--quietMinimal output
--debugVerbose diagnostics

Report

securevibes report — Display a previously saved scan report.

Mapping Requests to Actions

User SaysAction
"Scan this for security issues"Full scan: bash scripts/scan.sh --force
"Quick security check"Full scan: bash scripts/scan.sh -m haiku --force
"Threat model this project"bash scripts/scan.sh --subagent threat-modeling --force
"Just review the code"bash scripts/scan.sh --subagent code-review --force
"Show only critical/high findings"bash scripts/scan.sh -s high --force
"Full audit with DAST"bash scripts/scan.sh --dast --target-url --force
"Set up continuous scanning"Incremental setup: Steps 1-4 above
"Monitor this repo for security issues"Incremental setup: Steps 1-4 above
"Show last scan results"securevibes report

Subagent Pipeline

Runs sequentially. Each phase builds on the previous:

  • assessment → Architecture & attack surface → .securevibes/SECURITY.md
  • threat-modeling → STRIDE-based analysis → .securevibes/THREAT_MODEL.json
  • code-review → Vulnerability detection → .securevibes/VULNERABILITIES.json
  • report-generator → Consolidated report → .securevibes/scan_report.md
  • dast (optional) → Dynamic validation against running app

Presenting Results

After a scan completes:

  • Read .securevibes/scan_report.md (or .securevibes/scan_results.json for structured data)
  • Summarize: total findings by severity (Critical > High > Medium > Low)
  • Highlight top 3 most critical with file locations and remediation
  • Offer next steps: run DAST, fix specific issues, re-scan after changes

Links

Installation

Terminal bash

openclaw install securevibes-scanner
    
Copied!

💻Code Examples

securevibes scan <repo-path> --model sonnet

securevibes-scan-repo-path---model-sonnet.txt
Skip this step if the repo already has a `.securevibes/` directory with these files.

#### Step 2: Bootstrap incremental state

Run the wrapper once to seed the anchor commit (no scan runs, just records current HEAD):

python3 ops/incremental_scan.py --repo <repo-path> --remote origin --branch main

python3-opsincrementalscanpy---repo-repo-path---remote-origin---branch-main.txt
This creates `.securevibes/incremental_state.json` with `status: "bootstrap"`.

#### Step 3: Configure the cron

For OpenClaw users, create a cron job:

--message "Run incremental security scan: python3 <skill-path>/ops/incremental_scan.py --repo <repo-path> --remote origin --branch main --model sonnet --severity medium --scan-timeout-seconds 600. Read .securevibes/incremental_scan.log for results. If new findings, summarize them."

---message-run-incremental-security-scan-python3-skill-pathopsincrementalscanpy---repo-repo-path---remote-origin---branch-main---model-sonnet---severity-medium---scan-timeout-seconds-600-read-securevibesincrementalscanlog-for-results-if-new-findings-summarize-them.txt
Replace `<skill-path>` with the installed skill path and `<repo-path>` with the target repo.

#### Step 4: Verify
example.sh
openclaw cron create \
  --name "securevibes-incremental" \
  --cron "*/30 * * * *" \
  --tz "America/Los_Angeles" \
  --agent main \
  --session isolated \
  --timeout-seconds 900 \
  --announce \
  --message "Run incremental security scan: python3 <skill-path>/ops/incremental_scan.py --repo <repo-path> --remote origin --branch main --model sonnet --severity medium --scan-timeout-seconds 600. Read .securevibes/incremental_scan.log for results. If new findings, summarize them."
example.sh
# Check state
cat <repo-path>/.securevibes/incremental_state.json

# After first scheduled run, check logs
tail -10 <repo-path>/.securevibes/incremental_scan.log

# Check findings
cat <repo-path>/.securevibes/PR_VULNERABILITIES.json

Tags

#coding_agents-and-ides #code #security

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author anshumanbh
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install securevibes-scanner