# Report a problem

> Report a bug, a slow run, a missed expectation or a missing feature from your editor through the docs MCP server: kinds, one-step consent, evidence from elide agent, and what is stored.

Your coding agent can report a problem to Elide through the [docs MCP server](https://elide.help/docs/mcp-docs). Nothing is sent until you
confirm.

## Kinds

| Kind | Use for | Evidence |
| --- | --- | --- |
| `bug` | Elide fails, crashes or gives a wrong result. | The command, its output, `elide agent diagnostics --json` |
| `perf` | Elide is slower than another runtime or an earlier Elide. | `elide agent perf --json` |
| `expectation` | "I expected Elide to do Y for X; it did Z." | The basis: a docs page or another runtime's behavior |
| `feature` | Elide lacks something you need. | What you would use it for |

The server's instructions ask your agent to notice these during normal work and offer to report them.

## Steps

1. `check_known_issue` looks for an existing issue.
2. `preview_report` strips secrets and personal data, checks for duplicates, lists missing evidence, and returns the
   preview with a confirm token. It sends nothing.
3. You confirm once.
4. `submit_report` sends the report and returns its id.
5. `report_status` tracks it; see [From report to fix](https://elide.help/docs/agentic-triage).

## Consent

| Client | What you see |
| --- | --- |
| Supports MCP elicitation | A one-click form, "Send this report to Elide", with an optional GitHub username for credit. |
| Other clients | The agent must show you the preview; your yes releases a confirm token that `submit_report` requires. |
| Headless runs (`claude -p`, `codex exec`) | These declare elicitation but answer the form themselves, so the agent shows you the preview and sends `preview_report`'s confirm token after your yes. |

A confirm token is valid for 15 minutes and only for the exact report previewed. Rate limits and quotas apply either
way.

Every confirmation also links Elide's Discord, https://elide.dev/discord, with a live count of members online.

## Evidence

A report needs only a kind, a title and a summary. Everything else is requested, not required: `preview_report` lists
what would help, and a report without it is still filed, marked as needing evidence. A problem with no working Elide
binary, such as a failed install, can still be reported. A submission that does not match `elide.report/1` at all is
accepted too: the parts that fit are kept, the title and summary are written from what was sent when needed, and the
original is attached to the issue.

The binary prints evidence and sends nothing. The agent pastes it into the report.

```bash
elide agent diagnostics --json
elide agent perf --json --baseline "node app.ts" -- elide run app.ts
elide agent perf --json --against 1.5.4 -- elide run app.ts
elide agent bug --kind expectation --json
```

1. `elide agent perf --json --baseline "node app.ts" -- elide run app.ts` prints an `elide.report/1` document.
2. Its `elide` block fills the report's version and platform, `context.command` the measured command, and `perf` the
   timings, baseline, ratio and machine.
3. The agent writes `title`, `summary` and `repro`, and submits with kind `perf`.

### `elide agent perf`

```bash
elide agent perf [--runs 10] [--warmup 3] [--baseline "<command>"] [--against <version>] [--json] -- <command>
```

| Flag | Default | Does |
| --- | --- | --- |
| `--runs N` | `10` | Measured runs. |
| `--warmup N` | `3` | Unmeasured runs before measuring. |
| `--baseline "<command>"` | none | Measures another command, such as another runtime, the same way. |
| `--against <version>` | none | Runs the same `elide` command with an installed Elide version. It never downloads. |
| `--json` | off | Prints an `elide.report/1` document instead of a table. |

`--baseline` and `--against` are exclusive. Times are in milliseconds; `ratio` is the Elide mean divided by the baseline
mean. On Linux, peak memory (`max_rss_mb`) never reads below the measuring `elide` process's own. For servers, measure
with a load generator such as `wrk` or `oha`.

### `elide agent bug`

`elide agent bug --kind bug|perf|expectation|feature --json` prints an `elide.report/1` skeleton: the Elide version and
platform filled, with empty `title`, `summary` and `repro` for the agent. `perf` adds a `perf` block and `expectation` an
`expectation` block with `expected`, `actual` and `basis`. Without `--json`, it prints a Markdown issue body.

## What is stored

| Data | Handling |
| --- | --- |
| Home directory paths | Replaced before storing |
| Tokens and keys | Removed before storing |
| Email addresses | Removed before storing |
| Your IP address | Stored only as a hash with a daily salt |
| GitHub username | Stored only if you give one, for credit |
| The report | Kept indefinitely |

Without an MCP client, file an issue at [elide-dev/elide](https://github.com/elide-dev/elide/issues) with the output of
`elide agent bug`.
