> ## Documentation Index
> Fetch the complete documentation index at: https://roe.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Run your first dead-code, duplicate, and health scan in two minutes.

Every roe command takes a path to a directory, a `.sln` file, or a `.csproj`
file, and defaults to the current directory. There's nothing to configure up
front — point roe at your solution and read the report.

<Steps>
  <Step title="Scan everything at once">
    ```bash theme={null}
    roe path/to/solution
    ```

    With no command, roe runs all three analyses and prints each report under
    its own section header — see [`roe check`](/commands/check). That's the
    fastest way to see where a codebase stands, and the steps below break down
    what each section is telling you.
  </Step>

  <Step title="Scan for dead code">
    ```bash theme={null}
    roe dead-code path/to/solution
    ```

    ```text theme={null}
    src/App/Services/LegacyExporter.cs (App)
          1:1  dead file      every declaration in this file is unused

    src/App/Billing/InvoiceService.cs (App)
        88:17  unused member  App.Billing.InvoiceService.RecalculateAll (private method)

    found 1 dead file · 0 unused types · 1 unused member — 3 project(s), 214 file(s), 2610 symbol(s) scanned in 74 ms
    ```

    Every finding is something roe believes is unreachable from your
    solution's [entry points](/concepts/entry-points) — safe to delete, or a
    false positive worth [suppressing](/suppressing-findings).
  </Step>

  <Step title="Scan for duplicated code">
    ```bash theme={null}
    roe dupes path/to/solution
    ```

    ```text theme={null}
    2 occurrences (105 tokens, 24 lines)
      src/App/Billing/PaymentService.cs:40:5-63:6
      src/App/Shipping/ShippingService.cs:38:5-61:6

    found 1 duplicate group · 48 duplicated lines — 1 project(s), 214 file(s) scanned in 61 ms
    ```

    By default only token-for-token identical blocks match; pass
    `--mode semantic` to also catch copies where variable names or numeric
    literals were changed.
  </Step>

  <Step title="Scan for complexity and coupling">
    ```bash theme={null}
    roe health path/to/solution
    ```

    ```text theme={null}
    src/App/Billing/InvoiceService.cs (App)
        88:17  App.Billing.InvoiceService.RecalculateAll
               cyclomatic 46/10 · cognitive 86/15 · 242/40 lines

    found 3 issues across 1 location in 1 file — 3 project(s), 214 file(s), 2610 symbol(s) scanned in 81 ms
    ```

    Each metric prints as `actual/threshold`, and the worst offenders come
    first. Add `--hotspots` to also rank the files that are both complex and
    frequently changed, read from git history.
  </Step>

  <Step title="Wire it into scripts or CI">
    Every command exits `0` when clean, `1` when it has findings to report,
    and `2` on error, and all support `--format json` for a stable,
    machine-readable report. A bare `roe .` exits `1` if any of the three
    analyses reports, so it works as a single gate. See
    [Exit codes](/reference/exit-codes) and
    [JSON output](/reference/json-output).
  </Step>

  <Step title="Tune out false positives">
    Mark individual findings with
    [inline suppression comments](/suppressing-findings), or set up a
    [`roe.json` config file](/configuration) to ignore whole directories,
    declare extra entry points, and pin your health thresholds so local runs
    and CI agree.
  </Step>
</Steps>
