[project] section configures project-level metadata and multi-domain crawling.
Configuration
Options
name
Type: string
Default: Current directory name
Required: No
Project name used for identifying crawls of local URLs (localhost, 127.0.0.1, local IPs).
When crawling local addresses, squirrelscan needs a project name to organize stored data. If not specified, it uses the current working directory name.
Examples:
Explicit project name:
domains
Type: string[]
Default: [] (empty array = seed domain only)
Required: No
Allowed domains for crawling. When empty, only the seed URL’s domain is crawled.
Subdomain Wildcards:
Setting domains = ["example.com"] automatically allows all subdomains:
example.com✓www.example.com✓blog.example.com✓api.example.com✓docs.example.com✓
example.org✗ (different TLD)test-example.com✗ (not a subdomain)
Examples
Single Domain (Default)
Crawl only the seed domain and its subdomains:squirrel audit https://example.com crawls:
https://example.com✓https://www.example.com✓ (subdomain)- Internal links to
https://blog.example.com✗ (not followed without config)
Multi-Domain Site
Allow main site plus specific subdomains:squirrel audit https://example.com crawls:
https://example.com✓https://www.example.com✓https://blog.example.com✓https://docs.example.com✓https://api.example.com✓
Multiple Root Domains
Crawl multiple distinct domains (rare):include patterns in the crawler section instead.
Local Development
For local projects:Domain Matching Rules
Subdomain Matching
Domain"example.com" matches:
| URL | Match | Reason |
|---|---|---|
https://example.com | ✓ | Exact match |
https://www.example.com | ✓ | Subdomain |
https://api.example.com | ✓ | Subdomain |
https://blog.example.com | ✓ | Subdomain |
https://docs.example.com | ✓ | Subdomain |
https://test.blog.example.com | ✓ | Nested subdomain |
https://example.org | ✗ | Different TLD |
https://exampleXcom | ✗ | Not a domain |
Port Handling
Ports are ignored for matching:http://localhost:3000✓http://localhost:8080✓http://localhost✓
Protocol Handling
Protocols (http/https) are ignored for matching:http://example.com✓https://example.com✓
When to Use domains vs include
Use domains when:
You want to crawl an entire domain and all its subdomains:
*.example.com.
Use include when:
You want fine-grained URL pattern control:
Interaction with Crawler Settings
Priority
If bothdomains and include are set, include takes precedence:
/blog/** URLs, even if domains is set.
Recommendation
For most sites, leavedomains empty and use include/exclude for fine control:
Data Storage
Project data is stored at:Complete Example
squirrel audit https://example.com:
- Crawls
example.comand all subdomains - Skips
/admin/*and/api/*paths - Stops at 200 pages
- Stores data in
~/.squirrel/projects/example.com/
Related
- Crawler Settings - URL patterns, include/exclude
- Configuration Overview - Full config system
- init - Create config file