Docs menu

// Reference

Send feedback

Report a bug, an idea or a question to SimForge from the CLI or Studio, see exactly what is sent before it goes, and what is never collected.

View as Markdown

When a SimForge command fails in a way its hint does not explain, or a page or skill is wrong, send us a ticket. It reaches the SimForge team directly; you do not need to be signed in.

sh
simforge feedback --attach-last-error --dry-run "maps pull failed right after login"
simforge feedback --attach-last-error "maps pull failed right after login"

The first line sends nothing: it prints the exact document the second one posts (wouldSend). Without a message, a terminal asks for one, shows the same preview and sends only after you type y.

FlagWhat it does
--kind bug|idea|questionWhat this is. Default: bug
--attach-last-errorAttach the last command's failure on this machine. On by default when the previous command failed in the last 24 hours
--no-attach-last-errorAttach no failure
--include-doctorAttach simforge doctor's checks
--email EMAILSigned out: where we may answer. Signed in, we answer your account
--dry-runPrint what would be sent and send nothing

The result is one JSON document with the ticket's id and status, like every other command. In Studio, open Help in the top bar and choose Send feedback.

For coding agents#

Every SimForge skill tells agents to report an unexpected failure or a wrong doc this way: run the --dry-run first, show you the preview, then send it. The skills pack and the CLI's root --help say the same.

What is sent#

Only what the preview shows:

  • Your message, after redaction.
  • The machine: CLI version and commit, runtime version (when installed), operating system, CPU architecture, GPU model, and which coding agent ran the command (claude-code, codex, cursor, other-agent or none).
  • The last failure (with --attach-last-error): the command and the names of the options it was given (never their values), the error code and reason, the exit code, the HTTP status and request id when a SimForge host answered, the map slug it was about, and when it failed. Every command records this on your machine only (last-run.json in the SimForge config directory), except feedback itself and a --dry-run, which writes nothing.
  • Doctor's checks (with --include-doctor): each check's id, status, summary and fix. Never a check's detail.
  • Who you are: your account and workspace when you are signed in or use an API key; otherwise the email you give, if any.

What is never sent#

File contents, environment variables, tokens and API keys, and paths outside the directory you run the command in. Before the preview is built, the CLI replaces anything that looks like a credential (sfk_… API keys, access tokens, Bearer … values, JWTs, cloud provider keys, the value of any token=, password= or apiKey: field, long random strings) with [redacted], and every path outside the working directory with [path]; a path inside it is shown relative (./scenario.json). The SimForge host runs the same credential check again before it stores a ticket.

Limits#

A machine sends at most 5 tickets an hour (feedback_rate_limited); the host also limits each account and, signed out, each network address (rate_limited). For a conversation instead of a ticket, ask on the SimForge Discord.