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

# Quickstart

> Add the Manifest SDK to your app and see your first requests in the dashboard.

<Note>
  Your app needs Python 3.10 or later, Node 22 or later, or PHP 8.2 or later.
  The SDK runs in your server code, not in the browser.
</Note>

<Steps>
  <Step title="Project creation">
    Open [dashboard.manifest.build](https://dashboard.manifest.build). On a new
    account, the project form opens by itself. On an existing account, click
    **New project**. Enter a project name, then click **Continue** on your first
    project, or **Create project** on the next ones.

    The setup screen shows your project key only once. Copy it now.

    <img src="https://mintcdn.com/manifest-selfhealing/g5CSdRlvCHRj16cJ/images/create-project.gif?s=d434466768e641924e7fa838aba4bf42" alt="The project form with a field for the project name." width="1808" height="1080" data-path="images/create-project.gif" />

    <Tip>
      **Copy prompt**, under Set up with a prompt, gives your coding agent the
      install steps.
    </Tip>
  </Step>

  <Step title="Installation" id="installation">
    Pick your runtime. Each tab installs Manifest, starts it before your first API
    request, and gives it your project key.

    <Tabs>
      <Tab title="Python" id="python" icon="https://mintcdn.com/manifest-selfhealing/9Fx9YUdkmXypAXXe/images/stacks/python.svg?fit=max&auto=format&n=9Fx9YUdkmXypAXXe&q=85&s=4576dbb049be33fddf08fd3d245a2e2a" width="110" height="110" data-path="images/stacks/python.svg">
        Install the SDK:

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        pip install mnfst
        ```

        Add these lines at the top of the file that starts your app:

        ```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
        from mnfst import manifest

        manifest()
        ```

        Set your key in the environment of your app:

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        export MNFST_KEY=your-project-key
        ```

        A `.env` file works only if you call `load_dotenv()` before `manifest()`.
      </Tab>

      <Tab title="Node" id="node" icon="https://mintcdn.com/manifest-selfhealing/9Fx9YUdkmXypAXXe/images/stacks/nodejs.svg?fit=max&auto=format&n=9Fx9YUdkmXypAXXe&q=85&s=e28f261532dda55204fbd77e8273a5e5" width="800" height="800" data-path="images/stacks/nodejs.svg">
        Install the SDK:

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        npm install manifest
        ```

        Add these lines as the first import of the file that starts your server:

        ```js theme={"theme":{"light":"github-light","dark":"github-dark"}}
        import { manifest } from 'manifest';

        manifest();
        ```

        Set your key in the environment of your app:

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        export MNFST_KEY=your-project-key
        ```

        A `.env` file works only if you start your app with `node --env-file=.env`.
      </Tab>

      <Tab title="PHP" id="php" icon="https://mintcdn.com/manifest-selfhealing/9Fx9YUdkmXypAXXe/images/stacks/php.svg?fit=max&auto=format&n=9Fx9YUdkmXypAXXe&q=85&s=0df6f6d11dff52e977db8a02ea6c214e" width="128" height="128" data-path="images/stacks/php.svg">
        Install the `opentelemetry` extension and the SDK. Without the extension, the
        SDK sees none of your API requests.

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        pecl install opentelemetry
        composer require mnfst/manifest-php
        ```

        Add this line to `php.ini` or to your php-fpm pool configuration, then
        restart php-fpm:

        ```ini theme={"theme":{"light":"github-light","dark":"github-dark"}}
        auto_prepend_file = vendor/mnfst/manifest-php/prepend.php
        ```

        Set `MNFST_KEY` in the environment of your server. `auto_prepend_file` runs
        before Laravel or Symfony load `.env`, so a `.env` file does not work here.
        The [Laravel setup](/install#laravel) reads the key from `.env` instead.
      </Tab>

      <Tab title="n8n" id="n8n" icon="https://mintcdn.com/manifest-selfhealing/9Fx9YUdkmXypAXXe/images/stacks/n8n.svg?fit=max&auto=format&n=9Fx9YUdkmXypAXXe&q=85&s=b35b8c4feee4b841b8998522609d8030" width="16" height="16" data-path="images/stacks/n8n.svg">
        Manifest runs only in a self-hosted n8n with Docker Compose. Run the steps
        in this order:

        1. Install the SDK from the folder of your `docker-compose.yml`:
           ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
           docker compose exec n8n npm install --prefix /home/node/.n8n/manifest manifest
           ```
        2. Add these two lines to the `environment` of your n8n service, and of every
           worker service in queue mode:
           ```yaml theme={"theme":{"light":"github-light","dark":"github-dark"}}
           MNFST_KEY: your-project-key
           NODE_OPTIONS: --require /home/node/.n8n/manifest/node_modules/manifest/dist/register.cjs
           ```
        3. Restart n8n:
           ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
           docker compose up -d
           ```
      </Tab>

      <Tab title="Hermes" id="hermes" icon="https://mintcdn.com/manifest-selfhealing/9Fx9YUdkmXypAXXe/images/stacks/hermes.svg?fit=max&auto=format&n=9Fx9YUdkmXypAXXe&q=85&s=46ce04b0018d12230439915c31b40748" width="24" height="24" data-path="images/stacks/hermes.svg">
        Update Hermes, install and enable the Manifest plugin, and store your project
        key:

        ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
        hermes update
        hermes plugins install mnfst/manifest-hermes
        hermes plugins enable manifest
        hermes config set MNFST_KEY your-project-key
        ```

        Then start a new Hermes session. If you run the Hermes gateway, restart it
        with `hermes gateway restart`.
      </Tab>
    </Tabs>

    [Install](/install) covers the other ways to start Manifest: before any of
    your code, in Next.js and in Laravel.
  </Step>

  <Step title="First requests">
    Restart your app. The setup screen shows "Connected. Waiting for a failing request". With Hermes, the setup screen stays on "Waiting for your first request".

    At the first [recoverable request](/glossary#recoverable-request), the setup
    screen turns into the [Overview](/dashboard#overview).

    If the screen does not change, see [Check your install](/install#check-your-install).
  </Step>
</Steps>
