> Meticulous records real user sessions from a web app and replays them against each commit to catch visual regressions.
>
> Full AI-readable docs index (complete project setup journey + every page as markdown): https://app.meticulous.ai/llms.txt

# Get started with Meticulous Recorder

Meticulous recorder is a tool for recording real user sessions. The recorder captures your users' actions and any network requests
(and responses) during their session. Please note that although plaintext passwords are redacted, the recorded network requests can
include authorization tokens and other headers -- you should therefore only add trusted users to your Meticulous organization.
You can either add the recorder to all environments or just internal non-production environments.

## 1. Create and connect your project

Sign up at [https://app.meticulous.ai/signup](https://app.meticulous.ai/signup). You will be prompted to create an organization and
project. Connect the project to its GitHub, GitLab, or Bitbucket repository before installing the recorder.

## 2. Install the Meticulous recorder

You can run `npx @alwaysmeticulous/cli onboard --project="<ORGANIZATION>/<PROJECT>"` from the connected repository to have
Claude Code or Codex prepare the recorder and CI changes, or install the recorder manually:

There are two ways to add the Meticulous recorder to your web application:
 1. [By inserting it as script tag](/docs/how-to/recorder-script#installation-instructions) **(recommended)**
 2. [By installing an NPM package](/docs/session-recording/recorder-npm-dependency#installation-instructions)

If possible, we recommend that you use the **script tag** as it is the only way to fully guarantee that the recorder
initializes before any other scripts execute, thereby ensuring Meticulous can capture all network responses
([learn more](/docs/how-to/ensure-recorder-captures-all-requests)).

For bundler-based setups such as Vite, rsbuild, and Nuxt, our script tag instructions use the `@alwaysmeticulous/recorder-plugin`
dev dependency to inject the script automatically at build time.

However, if it's not possible to template your HTML so that the script tag is only included in the environments where you
want to record sessions then you can use [the loader package instead](/docs/session-recording/recorder-npm-dependency#installation-instructions).
