Vigolium is an open-source web vulnerability scanner that combines deterministic Go scanning with AI-driven agentic analysis for deep coverage. It is free and functions as a CLI tool, a persistent REST APIREST APIA web API design style where clients interact with resources over HTTP using standard methods like GET, POST, and DELETE, giving cyber tools a predictable, language-agnostic way to integrate with external services. server, or a traffic-intercepting ingestor client. It is intended for platform engineers, and its documentation positions it alongside network scanners that process inputs like OpenAPIOpenAPIA vendor-neutral specification for describing REST APIs in a machine-readable format, maintained by the OpenAPI Initiative. Cyber tools use it to auto-generate clients, documentation, and validation from a single source of truth. and HARHARAn HTTP Archive file, a JSON-format log of all network requests and responses captured by a browser's developer tools, used by cyber tools to replay, inspect, or analyze web traffic without re-running a live session. files. The tool has seen 11 releases in the tracked window and reports 118 commits in the past year.
Vigolium - High-fidelity vulnerability scanner fusing agentic AI with native speed, modularity, and precision
39 capabilities
· 4 backed by code, an API document or a real run
Built from vigolium's releases, docs, README and our own runs.
“Seen” marks the month we first spotted a release the vendor didn't date.
Group names and tags are our labels.
+Agentic scanningshippedRuns LLM-driven scanning sessions in multiple modes — single-shot query, autonomous autopilot, and a guided multi-phase swarm pipeline — with the agent able to crawl traffic, run modules, triage findings, and write extensions.3 releases · 35 other sources · first seen Oct 2026▸
Also counts toward: Built-in AI assistant, Natural-language query, REST API
release
Adds --auth-file to agent swarm and agent autopilot for supplying credentials to agentic runs.
v0.5.3 · Oct 2026
· source
· release history
Adds --max-commands, --token-budget, and --max-cost-usd flags to cap agent run budgets (exit code 5 when exhausted).︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
v0.5.3 · Oct 2026
· source
· release history
| Hand the agent the wheel for a full autonomous pentest | autopilot | Autonomous operator with full tools; optionally rotate context and verify candidates in durable mode |
seen Oct 2026
· source
| You want to... | Use | Why | | - | - | - | | Run a one-off prompt against code or a target (no scanning loop) | query | Single-shot, template-driven, returns structured findings or HTTP records |
seen Oct 2026
· source
| You want a one-shot prompt with no scanning | agent query | Swarm is the right mode when you want the AI to drive the native scanner, not replace it. *** ## Pipeline at a glance
seen Oct 2026
· source
It sits between two extremes: it is more directed than autopilot (which gives the agent free reign with full tool access) and more flexible than a hand-tuned vigolium scan (modules and extensions are chosen by the model, not the user).
seen Oct 2026
· source
| olium | Interactive olium TUI or one-shot non-interactive prompt. | | session | List or inspect past agent runs (sessions list / detail view). | | triage | AI triage of a single existing finding (triage [finding-id]) — confirm or downgrade it. |
seen Oct 2026
· source
| Have the AI drive the native scanner on a specific target | swarm | Master/worker pipeline: AI plans → native modules execute → optional triage+rescan |
seen Oct 2026
· source
+REST API servershippedExposes a local HTTP API server for triggering scans, managing findings, ingesting traffic, querying records, and controlling configuration, with role-based authentication and project scoping.1 release · 23 other sources · first seen Oct 2026▸
Also counts toward: Command-line interface, Role-based access control, REST API
release
server binds to 127.0.0.1 by default; a non-loopback ingest proxy now requires a token or allow-list.
v0.5.3 · Oct 2026
· source
· release history
/api/* routes require a Bearer token when the server is started with VIGOLIUM_API_KEY or server.auth_api_key set. bash theme={null} curl -H "Authorization: Bearer my-secret-key" http://localhost:9002/api/stats
seen Oct 2026
· source
Unified CRUD API for interacting with any database table. Returns raw JSON and supports pagination, filtering, sorting, column selection, and full-text search across all tables. Read endpoints (GET) require viewer role or above. Write endpoints (POST, PUT, DELETE) require admin role.
seen Oct 2026
· source
| admin | Full access, can delete resources, update config, manage projects | | operator | Can run scans, ingest traffic, and execute agent operations | | viewer | Read-only access to records, findings, stats, and scan history | Default users created on bootstrap: | Name | Role | | - | - |
seen Oct 2026
· source
Vigolium uses a file-based user system with Bearer token authentication. Each user has a unique access code that serves as their API token. ## Users and Roles
seen Oct 2026
· source
| POST | /api/import | Bulk import scans/records/findings (incl. gs://... and uploaded archives) | ### [Scan](/api-references/scan) | Method | Endpoint | Description | | - | - | - | | POST | /api/scan-url | Scan a single URL | | POST | /api/scan-request | Scan a raw HTTP request |
seen Oct 2026
· source
+JSON outputshippedProduces machine-readable JSON from commands, with a unified document format using a single `items` array and a legacy-keys flag for backwards compatibility.15 releases · first seen Oct 2026▸
Also counts toward: Command-line interface, JSON data export
release
15 total
Adds vigolium schema storage [table] subcommand to describe tables, columns, and row counts, a --usage flag on any command, vigolium schema flags <command> -j for machine-readable flag docs, and JSON schemas for fuzz, replay, ingest, traffic body/headers, hosts, dns, fingerprint, and schema…
v0.5.5 · Oct 2026
· source
· release history
Adds --format tsv output option to traffic, finding, endpoints, params, hosts, and dns commands, and adds --fields, --compact, and --max-output-bytes flags to fuzz, replay, endpoints, params, log ls, hosts, and dns.
v0.5.5 · Oct 2026
· source
· release history
replay and fuzz print a human view by default; -j is now one envelope.
v0.5.3 · Oct 2026
· source
· release history
Remaining read commands print the -j envelope; use --json-legacy-keys to restore old keys.
v0.5.3 · Oct 2026
· source
· release history
scan <uuid> exits 2 as a mistyped subcommand.
v0.5.3 · Oct 2026
· source
· release history
auth totp prints the bare code; JSON output is now behind -j.
v0.5.3 · Oct 2026
· source
· release history
+Extension supportshippedAllows custom scan extensions written in supported languages to be registered and executed as part of active scanning, with per-insertion-point scan types and configurable severity and confidence.6 releases · 8 other sources · first seen Oct 2026▸
Also counts toward: JavaScript scripting support, Plugin API support, Plugin system, REST API, Scripting language support
release
Adds modkit.ElideRequestBody shared helper to keep multi-MiB probe bodies out of stored evidence.
v0.5.6 · Oct 2026
· source
· release history
Adds pkg/modules/modtest helpers for content-encoding fixtures and module test servers.
v0.5.6 · Oct 2026
· source
· release history
Adds --http-version, --http3, and --http3-only flags to fuzz, multiplexing over HTTP/3 → HTTP/2 → HTTP/1.1 with protocol reported as pace.protocol.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
v0.5.5 · Oct 2026
· source
· release history
ext lint errors on missing handlers and exports.
v0.5.3 · Oct 2026
· source
· release history
Extension header objects are now case-insensitive, exposing get/getAll/has/entries/raw instead of the previous structure.
v0.5.3 · Oct 2026
· source
· release history
An --ext extension that fails to load stops the scan; use --ext-allow-failures to restore the old behavior.
v0.5.3 · Oct 2026
· source
· release history
Manage JavaScript (.js) and YAML (.vgm.yaml) extensions that add custom scanning logic. Extensions must be enabled and configured in vigolium-configs.yaml under audit.extensions. ## GET /api/extensions, List Extensions
seen Oct 2026
· source
description: "Detects responses that expose server technology details through HTTP headers", file: «home»/.vigolium/extensions/sensitive_header_leak.vgm.yaml, file_name: sensitive_header_leak.vgm.yaml } ], total: 2, extensions_enabled: true }
seen Oct 2026
· source
Returns metadata for all loaded extensions. Raw file content is excluded, use GET /api/extensions/:name to fetch the content of a specific extension. Query parameters: | Parameter | Type | Description | | - | - | - | | type | string | Filter by type: active, passive, pre_hook, post_hook |
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, Extensions > Manage JavaScript and YAML extensions that add custom scanning logic, including listing, editing, and API docs.
seen Oct 2026
· source
tags: [injection, xss, moderate], description: "Injects a canary value into each parameter and checks if the response reflects it back", file: «home»/.vigolium/extensions/reflected_param_scanner.js, file_name: reflected_param_scanner.js }, { id: sensitive-header-leak-yaml,
seen Oct 2026
· source
+Browser-based crawlingshippedAutomatically spiders web applications using a browser crawler with configurable interaction behaviours, identity settings, body capture limits, and a sandbox-enforced security posture.11 releases · 1 other source · first seen Oct 2026▸
release
11 total
Adds --only discovery,spidering,targeted-respider flag to run SPA re-spider without triggering dynamic assessment.
v0.5.6 · Oct 2026
· source
· release history
scan-url / scan-request enforce scope without -S; the REST equivalent returns 422.
v0.5.3 · Oct 2026
· source
· release history
scan / run with no target require --all-records to rescan the database.
v0.5.3 · Oct 2026
· source
· release history
Adds --discovery-extensions and --discovery-max-depth flags.
v0.5.3 · Oct 2026
· source
· release history
Adds scan --dry-run / run <phase> --dry-run to print the resolved scan plan without sending any traffic.
v0.5.3 · Oct 2026
· source
· release history
Crawl graph filenames are now crawl-graph-<host>-<scan>-<seq>.json (redacted and owner-only); any glob targeting the old filename pattern must be updated.
v0.5.2 · Oct 2026
· source
· release history
example
Re-spider a single-page application without running dynamic assessment — useful when you only want to expand coverage, not trigger active checks.$ vigolium run --only discovery,spidering,targeted-respider
v0.5.6 · Oct 2026
· source
+Findings managementshippedStores, lists, filters, and updates vulnerability findings with fields for severity, confidence, module, source, and status, supporting pagination, sorting, and full-text search.2 releases · 10 other sources · first seen Oct 2026▸
Also counts toward: REST API
release
Record UUID flags now accept a unique 8+ character prefix, returning ambiguous_id on collision.
v0.5.5 · Oct 2026
· source
· release history
--fail-on, scan diff, and --new-since now ignore dismissed findings.
v0.5.3 · Oct 2026
· source
· release history
docs
9 total
| domain | string | | Filter by hostname (supports * wildcards) | | severity | string | | Filter by severity (comma-separated): critical, high, medium, low, info | | scan_id | string | | Filter by scan UUID | | module_name | string | | Filter by module name |
seen Oct 2026
· source
| module_type | string | | Filter by module type: active or passive | | finding_source | string | | Filter by finding source: dynamic-assessment, known-issue-scan, agent, audit, oast, extension, import | | search | string | | Search across description, module ID, matched\_at |
seen Oct 2026
· source
| sort | string | found_at | Sort field: found_at, created_at, severity, module_name, module_id, confidence | | order | string | desc | Sort order: asc or desc | bash theme={null} # List all findings curl -shttp://localhost:9002/api/findings | jq . # Filter by severity
seen Oct 2026
· source
## GET /api/findings, List Findings Returns paginated vulnerability findings. Query parameters: | Parameter | Type | Default | Description | | - | - | - | - | | limit | int | 50 | Number of findings to return (max 500) | | offset | int | 0 | Offset for pagination |
seen Oct 2026
· source
curl -shttp://localhost:9002/api/findings?severity=critical,high | jq . # Filter by domain and module curl -s 'http://localhost:9002/api/findings?domain=example.com&module_name=xss' | jq . # Filter by module type curl -shttp://localhost:9002/api/findings?module_type=passive | jq . # Filter by finding source
seen Oct 2026
· source
example
Verify a finding is still exploitable and record the verdict before closing a ticket.$ vigolium finding verify <finding-uuid> && vigolium finding mark <finding-uuid> --verdict confirmed
v0.5.3 · Oct 2026
· source
+LLM provider integrationshippedRoutes all AI calls through an in-process Go runtime supporting eleven LLM backend drivers, with a server-configured default provider and per-request bring-your-own-key credential override.1 release · 10 other sources · first seen Oct 2026▸
release
Adds --preflight-timeout and --no-preflight flags to control agent provider ping behaviour.
v0.5.3 · Oct 2026
· source
· release history
docs
10 total
> Recent shift: the previous subprocess-based SDK and ACP backends (claudesdk, codexsdk, opencodesdk, ACP bridges) have been removed. All AI dispatch now goes through an in-process Go runtime called olium (pkg/olium/).
seen Oct 2026
· source
> Server-default provider, BYOK per request. The server resolves the olium provider from agent.olium.* in vigolium-configs.yaml (which keeps prompt caches stable across requests), but every agent run endpoint also accepts per-request BYOK credentials.
seen Oct 2026
· source
| Tools | pkg/olium/tool/ | The eight built-in primitives the model can call (bash, file ops, search, web fetch) | | Skills | pkg/olium/skill/ | SKILL.md workflow files (agentskills.io format) discovered from project, user, and embedded scopes |
seen Oct 2026
· source
| Engine | pkg/olium/engine/ | Multi-turn loop: provider stream → tool dispatch → history append → repeat |
seen Oct 2026
· source
For a higher-level comparison against the other agent subcommands, see [Agent Mode](/agentic-scan/agent-mode). *** ## What it is A turn-based, tool-using LLM agent written in Go. Components: | Layer | Lives in | Responsibility | | - | - | - |
seen Oct 2026
· source
+Host fingerprintingverifiedCollects and stores per-origin host facts — TLS certificates, banners, favicons (with mmh3, MD5, and SHA-256 hashes), discovered protocol, and soft-404 signatures — at configurable depth levels, and exposes the stored data for querying and export.4 releases · 6 other sources · first seen Oct 2026▸
Also counts toward: Command-line interface
release
fingerprint now reports unanswered reads in errors[] with a kind field.
v0.5.6 · Oct 2026
· source
· release history
Adds run probe --favicon to store each origin's favicon hashes as a host fact, queryable via hosts --has favicon.
v0.5.6 · Oct 2026
· source
· release history
Adds favicon mmh3 hash output (Shodan/FOFA compatible) alongside existing MD5 and SHA-256 hashes, and pins each origin's discovered protocol in discovery.engine.protocol with a dedicated brute_force_concurrency pool.
v0.5.5 · Oct 2026
· source
· release history
Adds vigolium fingerprint subcommand with --depth light|standard|full to store per-origin host facts, vigolium hosts subcommand with --sans and --soft-404 flags to read stored host facts, and vigolium dns subcommand to resolve and store DNS records, with dig and host shims routing to it.
v0.5.5 · Oct 2026
· source
· release history
command line
--favicon — Fetch each answering origin's icon once (the page's <link rel="icon">, else /favicon.ico; redirects not followed) and hash it: mmh3 (Shodan http.favicon.hash, FOFA icon_hash), MD5, SHA-256.
v0.5.6 · Oct 2026
· command-line history
hosts — Read stored host facts: DNS, TLS certificate, fingerprint and not-found baseline
v0.5.5 · Oct 2026
· command-line history
fingerprint — Fingerprint origins with a bounded set of reads and store the result as host facts
v0.5.5 · Oct 2026
· command-line history
example
Fingerprint a target's favicon hashes as host facts during a probe run, then filter the host list to only those where a favicon was captured.$ vigolium run probe --favicon && vigolium hosts --has favicon
v0.5.6 · Oct 2026
· source
Collect deep per-origin host facts — TLS certs, banners, favicons — for a set of targets before a pen-test engagement.$ vigolium fingerprint --depth full -u https://target.example.com
v0.5.5 · Oct 2026
· source
Dump all stored hosts with SAN data and soft-404 signatures in TSV for easy import into a spreadsheet or SIEM.$ vigolium hosts --sans --soft-404 --format tsv
v0.5.5 · Oct 2026
· source
+HTTP traffic ingestionshippedImports HTTP request/response data into the project database for scanning, supporting multiple input formats and source tagging from tools such as Burp or Caido.2 releases · 8 other sources · first seen Oct 2026▸
Also counts toward: Import from a competing product, REST API
release
Adds ingest -j to list stored items and failure reasons, plus --keep-blocked to store WAF block pages.
v0.5.5 · Oct 2026
· source
· release history
-S on server and ingest is now a usage error.
v0.5.3 · Oct 2026
· source
· release history
docs
8 total
## POST /api/ingest-http, Ingest HTTP Data Import HTTP request/response data into the database for scanning. Supports multiple input formats. Headers: | Header | Required | Description | | - | - | - | | Content-Type | Yes | Must be application/json |
seen Oct 2026
· source
| X-Project-UUID | No | Project UUID to scope the imported data. Falls back to the default project if omitted. | | X-Vigolium-Source | No | The pushing tool: burp or caido. Anything else (or omitted) stores the record as ingest-server. | ### Declaring the pushing tool
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, Ingestion > Import HTTP request/response data into the database for scanning via URLs, curl commands, HAR, OpenAPI, and more.
seen Oct 2026
· source
| Field | Type | Required | Description | | - | - | - | - | | input_mode | string | Yes | Input format (see modes below) | | url | string | No | Override URL (used as base URL for some modes) | | content | string | No | Raw content (plaintext) | | content_base64 | string | No | Base64-encoded content |
seen Oct 2026
· source
Accepted values are burp and caido — the same labels the [live bridge](/server-mode/running-the-server#live-proxy-bridge) writes, so one ?source=caido filter covers traffic that arrived either by Vigolium pulling over the bridge or by the plugin pushing here.
seen Oct 2026
· source
-HContent-Type: application/json \ -HX-Vigolium-Source: caido \ -d{"input_mode": "url", "content": "https://example.com/api/users?id=1"} | jq .
seen Oct 2026
· source
+Scanner module registryshippedMaintains a registry of active and passive scanner modules that can be listed, searched by name or tag, and filtered by type.3 releases · 7 other sources · first seen Oct 2026▸
release
Adds php2shell-version passive module flagging vulnerable PHP 8.2–8.5 banners.
v0.5.5 · Oct 2026
· source
· release history
Adds --known-issue-scan-templates to run specific nuclei templates.
v0.5.3 · Oct 2026
· source
· release history
Adds fuzz --fuzz new-param, --suffix, and a builtin params wordlist.
v0.5.3 · Oct 2026
· source
· release history
docs
7 total
## GET /api/modules, List Modules Returns all registered scanner modules (active and passive). Query parameters: | Parameter | Type | Description | | - | - | - | | search | string | Filter by module name, ID, description, or tag |
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, Modules > List registered active and passive scanner modules with search, tag filtering, and tag categories.
seen Oct 2026
· source
| tag | string | Filter by exact tag (case-insensitive, e.g. spring, injection, heavy) | bash theme={null} # List all modules curl -shttp://localhost:9002/api/modules | jq . # Search for XSS modules curl -shttp://localhost:9002/api/modules?search=xss | jq . # Filter by tag
seen Oct 2026
· source
id: spring-actuator-misconfig, name: Spring Actuator Misconfiguration, description: "...", short_description: Detects exposed Spring Boot actuator endpoints, confirmation_criteria: "...", severity: high, confidence: certain, scan_scope: [PER_HOST],
seen Oct 2026
· source
short_description: "Detects reflected XSS via character transformation analysis", confirmation_criteria: "Confirmed when injected probe characters are reflected without sanitization", severity: high, confidence: firm, scan_scope: [PER_REQUEST], tags: [injection, xss, light], type: active },
seen Oct 2026
· source
curl -shttp://localhost:9002/api/modules?tag=spring | jq . # Combine search and tag curl -shttp://localhost:9002/api/modules?search=misconfig&tag=java | jq . **Response (200):** json theme={null} { modules: [ { id: xss-light, name: XSS Light Scanner, description: "...",
seen Oct 2026
· source
+OAST interaction trackingshippedRecords and queries out-of-band application security testing callbacks from interactsh, filterable by protocol, scan, and target, with full interaction detail available per record.1 release · 8 other sources · first seen Oct 2026▸
Also counts toward: REST API
release
Adds oast.fallback_to_default config key (default true) that automatically re-registers against oast.pro when the configured server_url does not respond, without forwarding the token.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
v0.5.4 · Oct 2026
· source
· release history
> Note: The fields raw_request and raw_response are excluded from list responses. Use GET /api/oast-interactions/:id to access full interaction data. *** ## GET /api/oast-interactions/:id, Get OAST Interaction Detail
seen Oct 2026
· source
Returns paginated OAST interactions. Heavy fields (raw_request, raw_response) are excluded from list responses for performance. Query parameters: | Parameter | Type | Default | Description | | - | - | - | - | | limit | int | 50 | Number of interactions to return (max 500) |
seen Oct 2026
· source
# List all OAST interactions curl -shttp://localhost:9002/api/oast-interactions | jq . # Filter by protocol curl -s 'http://localhost:9002/api/oast-interactions?protocol=dns&limit=5' | jq . # Filter by scan curl -shttp://localhost:9002/api/oast-interactions?scan_id=scan-456 | jq . # Search by target URL
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, OAST Interactions > List, retrieve, and delete out-of-band application security testing interactions from interactsh callbacks.
seen Oct 2026
· source
+System diagnosticsshippedReturns a readiness report covering database connectivity, agent provider status, third-party tool availability, and directory configuration.1 release · 8 other sources · first seen Oct 2026▸
## GET /api/diagnostics, System Readiness Check Returns a diagnostic report checking database connectivity, agent provider readiness, third-party tools, and directory configuration. Useful for verifying the scanner is ready to operate before starting scans. Auth: Viewer (requires Bearer token) bash theme={null}
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, Diagnostics > System readiness check covering database connectivity, agent provider, third-party tools, and directory configuration.
seen Oct 2026
· source
| tools.chromium | No | Resolves the chromium/chrome binary (fallbacks: chromium-browser, google-chrome, google-chrome-stable). On the one-shot CLI paths it also smoke-launches the browser — see the note below |
seen Oct 2026
· source
Each individual check returns one of: ok, warning, error. ### Checks Performed | Check | Critical | Description | | - | - | - | | database | Yes | Pings the database with a 2s timeout | | agent | Yes | Resolves the configured olium provider and confirms credentials are available |
seen Oct 2026
· source
+Scan completeness and stop-reason reportingshippedRecords why a scan stopped and how completely each phase ran, surfacing these as structured fields on the scan row, REST object, event stream, and JSONL output.7 releases · first seen Oct 2026▸
Also counts toward: JSON data export, REST API
release
7 total
modules_run now counts modules that executed; modules_loaded holds the old number.
v0.5.3 · Oct 2026
· source
· release history
A scan with no reachable targets exits 1 with no_targets_reachable.
v0.5.3 · Oct 2026
· source
· release history
A scan whose every target is out of scope exits 1 with no_targets_in_scope.
v0.5.3 · Oct 2026
· source
· release history
Adds completeness, stop_reason and phase_outcomes fields to the scan row in REST objects and --format jsonl
v0.5.2 · Oct 2026
· source
· release history
Adds completeness, stop_reason, and phase_outcomes fields to the scan row, REST object, and --format jsonl output.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
v0.5.2 · Oct 2026
· source
· release history
Adds reasons and limits fields on phase.finished and scan.finished events, plus stop_reason on the scan line.
v0.5.2 · Oct 2026
· source
· release history
+Skills systemdocumentedProvides installable SKILL.md workflow files in agentskills.io format, discovered from project, user, and embedded scopes, with a versioned bundle embedded in the binary and a CLI install command.7 other sources▸
Also counts toward: Command-line interface
docs
7 total
Skill repository: [github.com/vigolium/skills](https://github.com/vigolium/skills) — or install the copy embedded in your `vigolium` binary, which always matches your installed version. ### Quick Install bash theme={null}
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Using the Vigolium Scanner Skill in Claude Code & Codex
seen Oct 2026
· source
vigolium skills install (added in v0.2.1) writes the vigolium-scanner bundle straight from the binary, so it can never drift from the CLI you're driving. Pick the agent with --agent claude|codex|agents and the location with --scope project (current folder) or --scope global (home dir).
seen Oct 2026
· source
Whether or not you install the skill, these are the interfaces a program drives Vigolium through. They are additive — default human output is unchanged. | Contract | What it is | When to use it | | - | - | - |
seen Oct 2026
· source
Prefer to pull the latest from the repo instead? Use the external skills installer: bash theme={null} bunx skills add vigolium/skills --skill vigolium-scanner --agent --yes Replace with your agent (e.g., claude-code, codex). *** ## The three machine contracts
seen Oct 2026
· source
This guide explains how to install and use the vigolium-scanner skill with AI coding agents, Claude Code and OpenAI Codex, to operate the Vigolium CLI for web vulnerability scanning, security testing, and custom extension authoring.
seen Oct 2026
· source
+HTTP record managementshippedStores and retrieves paginated HTTP request/response records with filtering by hostname, method, path, and other fields, excluding heavy body fields from list responses for performance.2 releases · 4 other sources · first seen Oct 2026▸
Also counts toward: REST API
release
Adds traffic --fields matches_not_found and --exclude-not-found flags, plus new uuid_short and response_headers fields to the shared --fields system, with nearest-name suggestions on typos.
v0.5.5 · Oct 2026
· source
· release history
Adds fuzz -r/--rate-limit global request cap.
v0.5.3 · Oct 2026
· source
· release history
docs
| limit | int | 50 | Number of records to return (max 500) | | offset | int | 0 | Offset for pagination | | domain | string | | Filter by hostname (supports * wildcards) | | method | string | | Filter by HTTP method (comma-separated) | | path | string | | Filter by path (supports * wildcards) |
seen Oct 2026
· source
## GET /api/http-records, List HTTP Records Returns paginated HTTP request/response records stored in the database. Response and request bodies are excluded from list responses for performance. Query parameters: | Parameter | Type | Default | Description | | - | - | - | - |
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, HTTP Records > List, retrieve, and delete HTTP request/response records with filtering, pagination, and sorting options.
seen Oct 2026
· source
| status_code | string | | Filter by status code (comma-separated) | | content_type | string | | Filter by response content type | | search | string | | Search across URL and path | | source | string | | Filter by ingestion source (e.g. ingest-server, cli, burp, caido, probe) |
seen Oct 2026
· source
+Live configuration managementdocumentedAllows server configuration to be read and updated at runtime via dot-notation keys, with hot reload for scope, notifications, dynamic assessment, and mutation strategy sections.6 other sources▸
Also counts toward: REST API
docs
Reloadable sections (scope, notify, dynamic-assessment, mutation\_strategy) take effect immediately. Server and database changes require a restart. Request body: JSON object mapping dot-notation keys to string values. bash theme={null} # Update a single value curl -s-X POST http://localhost:9002/api/config \
seen Oct 2026
· source
| show_sensitive | string | false | Set to true to show unredacted sensitive values | bash theme={null} # View all config curl -shttp://localhost:9002/api/config | jq . # Filter by section curl -shttp://localhost:9002/api/config?filter=scope | jq . # Show sensitive values
seen Oct 2026
· source
-HContent-Type: application/json \ -d '{ "notify.enabled": "true" }' | jq . # Update multiple values at once curl -s-X POST http://localhost:9002/api/config \ -HContent-Type: application/json \ -d '{ notify.enabled: true, scope.applied_on_ingest: true, dynamic-assessment.extensions.enabled: false
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, Config > View and update server configuration using dot-notation keys with hot reload support. ## GET /api/config, View Configuration
seen Oct 2026
· source
Returns the full server configuration as flattened dot-notation key-value pairs. Sensitive values (API keys, passwords, tokens) are redacted by default. Query parameters: | Parameter | Type | Default | Description | | - | - | - | - | | filter | string | | Substring match on key name |
seen Oct 2026
· source
Updates one or more configuration values using dot-notation keys. Values are coerced to match the existing field type (bool, int, float, string, or comma-separated list). Changes are persisted to the config file on disk.
seen Oct 2026
· source
+Agent session managementshippedPersists agent run history as sessions, allowing past runs to be listed, inspected for status, cancelled, and their logs and artifact files retrieved.5 other sources · first seen Oct 2026▸
Also counts toward: Command-line interface, REST API
docs
| GET /api/agent/status/list | , | List runs with in-memory status | | GET /api/agent/status/:id | , | Get run status by ID | | POST /api/agent/scans/:uuid/cancel | , | Cancel an in-flight agent run | | GET /api/agent/sessions | vigolium agent sessions | Paginated session history from DB |
seen Oct 2026
· source
| GET /api/agent/sessions/:id/artifacts/{name} | , | Read a specific artifact (10 MiB default cap) | | POST /api/agent/chat/completions | , | OpenAI-compatible chat completions |
seen Oct 2026
· source
| GET /api/agent/sessions/:id | , | Full session detail with debug fields | | GET /api/agent/sessions/:id/logs | , | Raw runtime.log (plain text or SSE tail) | | GET /api/agent/sessions/:id/artifacts | , | List session artifact files |
seen Oct 2026
· source
Cap an agent autopilot run by cost and commands so runaway scans don't blow a budget.$ vigolium agent autopilot --auth-file creds.yaml --max-commands 50 --token-budget 100000 --max-cost-usd 2.00 https://example.com
v0.5.3 · Oct 2026
· source
+Authenticated scanningshippedEnforces that a login step succeeds before crawling authenticated targets, with a fatal-on-failure mode configurable via flag or config key.3 releases · 1 other source · first seen Oct 2026▸
release
auth load exits 1 on a failed login and runs the full scan login flow.
v0.5.3 · Oct 2026
· source
· release history
Adds --require-auth flag and spidering.require_auth config key to make failed logins fatal for a target
v0.5.2 · Oct 2026
· source
· release history
Adds --require-auth flag and spidering.require_auth config key so a failed login is fatal for that target.
v0.5.2 · Oct 2026
· source
· release history
example
Fail a scan immediately when the login step is unsuccessful, ensuring no anonymous crawl data is collected for authenticated targets.$ vigolium scan-url https://app.example.com --require-auth
v0.5.2 · Oct 2026
· source
+Multi-project supportshippedScopes all API operations to a named project via a request header, falling back to a default project when the header is omitted.2 releases · 2 other sources · first seen Oct 2026▸
Also counts toward: Multi-tenant management, REST API
release
An unknown X-Project-UUID header now returns 404 instead of creating a project.
v0.5.3 · Oct 2026
· source
· release history
project use no longer auto-creates a project; pass --create explicitly.
v0.5.3 · Oct 2026
· source
· release history
docs
All API operations are scoped to a project via the X-Project-UUID request header. If the header is omitted, the default project (00000000-0000-0000-0000-000000000001) is used. bash theme={null} # Scope requests to a specific project curl -HAuthorization: Bearer my-secret-key \
seen Oct 2026
· source
-H "X-Project-UUID: a1b2c3d4-..." \ http://localhost:9002/api/findings This applies to all data endpoints: ingestion, findings, HTTP records, stats, scans, source repos, and OAST interactions. See [Projects](/api-references/projects) for the full multi-tenancy reference. *** ## GET /api/info, App Info
seen Oct 2026
· source
+Attack-surface and risk scoringdocumentedScores HTTP records against a 17-signal attack-surface set to produce a reproducible percentage score, and separately ranks records by risk within a flush batch, both usable as filters when querying records.4 other sources▸
docs
| sort | string | created_at | Sort field: created_at, sent_at, method, path, status_code, response_time, risk_score, surface_score | | order | string | desc | Sort order: asc or desc |
seen Oct 2026
· source
Scores written before v0.4.6 used a different scale and are not comparable to new ones.
seen Oct 2026
· source
`min_surface` and `min_risk` answer different questions.surface_score is the percentage of a 17-signal attack-surface set present on the record itself, so it is reproducible - the same record scores the same on every scan.
seen Oct 2026
· source
| min_risk | int | | Filter by minimum risk score (a rank *within the batch* the record was flushed alongside) | | min_surface | int | | Filter by minimum attack-surface score, 0-100 (alias min_surface_score). Absolute and reproducible - see below | | remark | string | | Filter by remark |
seen Oct 2026
· source
+Not-found baseline classificationverifiedClassifies a batch of crawled JSON-lines responses against stored soft-404 / not-found baselines to distinguish real endpoints from noise.1 release · 2 other sources · first seen Oct 2026▸
Also counts toward: Command-line interface
release
Adds vigolium match-not-found subcommand to classify stdin JSON-lines responses against stored not-found baselines.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
v0.5.6 · Oct 2026
· source
· release history
command line
match-not-found — Classify responses read from stdin against their origin's stored not-found baseline
v0.5.6 · Oct 2026
· command-line history
example
Classify a batch of crawled responses against your stored not-found baselines to surface real endpoints from noise.$ cat responses.jsonl | vigolium match-not-found
v0.5.6 · Oct 2026
· source
+Output size limitingshippedCaps the byte size of output produced by finding, traffic, and database listing commands via an opt-in flag.3 releases · first seen Oct 2026▸
Also counts toward: Command-line interface
release
Adds --format tsv output option to traffic, finding, endpoints, params, hosts, and dns commands, and adds --fields, --compact, and --max-output-bytes flags to fuzz, replay, endpoints, params, log ls, hosts, and dns.
v0.5.5 · Oct 2026
· source
· release history
Adds --max-output-bytes opt-in limit on finding, traffic and db ls outputs
v0.5.2 · Oct 2026
· source
· release history
Adds --max-output-bytes (opt-in) flag on finding, traffic, and db ls commands.
v0.5.2 · Oct 2026
· source
· release history
+Glob-based database aggregationshippedReads and merges multiple scan databases via glob patterns, with a strict mode that accounts for every skipped file by name.3 releases · first seen Oct 2026▸
release
db export --format csv now uses standard quoting and neutralizes formula injection.
v0.5.3 · Oct 2026
· source
· release history
Adds --glob-strict flag for --glob-db reads, with glob_sources accounting naming every skipped file.
v0.5.2 · Oct 2026
· source
· release history
Adds --glob-strict flag for --glob-db reads with glob_sources accounting naming every skipped file
v0.5.2 · Oct 2026
· source
· release history
+Session-based scan database recoveryshippedPreserves the database from a failed session-based scan under a recovery directory so it can be inspected for post-mortem triage.2 releases · 1 other source · first seen Oct 2026▸
release
Adds --keep-db-on-error flag to keep database files under ~/.vigolium/recovered/ after failed -S runs
v0.5.2 · Oct 2026
· source
· release history
Adds --keep-db-on-error flag to preserve a failed -S run's database under ~/.vigolium/recovered/.
v0.5.2 · Oct 2026
· source
· release history
example
Recover the database from a failed session-based scan for post-mortem triage instead of having it deleted.$ vigolium scan-url https://app.example.com -S session.db --keep-db-on-error
v0.5.2 · Oct 2026
· source
+Generic database APIdocumentedProvides a unified CRUD API over all internal database tables with pagination, filtering, sorting, column selection, full-text search, and table and column metadata endpoints.3 other sources▸
docs
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference, Generic Database API > Unified CRUD API for any database table with pagination, filtering, sorting, and full-text search.
seen Oct 2026
· source
Returns all database tables with their row counts. bash theme={null} curl -s http://localhost:9002/api/db/tables | jq . json theme={null} { tables: [ { name: agentic_scans, row_count: 42 }, { name: findings, row_count: 1567 }, { name: http_records, row_count: 24301 },
seen Oct 2026
· source
{ name: scans, row_count: 15 }, { name: source_repos, row_count: 3 } ], total: 12 } *** ## GET /api/db/tables/:table/columns, List Table Columns Returns column metadata and primary key information for a specific table. bash theme={null} # Get columns for the findings table
seen Oct 2026
· source
+Prometheus metrics endpointdocumentedExposes a /metrics endpoint on the REST API server that serves Prometheus-compatible metrics, gated by a server configuration flag.3 other sources▸
Also counts toward: REST API
docs
Public endpoints (no auth required): GET /, GET /health, GET /server-info, GET /swagger/*, GET /metrics, and POST /api/auth/login.
seen Oct 2026
· source
| GET | /swagger/* | Swagger UI | | GET | /metrics | Prometheus metrics (response gated by server.enable_metrics) | | POST | /api/auth/login | File-based login → bearer token | | GET | /api/info | App info / build metadata | | GET | /api/user/info | Current user |
seen Oct 2026
· source
> Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt > Use this file to discover all available pages before exploring further. # Vigolium API Reference > Base URL: http://localhost:9002 (default). For detailed documentation on each endpoint category, see the individual reference pages below.
seen Oct 2026
· source
+DNS resolution and storageverifiedResolves and stores DNS records for targets via a dedicated subcommand, with shims routing standard `dig` and `host` invocations through it.1 release · 1 other source · first seen Oct 2026▸
Also counts toward: Command-line interface
release
Adds vigolium fingerprint subcommand with --depth light|standard|full to store per-origin host facts, vigolium hosts subcommand with --sans and --soft-404 flags to read stored host facts, and vigolium dns subcommand to resolve and store DNS records, with dig and host shims routing to it.
v0.5.5 · Oct 2026
· source
· release history
command line
dns — Resolve names (A, AAAA, CNAME, MX, NS, TXT, SOA, CAA) and store the answers
v0.5.5 · Oct 2026
· command-line history
+HTTP version negotiation in fuzzingshippedAllows fuzz runs to target HTTP/3, HTTP/2, or HTTP/1.1 explicitly or via automatic fallback, with the negotiated protocol recorded in output.1 release · 1 other source · first seen Oct 2026▸
Also counts toward: Command-line interface
release
Adds --http-version, --http3, and --http3-only flags to fuzz, multiplexing over HTTP/3 → HTTP/2 → HTTP/1.1 with protocol reported as pace.protocol.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
v0.5.5 · Oct 2026
· source
· release history
example
Fuzz an endpoint over HTTP/3 first, falling back through HTTP/2 and HTTP/1.1, to test behaviour across protocol versions.$ vigolium fuzz --http3 -u https://target.example.com/FUZZ -w builtin:default --fields pace.protocol,status,length
v0.5.5 · Oct 2026
· source
+Schema and flag introspectionverifiedProvides subcommands to describe internal database tables, columns, and row counts, and to retrieve machine-readable flag documentation and JSON schemas for key commands.1 release · 1 other source · first seen Oct 2026▸
Also counts toward: Command-line interface
release
Adds vigolium schema storage [table] subcommand to describe tables, columns, and row counts, a --usage flag on any command, vigolium schema flags <command> -j for machine-readable flag docs, and JSON schemas for fuzz, replay, ingest, traffic body/headers, hosts, dns, fingerprint, and schema…
v0.5.5 · Oct 2026
· source
· release history
command line
flags — List one command's flags, one entry per flag (the --usage view as data)
v0.5.5 · Oct 2026
· command-line history
+AI triageshippedUses the LLM agent to triage an individual finding and confirm or downgrade it based on available evidence.1 release · 1 other source · first seen Oct 2026▸
release
Adds agent triage --no-write / --no-probe and an inconclusive verdict.
v0.5.3 · Oct 2026
· source
· release history
docs
| olium | Interactive olium TUI or one-shot non-interactive prompt. | | session | List or inspect past agent runs (sessions list / detail view). | | triage | AI triage of a single existing finding (triage [finding-id]) — confirm or downgrade it. |
seen Oct 2026
· source
+CI report format exportshippedProduces scan reports in CSV, JUnit, and GitHub annotation formats suitable for surfacing findings in CI pipelines and pull request reviews.1 release · 1 other source · first seen Oct 2026▸
release
Adds --format csv, junit, and github report formats for CI pipelines.
v0.5.3 · Oct 2026
· source
· release history
example
Emit machine-readable CI output in GitHub annotation format to surface findings inline on a pull request.$ vigolium scan https://staging.example.com --format github
v0.5.3 · Oct 2026
· source
+Self-updateshippedUpdates the tool binary in-process with signature verification, and limits automatic update prompts to interactive terminal sessions.2 releases · first seen Oct 2026▸
release
VIGOLIUM_AUTO_UPDATE only acts at an interactive terminal.
v0.5.3 · Oct 2026
· source
· release history
vigolium update now updates in-process with signature verification.
v0.5.3 · Oct 2026
· source
· release history
+Full-text search index repairdocumentedRebuilds the HTTP record full-text search index when migrating from a legacy body-indexed FTS table, ensuring records written before the upgrade become searchable.2 other sources▸
docs
The same release rebuilds the index when migrating from the legacy body-indexed FTS table. That replacement is created empty and filled by triggers, so before the fix only records written *after* the upgrade were searchable and search reported no error.
seen Oct 2026
· source
Full-text search is consistent with the CLI since v0.4.6. FTS availability used to be set only when the database was seeded, so vigolium server took the indexed FTS5 path while every CLI read command took the LIKE fallback on the same file - and the two did not return the same rows, MATCH being…
seen Oct 2026
· source
+Atomic file outputshippedWrites single-file outputs atomically so that a failure leaves the previous file intact rather than producing a partial result.1 release · first seen Oct 2026▸
release
Makes single-file -o outputs publish atomically, leaving the previous file intact on failure.
v0.5.2 · Oct 2026
· source
· release history
+Browser conformance testingshippedProvides a browser conformance suite, runnable via a make target, that verifies browser launch behaviour with a precheck before the tests run.1 release · first seen Oct 2026▸
release
Adds browser conformance suite via make test-browser-conformance with a launch precheck
v0.5.2 · Oct 2026
· source
· release history
+Export error handlingshippedExits with a distinct error code when a requested output cannot be written, rather than issuing a warning and continuing.1 release · first seen Oct 2026▸
release
Exits 1 with error.code: "export_failed" when a requested output cannot be written, instead of warning.
v0.5.2 · Oct 2026
· source
· release history
+Graceful scan cancellationshippedAllows a running scan to be cancelled cleanly via Ctrl-C or SIGTERM.1 release · first seen Oct 2026▸
release
Enables SIGTERM to cancel a scan the same way Ctrl-C does.
v0.5.2 · Oct 2026
· source
· release history
+Structured event streamingshippedEmits newline-delimited JSON events on stdout with sequence numbers and a terminal event, giving exclusive ownership of stdout to the event stream.1 release · first seen Oct 2026▸
Also counts toward: Command-line interface, JSON data export
release
Makes --events ndjson own stdout exclusively, with events carrying a seq field and a terminal event written after finalization.
v0.5.2 · Oct 2026
· source
· release history
+Technology fingerprint filteringdocumentedAllows HTTP records to be filtered by detected server or application technology (such as framework, language, platform, or CMS) when querying the database.1 other source▸
Lines in monospace are the tool's own words: help text
parsed from its source, or an endpoint from its API document. Under
release, a line is our summary of a dated release. Under
docs, it is quoted from the tool's own documentation or
website. Each links back to the source it came from.
Command line
View
Source
No command matches.
load a captured run
composed command
No matchesTry a different search, or clear a filter to see more.
option surface across analysed releases
options at that releaseadded, per releaseremoved, per release
option
found in
since
description
No matchesTry a different search, or clear a filter to see more.
option changes per release — drag across the rail to set a range
→
Values are placeholders taken from each option’s declared default.
Nothing is executed here — the output shown is a recording of a run
that already happened.
Score card
Shipping velocityreleases a month, last 12 months
Documentation qualityrelease-notes rubric, 0–100
Breaking-change disciplinehow rarely a release breaks users, and notice given
Maintenance riskquiet time against its own cadence, maintainers
Innovation & surfacenew capabilities, API and MCP surface
Community health
Contributor trenddistinct committers, this year against last
Maintainer concentrationbus factor now against a year ago
Issue backlog trendissues closed per issue opened, 12 months
Responsivenessmedian time to a maintainer’s first reply
Nine scores for vigolium, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Each score is 0–100 on a published rubric, derived from data this site already shows.
A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
Documentation quality — the release-notes rubric published on the analytics page, unchanged.
Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail vigolium puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Issue, contributor and maintainer activity in vigolium/vigolium, 2023-12 – 2026-11,
as of 2026-11-03. Twelve-month figures first; the trend lines run
the whole window.
Contributors4+4 vs prior 12 months
Maintainers1+1 joined · −0 left, last 12 months
Bus factor1committers behind half the commits
Community-filed100%of issues opened, last 12 months
Median time to close7 daysfirst maintainer reply 33 hours
Open backlog5of 12 issues ever filed
Issues opened / month1 · 0communitymaintainers
Open backlog5
Contributors / month0
Commits / month0
Starsnot measured
Issue themes, last 12 months
other 100%
Counts from the project's public repository and git history; no individuals
are identified. Maintainers are the committers covering 80% of the last year's
commits. how we measure this
Libraries its release ships
What its latest release locks, checked against known advisories.
None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can
follow every release here.