Quickstart

From a project that already runs lynkeus cases to a report your team can open, in a few minutes.

1. Make a key

Sign in with Google or GitHub. You get an organisation of your own, or join the one that invited you. Under API keys, create a key: it is shown once.

2. Push a run

export LYNKEUS_REPORTS_URL=https://lynkeus.io
export LYNKEUS_REPORTS_KEY=lk_…
lynkeus case run --out run --screenshots --push

Add --video to film every case (kept on Team). A run you already have goes up with lynkeus report push run --project <name>.

3. In CI

- run: npx lynkeus case run --out run --screenshots --video --push
  env:
    LYNKEUS_REPORTS_URL: https://lynkeus.io
    LYNKEUS_REPORTS_KEY: ${{ secrets.LYNKEUS_REPORTS_KEY }}

The step prints the report's link, and which cases broke or were fixed since the run before; the run shows up under Runs, with its branch and commit. To leave all that on the pull request:

- run: npx lynkeus case run --out run --screenshots --video --push | tee lynkeus.log
- if: always() && github.event_name == 'pull_request'
  run: gh pr comment ${{ github.event.pull_request.number }} --body "$(grep -E '^(report:|newly failing|fixed since)' lynkeus.log)"
  env:
    GH_TOKEN: ${{ github.token }}

4. What the backend did

If your backend can export OpenTelemetry traces, run with --traces and start the backend with OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318. Each step of the report then lists the requests the app sent while it ran, and under each one the queries, jobs and calls out it set off.

In CI, run the backend the job tests (its image, a database and a cache as services), seeded for tests: no shared environment is needed, and no production data is involved.

Ask an AI about your runs

Claude, Claude Code, Cursor and other MCP clients can read your organisation's runs, cases and what the backend did, signed in as you. They can only read.

Claude:       Settings → Connectors → Add custom connector → https://lynkeus.io/mcp
Claude Code:  claude mcp add --transport http lynkeus https://lynkeus.io/mcp
Cursor:       "mcpServers": { "lynkeus": { "url": "https://lynkeus.io/mcp" } }

The first time, the client opens lynkeus to ask for your approval and which organisation it may read. Disconnect it any time under Members.

From the terminal

lynkeus report list              # the organisation's latest runs
lynkeus report flakes --project app   # cases that needed a retry or failed (Team)
lynkeus report plan --upgrade    # open checkout