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

# Get Started with TestDino

> Set up TestDino and stream your first Playwright test run live in five minutes, from API key to verified results.

export const HowToSchema = ({name, description, steps = []}) => {
  const schema = {
    "@context": "https://schema.org",
    "@type": "HowTo",
    name,
    ...description ? {
      description
    } : {},
    step: steps.map(({name: stepName, text}, i) => ({
      "@type": "HowToStep",
      position: i + 1,
      name: stepName,
      text
    }))
  };
  return <script type="application/ld+json" dangerouslySetInnerHTML={{
    __html: JSON.stringify(schema)
  }} />;
};

<HowToSchema
  name="Set up TestDino and stream your first Playwright test run"
  description="Create a TestDino project, add an API key, install @testdino/playwright, and verify your first streamed test run."
  steps={[
{ name: "Create a project", text: "After signup and onboarding, click New Project to create your first project in TestDino." },
{ name: "Get your API key", text: "Go to Project Settings then API Keys and create a new key. Copy and save it securely." },
{ name: "Export your API key", text: "Store the key in the TESTDINO_TOKEN environment variable: export TESTDINO_TOKEN=your-api-key. Never hardcode the key in source or CI config." },
{ name: "Install the package", text: "Install the Node.js package with npm install @testdino/playwright." },
{ name: "Add TestDino to your Playwright config", text: "Add @testdino/playwright to the reporter array in playwright.config.ts or .js, keeping any existing entries." },
{ name: "Run your tests", text: "Run npx playwright test. Results stream to TestDino as the run executes. No upload step is needed." },
{ name: "Verify in TestDino", text: "Open Test Runs in your TestDino project. Your run appears at the top of the list with pass/fail counts, duration, and a link into the full report with traces and screenshots." },
]}
/>

Stream Playwright results, traces, screenshots, and videos to TestDino. Paste the AI prompt below into your coding agent, or follow the manual steps.

## Prerequisites

* A <a href="https://app.testdino.com" target="_blank" rel="noopener noreferrer">TestDino account <Icon icon="arrow-up-right-from-square" size={12} /></a>
* A Playwright project with tests (or the <a href="https://github.com/testdino-hq/TestDino-Example" target="_blank" rel="noopener noreferrer">TestDino Example Repository <Icon icon="arrow-up-right-from-square" size={12} /></a>)
* Node.js `>= 18` and `@playwright/test` `>= 1.52`
* A project API key from [Generate API Keys](/guides/generate-api-keys) (agents need `TESTDINO_TOKEN` set)

## Set up with an AI agent

Paste this into Cursor, Claude Code, or another coding assistant:

<Prompt description="Install @testdino/playwright and stream the first test run." actions={["copy", "cursor"]}>
  Integrate TestDino into this Playwright (Node.js) project so test results stream live via @testdino/playwright.

  **Prerequisites**

  * TestDino API key from [https://app.testdino.com](https://app.testdino.com) (Project Settings → API Keys)
  * Store the key in the environment variable TESTDINO\_TOKEN. Never hardcode it.

  **1. Install**

  ```bash theme={null}
  npm install @testdino/playwright
  ```

  **2. Add TestDino to playwright.config.ts|js|mjs, keeping any existing reporter entries:**

  ```typescript theme={null}
  import { defineConfig } from '@playwright/test';

  export default defineConfig({
    reporter: [
      ['@testdino/playwright', {
        token: process.env.TESTDINO_TOKEN,
        serverUrl: "https://reporter.testdino.com",
      }],
    ],
  });
  ```

  **3. Run the tests:**

  ```bash theme={null}
  export TESTDINO_TOKEN=your-api-key
  npx playwright test
  ```

  **Rules**

  * Read the token from process.env.TESTDINO\_TOKEN. Never hardcode or commit a real token.
  * Do not add a post-run upload step. Results stream during the run.

  Full docs: [https://docs.testdino.com/llms-full.txt](https://docs.testdino.com/llms-full.txt)
</Prompt>

After the agent finishes, open **Test Runs** in TestDino and confirm the run appears. MCP, docs grounding, and more prompts: [AI Onboarding](/ai-onboarding).

## Set up your first project

Follow these steps if you prefer to configure TestDino yourself.

<Steps>
  <Step title="Create a project">
    After signup and onboarding, click **New Project**.

    <img src="https://tdstorageus.blob.core.windows.net/public/docs/getting-started/getting-started/getting-started-create-project.webp" alt="TestDino new project creation screen with project name field" />
  </Step>

  <Step title="Get your API key">
    Go to **Project Settings → API Keys** and create a new key. Copy it once; it is shown only at creation. Full key options are in [Generate API Keys](/guides/generate-api-keys).

    <img src="https://tdstorageus.blob.core.windows.net/public/docs/getting-started/getting-started/getting-started-create-apikey.webp" alt="TestDino Project Settings API Keys page showing generated key with copy button" />
  </Step>

  <Step title="Export your API key">
    Store the key in `TESTDINO_TOKEN`:

    ```bash theme={null}
    export TESTDINO_TOKEN="your-api-key"
    ```

    <Note>
      Never hardcode the key in source. In CI, store it as a secret named `TESTDINO_TOKEN`.
    </Note>
  </Step>

  <Step title="Install the package">
    ```bash theme={null}
    npm install @testdino/playwright
    ```

    View the package on [npm](https://www.npmjs.com/package/@testdino/playwright).
  </Step>

  <Step title="Add TestDino to your Playwright config">
    Add `@testdino/playwright` to the `reporter` array. Keep any existing reporters you already use.

    ```typescript playwright.config.ts theme={null}
    import { defineConfig } from '@playwright/test';

    export default defineConfig({
      reporter: [
        ['@testdino/playwright', {
          token: process.env.TESTDINO_TOKEN,
          serverUrl: "https://reporter.testdino.com",
        }],
      ],
    });
    ```

    <Accordion title="Prefer not to edit your config?">
      Run `tdpw test` instead of `npx playwright test`:

      ```bash theme={null}
      npx tdpw test -t "$TESTDINO_TOKEN" --server-url https://reporter.testdino.com
      ```

      Playwright flags pass through, for example `npx tdpw test --project=chromium --shard=1/3`.
    </Accordion>
  </Step>

  <Step title="Run your tests">
    ```bash theme={null}
    npx playwright test
    ```

    Results stream during the run. No separate upload step.
  </Step>

  <Step title="Verify in TestDino">
    Open **Test Runs**. Your run appears at the top with pass/fail counts, duration, and links to traces and screenshots.

    <img src="https://tdstorageus.blob.core.windows.net/public/docs/getting-started/getting-started/getting-started-first-testrun.webp" alt="TestDino Test Runs page showing first test run" />

    <Note>
      No run showing up? Confirm `TESTDINO_TOKEN` is set and `@testdino/playwright` is in your `reporter` array. See [FAQs](/faqs) and [Troubleshooting](/guides/troubleshooting-playwright).
    </Note>
  </Step>
</Steps>

<CardGroup cols={2}>
  <Card title="CI Setup" icon="infinity" href="/guides/ci-setup-overview">
    Stream results from GitHub, GitLab, Azure DevOps, and more
  </Card>

  <Card title="Generate API Keys" icon="key" href="/guides/generate-api-keys">
    Create and store project API keys
  </Card>

  <Card title="TestDino MCP" icon="plug" href="/mcp/overview">
    Query test data from an AI assistant
  </Card>

  <Card title="Integrations" icon="puzzle-piece" href="/integrations/overview">
    Slack, Jira, GitHub, and more
  </Card>
</CardGroup>
