Vigolium is a powerful offensive security tool. Two parts of the system are intentionally permissive so they can do their job, and you should understand the trade-offs before running them on a machine you care about.Documentation Index
Fetch the complete documentation index at: https://docs.vigolium.com/llms.txt
Use this file to discover all available pages before exploring further.
Agent mode runs with no sandbox
Agentic modes (vigolium agent autopilot, swarm, vigolium-audit, piolium, audit, query, olium) drive an LLM with full access to Bash, Read, Write, Grep, and Glob tools on the host. This is deliberate: a sandboxed agent cannot reach the artifacts a real pentest needs, source trees, locally installed tools, captured traffic, custom wordlists, or the network paths a target is reachable on.
The consequence is that, while the agent is running, it can:
- Execute arbitrary shell commands as the user running Vigolium.
- Read, modify, or delete files anywhere that user has access to.
- Reach any host the machine can reach, including internal services, cloud metadata endpoints, and SSH-reachable systems.
- Spend money on whichever AI provider’s credentials it is configured with.
- A dedicated container or VM per engagement, with only the scope-relevant files mounted in.
- A non-root user with no SSH keys, cloud credentials, or password manager state inherited from your workstation.
- Outbound network restricted to in-scope targets plus the AI provider endpoint(s).
- AI provider keys scoped or rotated per engagement so a leaked or misused key has a bounded blast radius.
vigolium agent ... subcommands.
Extensions can run arbitrary commands
Vigolium’s extension system (JavaScript, YAML, quick checks, and snippets) is designed for full flexibility, extensions can issue HTTP requests, read and write files, shell out, hit the database API, and trigger out-of-band (OAST) interactions. See Writing Extensions for the surface area. That same flexibility means an extension loaded from a third party is, in practice, code you are choosing to run on your machine with your privileges. Before loading an extension you did not write:- Read the source. JS and YAML extensions are plain text, there is no obfuscated bundle step.
- Check what it shells out to, what URLs it contacts, and what files it touches.
- Run it first against a throwaway target in a sandboxed environment (see the agent-mode guidance above).
- Pin to a specific version or commit instead of “latest”, so an upstream compromise does not silently roll out to your scans.
