squirrelscan
GitHub

feedback

Send feedback to the squirrelscan team, from a terminal or from an agent

The feedback command sends feedback, bug reports, and feature requests straight to the squirrelscan team. Type it at the prompts, or pass it on the command line so an agent or a script can send it with no terminal at all.

Usage

squirrel feedback
squirrel feedback --category bug_report
squirrel feedback -m "Please add a flag that audits a list of URLs" --category feature_request
squirrel feedback The HTML report looks great
echo "The llm report format fits my agent's context nicely" | squirrel feedback --category what_worked --json

Options

OptionDescription
[text]The feedback text as plain words, the same as --message.
-m, --message <text>The feedback text. Sends without prompting. Given twice, each one is a paragraph.
--category <name>Feedback category: bug_report, feature_request, what_worked, confusing, missing_data, tool_ergonomics, or other
--email <address>The address the team can reply to. Without it, the saved address is used, then the email of the account you signed in with.
--run-id <id>The audit run the feedback is about.
--website-id <id>The website the feedback is about.
--jsonPrint the result as one JSON object on stdout. Never prompts.

From an agent or a script

When the text is on the command line (--message or plain words) or piped on stdin, squirrel feedback never prompts, so it runs fine with no terminal: in CI, in a batch job, or from a coding agent partway through a task.

squirrel feedback --category what_worked \
  -m "The fix and re-audit loop cleared a 40-page site in three passes" \
  --run-id run_abc123 --json

Piped text works the same way, several lines included:

cat notes.txt | squirrel feedback --category tool_ergonomics --json

A pipe that goes quiet for 5 seconds counts as finished, so a harness that leaves stdin open can’t hang the command. Text that starts with a dash needs the = form: --message="--format llm saves my agent a lot of tokens".

It still needs an email to send with. Pass --email, or it uses the address you last gave squirrel feedback, then the email of the account you signed in with (squirrel auth login). With none of those it stops and says so, rather than sending feedback nobody can answer. An address passed with --email here is not saved, so an agent’s address never becomes your default.

JSON output

With --json, stdout carries exactly one line and nothing else:

{"ok":true,"category":"bug_report","truncated":false}

truncated is true when the text ran past 5,000 characters and was cut to fit. A failure exits 1 and prints:

{"ok":false,"code":"submit_failed","error":"Failed to submit feedback: the API answered HTTP 503.","status":503,"fallback_url":"https://squirrelscan.com/feedback"}
codeMeaning
message_requiredNo text. Pass --message or pipe it: --json never prompts, even at a terminal.
message_too_shortUnder 5 characters.
invalid_categoryNot one of the categories above.
email_requiredNo --email, no saved email, and not signed in.
invalid_email--email is not an email address.
invalid_run_id, invalid_website_idBlank, or longer than 128 characters.
rate_limitedToo many submissions in a short time. Wait a few minutes.
submit_failedThe API refused it (status is the HTTP status) or could not be reached (status is 0).
unexpectedAnything else.

Every failure carries fallback_url, the web form, so an agent can hand it to you instead of losing the feedback. Without --json the same errors go to stderr and the exit code is the same.

From the MCP server

The local squirrel mcp server offers the same channel as a send_feedback tool, so an agent connected to it can send feedback without leaving the session.

Interactive prompts

On a terminal, with no --message and nothing piped, the command prompts you for:

  1. Email - Your email address, cached for future use. Enter reuses the saved address, or your signed-in account’s the first time. Skipped when --email is passed.
  2. Feedback - Your feedback message (minimum 5 characters)
  3. Category - An optional category (skipped when --category is passed; press Enter to skip)

Example session

$ squirrel feedback
Email: you@example.com
Feedback: Would love to see a PDF export format!

Category (optional):
  1) Bug report
  2) Feature request
  3) Something worked well
  4) Something was confusing
  5) Missing data in a report
  6) Tool ergonomics
  7) Other
Category [Enter to skip]: 2

✓ Thank you for your feedback!

Subsequent uses

Your email is cached, so you can press Enter to reuse it:

$ squirrel feedback
Email [you@example.com]:
Feedback: The HTML report looks great!

✓ Thank you for your feedback!

What to send

Bug reports

Include:

  • What you were doing
  • What you expected
  • What happened instead
  • Error messages if any
Bug: squirrel audit fails on localhost URLs
Expected: Should crawl localhost
Got: Error "Invalid URL"

Feature requests

Describe the feature and why it would be useful:

Feature request: Add XML sitemap export
Use case: Want to generate sitemap from crawl results

General feedback

Share your experience:

Loving the CLI speed! JSON export is perfect for CI/CD

Privacy

  • Your email is stored locally at ~/.squirrel/settings.json
  • Feedback is transmitted securely to squirrelscan servers
  • Your install ID is included (anonymous identifier)
  • Without --email, the reply address can be the email of the account you signed in with
  • --run-id and --website-id are sent only when you pass them
  • No crawl data or audit results are transmitted

Alternative: GitHub issues

For public bug reports and feature requests, you can also use GitHub:

Type to search…

↑↓ navigate↵ openesc close