Quickstart
Install squirrelscan and run your first audit
Installation
curl -fsSL --connect-timeout 10 --max-time 120 https://install.squirrelscan.com | bashiwr -useb https://install.squirrelscan.com/install.ps1 | iexThis downloads the binary to ~/.local/bin/squirrel and adds it to your PATH.
Install options
Set any of these before running the installer.
| Variable | What it does |
|---|---|
SQUIRREL_VERSION | Install a specific release instead of the newest one, for example v0.0.94. |
SQUIRREL_CHANNEL | stable (default) or beta. |
SQUIRREL_BIN_DIR | Where to put the squirrel symlink. Defaults to the first writable directory on your PATH, falling back to ~/.local/bin. |
SQUIRREL_FORCE_MIRROR | Download from squirrelscan’s mirror instead of GitHub. See below. |
NO_TELEMETRY | Any non-empty value turns off the anonymous failure report the installer sends when it fails. |
If GitHub is blocked on your network
Release binaries live on GitHub, and a GitHub download redirects to release-assets.githubusercontent.com. Some networks cannot reach it, most commonly in mainland China. The installer handles this on its own: when a GitHub download fails it retries the same file from install.squirrelscan.com, which serves the identical bytes through squirrelscan’s own infrastructure. The checksum from the release manifest is verified either way, so the mirror is not a shortcut around the integrity check.
To skip GitHub from the start rather than waiting for it to time out:
curl -fsSL https://install.squirrelscan.com | SQUIRREL_FORCE_MIRROR=1 bashThe variable has to reach the shell that runs the script, so it goes on the right of the pipe.
$env:SQUIRREL_FORCE_MIRROR='1'; iwr -useb https://install.squirrelscan.com/install.ps1 | iexIf both hosts are unreachable, the installer prints the two URLs it tried. Allowlist either github.com or install.squirrelscan.com, or download the binary on a machine that can reach one of them and move it into place yourself. A host that answers with a sign-in page instead of the release files, which is what a captive portal or an intercepting proxy does, counts as unreachable and the installer moves on to the other one.
SQUIRREL_DOWNLOAD_ENDPOINT points the fallback at a different host if you mirror the releases yourself. Only its scheme, host and path appear in the installer’s anonymous failure report, so a URL carrying a token in its userinfo, query or fragment does not send that token anywhere.
If the install is killed at the last step
On a machine with very little free memory the kernel can kill squirrel self install before it finishes, which used to leave nothing installed. The installer now finishes the job itself: it lays the release out, links the binary, and runs it once to confirm it works. If even that run is killed, the machine cannot execute the binary at all, and the installer says so and points at the cloud dashboard as the way to audit without a local binary.
Four ways to run squirrelscan
Run audits directly with human-readable terminal output:
squirrel audit example.comInstall the skills for autonomous workflows in Claude Code, Cursor, Codex, and any coding agent:
npx skills add squirrelscan/squirrelscanThen run /audit-website or prompt your agent:
Use the audit-website skill to audit this site and fix all issuesOr pipe LLM-optimized output to any assistant:
squirrel audit example.com --format llm | claudeLog in to enrich audits with browser rendering, AI analysis, and shareable reports:
squirrel auth login
squirrel audit example.comRun a local MCP server so agents call squirrelscan’s tools directly:
squirrel mcpRun your first audit
Audit a website with a single command:
squirrel audit https://example.comYou’ll see output like:
▄█▀ ▄▀█ █ █ █ █▀▄ █▀▄ █▀▀ █ ▄█▀ ▄▀▀ ▄▀█ █▄ █
▀▄ █ █ █ █ █ ██▀ ██▀ █▀ █ ▀▄ █ █▀█ █ ▀█
█▄▀ ▀▀█ ▀▄▀ █ █ █ █ █ █▄▄ █▄▄ █▄▀ ▀▄▄ █ █ █ █
v0.0.84 • https://squirrelscan.com
────────────────────────────────────────────
Auditing https://example.com
Coverage surface · max 100 pages
Config defaults
Account [email protected] · 500 credits
Dashboard https://app.squirrelscan.com
✓ Audited 12 pages in 2.1s
──────────────────────────────────────────────────
SQUIRRELSCAN REPORT
https://example.com • 12 pages • 72/100 (C)
──────────────────────────────────────────────────
Category Breakdown:
--------------------------------------------------
Core SEO ███████░░░ 75%
Content ████████░░ 82%
Links █████████░ 91%
...
ISSUES
Core SEO (1 error, 3 warnings)
core/meta-description Meta Description (error)
✗ meta-description: Missing meta description
→ /about
→ /contact
core/og-tags Open Graph Tags (warning)
⚠ og-image: Missing og:image
→ /
Content (2 warnings)
content/word-count Word Count (warning)
⚠ word-count: Thin content: 150 words (min 300)
→ /landing
──────────────────────────────────────────────────
87 passed • 12 warnings • 3 failed
──────────────────────────────────────────────────Common options
Limit pages crawled
For large sites, limit pages to get faster results:
squirrel audit https://example.com -m 10Export to JSON
Output machine-readable JSON for CI/CD or AI processing:
squirrel audit https://example.com -f json -o report.jsonGenerate HTML report
Create a visual HTML report:
squirrel audit https://example.com -f html -o report.htmlFresh crawl
Ignore cache and fetch all pages fresh:
squirrel audit https://example.com --refreshChoose a coverage mode
Pick depth or speed.
quickis fast, local and free.surfaceaudits one page per template.fullis comprehensive:squirrel audit https://example.com -C quickThe default is
quickwhen you’re logged out andsurfacewhen you’re logged in.Run only some categories
Narrow the audit to the categories you care about right now.
squirrel audit https://example.com --rule-include ax,performance
Output formats
| Format | Flag | Use Case |
|---|---|---|
console | (default) | Human-readable terminal output |
json | -f json | CI/CD, programmatic processing |
html | -f html | Visual reports for sharing |
markdown | -f markdown | Documentation, GitHub |
text | -f text | Clean output for piping to LLMs |
llm | -f llm | LLM optimized output |
xml | -f xml | XML output |
Use with coding agents
squirrelscan is designed for coding agents. Two primary methods:
1. Install the skills (recommended)
npx skills add squirrelscan/squirrelscanThen use with Claude Code, Cursor, or any skill-compatible agent:
Use the audit-website skill to audit example.com and fix all issues2. Pipe output to a coding agent
# Audit and pipe directly to Claude
squirrel audit example.com --format llm | claude "analyze and prioritize fixes"The --format llm provides compact, token-optimized output designed specifically for coding agents.
Next steps
- Run
squirrel --helpfor all available commands - See Configuration to customize audit behavior
- Check CLI Reference for full audit options
- View the GitHub repo for updates