# TestOwl Desktop App: Run Tests Locally

The **TestOwl Desktop App** is TestOwl running as an application on your computer. It's the same TestOwl you use in the browser — same account, projects, and tests — with two extra abilities that need access to your machine:

- **Recording** tests from a real browser.
- **Local runs**, which execute tests on your own computer.

:::info{title="What needs the Desktop App"}
Building and editing tests, running on the **Cloud**, [scheduling](/docs/running-and-results/schedules), and reading reports all work in the web version. Only **recording** and **Local** runs require you to be inside the Desktop App. On the web, the **Record** button and the **Local** run target are turned off, with a note that they're available in the desktop app.
:::

## Why use the Desktop App?

| | Local | Cloud |
| --- | --- | --- |
| Runs on | Your computer | TestOwl cloud infrastructure |
| Best for | Debugging with a visible browser, testing `localhost` or internal sites, and saving cloud execution quota | Team collaboration, scheduled and unattended runs, and running without keeping your computer on |
| Counts towards | Your **Local** execution pool | Your **Cloud** execution pool |

For more about choosing between them, see [Triggering a Run](/docs/running-and-results/triggering-a-run).

## Installing the Desktop App

The TestOwl Desktop App is available for:

- **macOS** — Intel and Apple Silicon
- **Windows** — x64 and ARM64
- **Linux** — x64 and ARM64 (AppImage)

Click **Download App** in the sidebar, or go to **https://testowl.ai/download**, and install the version for your system. All production installers are digitally signed to help verify their authenticity.

## Signing in

Sign in with the same TestOwl account you use in the browser — email and password, or Google, GitHub, or Microsoft single sign-on. Your projects, permissions, and plan are exactly the same as on the web. Desktop sign-in stays active when you restart the app.

## Recording

With the app open, go to **Home**, enter your application's URL, and click **Record**. TestOwl opens a browser, captures what you do, and shows the steps as you go. See [Recording a Test](/docs/building-tests/recording-a-test).

## How Local runs work

When you start a Local run from inside the app:

1. The app receives the run request.
2. The test executes in a browser on your machine — visible if **Headless** is off, hidden if it's on.
3. Screenshots, videos, logs, and results are captured locally.
4. Everything is uploaded automatically so it appears in the run's report, just like a Cloud run.

The same Test Cases, Environments, and settings are used whether a run is Local or Cloud.

:::info{title="Keep the app running"}
The Desktop App must stay open while a Local run is in progress. Closing it or shutting down your computer will interrupt the run. Running many environments at once needs more memory, because each one opens its own browser.
:::

### First-time setup

The first time you record or run locally, the app downloads the browser and video components it needs to your computer. This needs an internet connection and can take a minute, and it only happens once.

## Automatic updates

The Desktop App checks for updates in the background. When a new version has been downloaded, an update button appears in the top bar — click **Restart & Install** to apply it. Keeping the app up to date keeps it compatible with new TestOwl features.

## Security

The desktop app connects only to TestOwl, and runs tests only when you start a recording or a Local run. Credentials and Secrets are handled with TestOwl's normal protections, and Secret values are never shown in reports or logs.

## Troubleshooting

| Problem | What to try |
| --- | --- |
| **Record** or **Local** is disabled | You're using TestOwl in a web browser. Open the Desktop App instead. |
| Recording doesn't start | Make sure the app has an internet connection the first time, so it can download the browser it needs. |
| A Local run is stuck or disconnected | Check that the Desktop App is still open and your computer hasn't gone to sleep. |
| Video is missing from a Local run | The video component is downloaded the first time you run locally. Make sure the app had an internet connection then, and run again. |
| You can't record in the Sample Demo Project | Recording is turned off in the sample project. Switch to your own project. |

## Next steps

::::cardgrid
:::card{title="Triggering a Run" href="/docs/running-and-results/triggering-a-run"}
Learn how to start Local and Cloud test runs.
:::

:::card{title="Recording a Test" href="/docs/building-tests/recording-a-test"}
Record your first test.
:::

:::card{title="Reading Reports" href="/docs/running-and-results/reports"}
Review execution results, screenshots, videos, and logs.
:::
::::
