# 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

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`.
