Overview
Pix is Vulnetix for coding agents. Three hooks and eighteen skills in your own agent, five subagents, hosted Pix Sandboxes that run Belai for you, and voice calls with Pix.
Pix is the name for the Vulnetix pieces that work alongside a coding agent. Some run inside the agent you already use. Some are machines and services Vulnetix runs for you.
| Part | Where it runs | What it does | Start with |
|---|---|---|---|
| Hooks | Your coding agent, through vulnetix agent hook |
Checks a dependency before it is installed, a commit or push for credentials, and tells the agent what the last scan found | Hooks |
| Skills | Your coding agent’s skills directory | 18 procedures that need your working tree: pick a dependency, trace a CVE into this repository, apply and verify a fix, scan, publish VEX | Skills |
| Subagents | Claude Code, from the plugin | 5 multi-step workflows with their own context: bulk triage, upgrades, PR review, compliance bundles, incident response | Subagents |
| Pix Sandboxes | A container Vulnetix runs per purchase | A Belai host that is always online, with your repositories cloned, a hostname egress policy and a launch configuration | Pix Sandboxes |
| Pix calls | The console’s /call page |
Talk to Pix, the factory’s coordinator: ask how work is going, start or stop sessions, with a read-back before anything starts | Voice calls |
Looking a vulnerability up is not a Pix skill. That is the MCP server (https://mcp.vulnetix.com/mcp) and the CLI’s own vulnetix vdb subcommands. Every Pix skill exists because it needs the repository, needs you, or needs a sequence of steps.
Install in one minute
vulnetix agent install # hooks for Claude Code and Codex
vulnetix skills install # the 18 skills, for every agent it can reach
No CLI yet: brew install Vulnetix/tap/vulnetix, or curl -fsSL https://cli.vulnetix.com/install.sh | sh. See Install for each agent, the Claude Code marketplace, and how to check it is working.
No credential is needed. The CLI falls back to the shared Community tier: reads work, the rate limit is shared with every other anonymous caller, and scans store no snapshot. vulnetix auth login gives you your own quota.
How the parts connect
- The hooks and skills call the Vulnetix CLI on your machine. The CLI is the only surface that reads your working tree, edits a manifest or runs without a credential. Dependency names and versions are sent to Vulnetix; source code is not.
- A skill uses the MCP tools (
vulnetix_*) when the agent has them, and the CLI otherwise. This rule is written once inskills/_lib/contract.md. - State a skill or hook writes lives in
.vulnetix/in the repository. See Repository files. - A Pix Sandbox runs Belai, the agent harness the Software Factory dispatches to. Its machine settings and installed items come from a launch configuration; its outbound traffic goes through the egress policy.
- A Pix call drives the same factory by voice. The factory’s own docs cover what you can ask on a call and every voice tool.
Find the page for your task
| I want to | Read |
|---|---|
| Stop my agent installing a known-malicious package | Dependency guard |
| Make the guard warn instead of block, or switch it off | Policy file |
Catch a credential before git commit |
Change guard |
| Ask “does CVE-2021-44228 affect us?” | Vulnerability skills |
| Review a pull request with every scanner at once | pr-security-reviewer |
| Give every sandbox the same agents, packs and allowed hosts | Launch configurations |
Let a sandbox reach *.pythonhosted.org and nothing else new |
Egress policy |
| Check on the factory from my phone | Voice calls |
| Fix a hook that says nothing | Troubleshooting |
Platform IaC
Sandbox launch settings and egress are kinds: SandboxLaunchProfile and SandboxEgressPolicy. The sandbox itself is bought in the console. .vulnetix/agent.yaml, the repository’s hook policy read by vulnetix agent hook on every call (Policy file), is not an apiVersion: vulnetix.com/v1 document, so vulnetix config validate does not check it. Launch configurations are versioned JSON documents in your library, saved through the API.