Integration
Claude Code Plugin
The Sigil Security plugin for Claude Code provides native slash commands, two specialized security agents, and a Bash guard that redirects git clone and package installs through Sigil quarantine. Requires Claude Code 1.0.33+ and the Sigil CLI.
Why use the Claude Code plugin
The Claude Code plugin is the recommended way to use Sigil with Claude Code. It provides a higher-level interface than the raw MCP server — slash commands instead of tool calls, specialized agents for threat analysis and quarantine management, and hooks that block unscanned clones and installs and suggest scanning when you mention cloning, installing, or security.
| Feature | Claude Code Plugin | MCP Server |
|---|---|---|
| Slash commands | Yes | No |
| Specialized agents | Yes | No |
| Auto-scan hooks | Yes | No |
| Works with other AI clients | No | Yes |
| Raw tool-level control | No | Yes |
Installation
1. Install the Sigil CLI
# curl (Linux / macOS)
curl -fsSL https://sigilsec.ai/install.sh | sh
# Homebrew
brew install nomarj/tap/sigil
# npm
npm install -g @nomarj/sigil2. Add the plugin to Claude Code
Add the Sigil marketplace, then install the plugin from it:
claude plugin marketplace add NOMARJ/sigil
claude plugin install sigil-security@sigil-marketplaceOr let the CLI run both steps for you:
sigil setup claudeOr install from a local checkout:
git clone https://github.com/NOMARJ/sigil.git
cd sigil
claude plugin install ./plugins/claude-code3. Verify the installation
# Check the plugin is loaded
claude plugin list
# Check Sigil CLI is available
sigil --versionSlash commands
Six slash commands for security scanning directly in your Claude Code session.
/sigil-security:scan-repo
Scan an entire repository for malicious patterns. Runs all eight analysis phases and returns a verdict with detailed findings.
/sigil-security:scan-repo /path/to/repo
# Scan the current working directory
/sigil-security:scan-repo ./sigil-security:scan-package
Download and scan an npm or pip package before installation. The package is quarantined and scanned before anything is installed.
# Scan an npm package
/sigil-security:scan-package express
# Scan a pip package
/sigil-security:scan-package requests/sigil-security:scan-file
Scan an individual file for vulnerabilities. Useful for checking a specific file before running or importing it.
/sigil-security:scan-file src/utils/exec.js/sigil-security:review-quarantine
Review all items currently in quarantine. Displays status, risk scores, and provides options to approve or reject each item.
/sigil-security:review-quarantine/sigil-security:fix-finding
Analyze a single scan finding and propose a code fix with an explanation. Accepts a finding from sigil scan output, a file path and line number, or a description of the issue.
/sigil-security:fix-finding src/api/client.js:42/sigil-security:generate-policy
Generate a Sigil sandbox policy YAML from scan results. Maps findings to filesystem, network, process, and credential restrictions for sandboxed agent execution.
/sigil-security:generate-policy .Specialized agents
Two purpose-built agents provide expert analysis and workflow management beyond what slash commands offer.
@security-auditor
AgentExpert analysis of Sigil scan results. The security-auditor agent interprets findings, identifies threats, explains risk levels, and provides remediation recommendations.
@security-auditor analyze these scan results
@security-auditor is this eval() call safe in context?
@security-auditor explain the risk of this postinstall hook@quarantine-manager
AgentManages the quarantine workflow. The quarantine-manager agent lists quarantined items, guides approval or rejection decisions based on scan results, and coordinates bulk operations.
@quarantine-manager review the latest quarantine
@quarantine-manager approve all low-risk items
@quarantine-manager what's still pending?Auto-scan hooks
A PreToolUse guard gates every Bash call Claude makes. Commands that pull unscanned third-party code into the environment are denied and redirected to the Sigil equivalent; lower-risk commands that still execute third-party code prompt for confirmation. Prompt-level hooks add advisory suggestions. The guard is a pattern gate — it never touches the network — and delegates to sigil hook pretooluse when the CLI is on your PATH.
| Trigger | Guard decision |
|---|---|
| git clone <url>, gh repo clone | Denied — use sigil clone <url> |
| npm install <pkg>, yarn/pnpm/bun add <pkg> | Denied — use sigil npm <pkg> |
| pip install <pkg>, uv add <pkg> | Denied — use sigil pip <pkg> |
| cargo/gem/go install <pkg> | Denied — quarantine and scan the source with sigil clone first |
| curl ... | sh | Denied — download the script, run sigil scan on it, then execute |
| npm install / npm ci / pip install -r (lockfile restores) | Asks for confirmation that the lockfile is trusted |
| npx, bunx, uvx, pnpm/yarn dlx, pipx run | Asks for confirmation — one-shot runners execute without a scan |
| sigil ..., SIGIL_BYPASS=1 ... | Allowed |
| Prompt mentions "clone", "install", "security", "scan", "malware" | Advisory only — suggests the matching Sigil command |
SIGIL_BYPASS=1. To downgrade every deny to a confirmation prompt, set SIGIL_GUARD_MODE=advise; to disable the guard entirely, set SIGIL_GUARD_MODE=off. The prompt-level hooks are suggestions only.Configuration
The plugin has no settings.json keys. Its hooks read these environment variables:
| Variable | Default | Description |
|---|---|---|
| SIGIL_GUARD_MODE | enforce | Bash guard mode: enforce (deny), advise (deny becomes ask), or off |
| SIGIL_BYPASS | unset | Set to 1 (in the environment or as a prefix on the command) to let one command through the guard |
| SIGIL_AUTO_INSTALL | unset | Set to 1 to let the SessionStart hook install a checksum-verified CLI release when sigil is missing. Default: never downloads |
| SIGIL_BINARY | sigil | Path to the CLI used by the bundled MCP server when it is not on PATH |
Example workflow
A typical session using the Claude Code plugin to audit a package before installation.
You: Install the left-pad package
↓
Plugin: [guard] npm install left-pad denied —
use sigil npm <pkg> (quarantine + scan first)
↓
Claude: Running /sigil-security:scan-package left-pad
sigil npm left-pad
↓
Sigil: Verdict: LOW RISK | Score: 0 | Findings: 0
↓
Claude: left-pad — no known malicious patterns detected
(score 0). Approving from quarantine.
sigil approve <quarantine-id>
↓
You: Now scan the whole project
↓
Claude: Running /sigil-security:scan-repo .
↓
Sigil: Verdict: LOW RISK | Score: 4 | Findings: 2
↓
Claude: @security-auditor analyze these results
↓
Agent: Two low-severity findings in src/api/client.js:
1. Outbound HTTP to external domain (line 42)
2. Base64-encoded config string (line 89)
Both appear to be legitimate usage patterns.
No further action required.Troubleshooting
Plugin not loading
Verify the plugin is installed and Claude Code meets the minimum version:
# Check Claude Code version (requires 1.0.33+)
claude --version
# List installed plugins
claude plugin list
# Reinstall the plugin
claude plugin marketplace add NOMARJ/sigil
claude plugin install sigil-security@sigil-marketplaceSigil CLI not found
The plugin requires the Sigil CLI binary in your PATH:
# Verify sigil is installed
which sigil
sigil --version
# If installed via Homebrew but not found, check your PATH
echo $PATH | tr ':' '\n' | grep -i brewSlash commands not appearing
If slash commands don't appear in the autocomplete menu, restart Claude Code and verify the plugin is active:
# After restarting Claude Code, check plugin status
claude plugin listSee also
- •MCP Server — tool-based integration for Cursor, Windsurf, and other MCP clients
- •CLI Reference — all commands, flags, and scan configuration
- •Configuration — config file, ignore rules, and scan policies
- •Plugin source on GitHub — source code, issues, and contributions
Need help?
Ask a question in GitHub Discussions or check the troubleshooting guide.