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

# Quickstart [5 min]

> Launch a Docker container with Chrome installed, connect to it remotely, and use it to fill out a form online

### 1. Clone repo

```bash theme={null}
git clone https://github.com/finic-ai/finic.git
```

### 2. Run the test script locally to make sure it works.

It will open a local browser and navigate to [this automation testing page](https://testpages.herokuapp.com/styled/basic-html-form-test.html),
then fill out the form with hard-coded data.

```bash theme={null}
python testscript.py
```

### 3. Launch the Chrome container

```bash theme={null}
sudo docker-compose up --build
```

### 4. Connect the test script to the container

Comment out this line:

```python testscript.py theme={null}
browser = p.chromium.launch(headless=False, slow_mo=500)
```

and uncomment this line:

```python testscript.py theme={null}
browser = p.chromium.connect_over_cdp("ws://localhost:8000/ws")
```

Then running the script again:

```bash theme={null}
python testscript.py
```

This is how you can toggle between local testing with a headful browser, to connecting your script to a deployed Chrome container in production.
In reality you'll probably want to deploy the Docker container to your cloud platform instead of running it on localhost.

## Next Steps

You can now modify the test script however you want, or add Finic to an existing web automation project by using `playwright.connect_over_cdp()` or `puppeteer.connect()`

<CodeGroup>
  ```python Playwright (Python) theme={null}
  from playwright.sync_api import sync_playwright

  playwright = sync_playwright().start()
  browser = playwright.chromium.connect_over_cdp("ws://browser.finic.io/?apikey=<your-finic-api-key>")    
  page = browser.new_page()
  await page.goto("https://github.com/finic-ai/finic")
  ```

  ```typescript Puppeteer (NodeJS) theme={null}
  import puppeteer from 'puppeteer-core';

  (async () => {
    const browser = await puppeteer.connect({
      browserWSEndpoint: 'ws://browser.finic.io/?apikey=<your-finic-api-key>'
    });
    const page = await browser.newPage();
    await page.goto('https://github.com/finic-ai/finic');
  })();

  ```
</CodeGroup>
