Thanks to visit codestin.com
Credit goes to docs.squirrelscan.com

squirrelscan
GitHub

Quickstart

Install squirrelscan and run your first audit

Installation

curl -fsSL --connect-timeout 10 --max-time 120 https://install.squirrelscan.com | bash
iwr -useb https://install.squirrelscan.com/install.ps1 | iex

This downloads the binary to ~/.local/bin/squirrel and adds it to your PATH.

Install options

Set any of these before running the installer.

VariableWhat it does
SQUIRREL_VERSIONInstall a specific release instead of the newest one, for example v0.0.94.
SQUIRREL_CHANNELstable (default) or beta.
SQUIRREL_BIN_DIRWhere to put the squirrel symlink. Defaults to the first writable directory on your PATH, falling back to ~/.local/bin.
SQUIRREL_FORCE_MIRRORDownload from squirrelscan’s mirror instead of GitHub. See below.
NO_TELEMETRYAny 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 bash

The 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 | iex

If 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.com

Install the skills for autonomous workflows in Claude Code, Cursor, Codex, and any coding agent:

npx skills add squirrelscan/squirrelscan

Then run /audit-website or prompt your agent:

Use the audit-website skill to audit this site and fix all issues

Or pipe LLM-optimized output to any assistant:

squirrel audit example.com --format llm | claude

Log in to enrich audits with browser rendering, AI analysis, and shareable reports:

squirrel auth login
squirrel audit example.com

Run a local MCP server so agents call squirrelscan’s tools directly:

squirrel mcp

Run your first audit

Audit a website with a single command:

squirrel audit https://example.com

You’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

  1. Limit pages crawled

    For large sites, limit pages to get faster results:

    squirrel audit https://example.com -m 10
  2. Export to JSON

    Output machine-readable JSON for CI/CD or AI processing:

    squirrel audit https://example.com -f json -o report.json
  3. Generate HTML report

    Create a visual HTML report:

    squirrel audit https://example.com -f html -o report.html
  4. Fresh crawl

    Ignore cache and fetch all pages fresh:

    squirrel audit https://example.com --refresh
  5. Choose a coverage mode

    Pick depth or speed. quick is fast, local and free. surface audits one page per template. full is comprehensive:

    squirrel audit https://example.com -C quick

    The default is quick when you’re logged out and surface when you’re logged in.

  6. 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

FormatFlagUse Case
console(default)Human-readable terminal output
json-f jsonCI/CD, programmatic processing
html-f htmlVisual reports for sharing
markdown-f markdownDocumentation, GitHub
text-f textClean output for piping to LLMs
llm-f llmLLM optimized output
xml-f xmlXML output

Use with coding agents

squirrelscan is designed for coding agents. Two primary methods:

npx skills add squirrelscan/squirrelscan

Then use with Claude Code, Cursor, or any skill-compatible agent:

Use the audit-website skill to audit example.com and fix all issues

2. 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

Type to search…

↑↓ navigate openesc close