Configuration is Optional
squirrelscan works out of the box with sensible defaults. You only need configuration when you want to customize behavior. Zero-config defaults:- Crawls up to 500 pages
- 100ms delay between requests
- Respects robots.txt
- Checks external links (cached 7 days)
- Runs all rules except AI-powered ones
- Console output format
Configuration System
squirrelscan has two separate configuration systems:1. Project Configuration (squirrel.toml)
What it controls:
- How the crawler behaves (limits, delays, patterns)
- Which audit rules run
- Output format defaults
- Per-rule options
2. CLI Settings (settings.json)
What it controls:
- Update channel (stable/beta)
- Auto-update preferences
- Notification settings
- Feedback email
Configuration Hierarchy
Settings are merged from multiple sources in this priority order:1. Project Config (squirrel.toml)
Priority: Highest (overrides everything)
Location: squirrelscan walks up from current directory to home directory looking for squirrel.toml
- Crawler settings
- Rule enable/disable
- Rule options
- Output format
- External link checking
2. Local CLI Settings (.squirrel/settings.json)
Priority: Medium
Location: .squirrel/settings.json in project directory
Create:
- CLI notifications (project-scoped)
- Update channel preferences (project-scoped)
3. User CLI Settings (~/.squirrel/settings.json)
Priority: Low
Location:
- Unix/macOS:
~/.squirrel/settings.json - Windows:
%LOCALAPPDATA%\squirrel\settings.json
- Update channel (stable/beta)
- Auto-update preferences
- Notification settings
- Feedback email
- Dismissed update versions
4. Built-in Defaults
Priority: Lowest Scope: All settings have defaultsProject Configuration
Project configuration is stored insquirrel.toml using TOML format.
Sections
| Section | Purpose | Learn More |
|---|---|---|
[project] | Project name, allowed domains | Project Settings |
[crawler] | Crawl limits, delays, patterns | Crawler Settings |
[rules] | Enable/disable audit rules | Rules Configuration |
[external_links] | External link checking | External Links |
[output] | Default output format | Output Settings |
[rule_options.*] | Per-rule configuration | Rule Options |
Quick Start
Create a config file:squirrel.toml with all available settings:
Example Configurations
See Configuration Examples for common use cases:- High-volume crawl
- Multi-domain project
- CI/CD pipeline
- Accessibility audit
- Performance audit
CLI Settings
CLI settings control squirrel’s own behavior (updates, notifications).User Settings
Global settings in~/.squirrel/settings.json:
Local Settings
Project-scoped settings in.squirrel/settings.json:
- Disable notifications for specific project
- Use beta channel for one project only
- Different settings for work vs personal projects
Managing Configuration
View Configuration
Show effective config (merged from all sources):Modify Configuration
Edit file directly:Validate Configuration
Check for errors:Configuration vs Settings
| Aspect | Project Config (squirrel.toml) | CLI Settings (settings.json) |
|---|---|---|
| Format | TOML | JSON |
| Purpose | Audit behavior | CLI behavior |
| Scope | Crawler, rules, output | Updates, notifications |
| Managed by | squirrel init, squirrel config | squirrel self settings |
| Location | Project directory (walks up) | ~/.squirrel/ or .squirrel/ |
| Examples | Max pages, rule patterns, delays | Update channel, notifications |
Next Steps
Project Settings
Project name and allowed domains
Crawler Settings
Crawl limits, delays, and patterns
Rules Configuration
Enable/disable audit rules
Examples
Common configuration examples
Related
- init - Create config file
- config - Manage config
- self settings - Manage CLI settings