Platform:

Screen Recording Requirements [External-facing]

Windows

Client Device Requirements

Bandwidth

Storage

CPU and Memory Utilisation

Display Resolution

It is recommended that agents use the default screen resolution on their device.


Server Requirements

Firewall Whitelisting

DNS / URL Port Reason for Whitelisting
api-us3.pusher.com443Trigger start/stop recording events
wss://ws-us3.pusher.com443Trigger start/stop recording events
http-intake.logs.datadoghq.com443Send app activity logs to Datadog
prod-api.thelevel.ai443Level API authorization
screen-case.thelevel.ai443Start/stop recording controls
screen.thelevel.ai1935Stream recording to Level servers
https://screen-app.thelevel.ai443Network health checks
https://sr-releases.thelevel.ai443Auto-update downloads
https://screen-app-v3.thelevel.ai443App UI
https://sr-platform.thelevel.ai443Organization-specific configuration
https://launchdarkly.thelevel.ai443Feature flag configuration
https://stream.launchdarkly.com443Feature flag streaming updates
https://sdk.launchdarkly.com443Feature flag SDK access
https://events.launchdarkly.com443Feature flag event reporting
https://api.mixpanel.com443Analytics events
https://api-eu.mixpanel.com443Analytics events
https://api-in.mixpanel.com443Analytics events
storage.googleapis.com443Update binary download storage

For app versions <= 3.0.12, certain Optimizely URLs might also need to be whitelisted. For later versions, the list above is sufficient.

Operating System

Windows

GPU Requirements

Hardware

Note: CPU usage may vary from 10% to 30% depending on the number and resolution of monitors being recorded.

Fallback for Environments Without GPU

Using GDI screen capture (gdiscreencapsrc)

Benefits of GDI fallback

Tradeoffs of GDI fallback


Installation and setup steps

Step 1: Removing older app versions

Note: This script should be executed with admin privileges in PowerShell. Running it via MDM is recommended.

  1. Download file: cleanup-older-app-versions.ps1⬇ Download

  2. For enterprise rollout, run centrally in admin context on all endpoints:

    • GPO (Startup Script / domain path):
      • powershell.exe -ExecutionPolicy Bypass -File "\\domain\NETLOGON\LevelRecorder\cleanup-older-app-versions.ps1"
    • MDM (device script / local path):
      • powershell.exe -ExecutionPolicy Bypass -File "C:\ProgramData\LevelRecorder\cleanup-older-app-versions.ps1"
  3. If running manually on a single endpoint, open PowerShell as Administrator and run:

    • powershell.exe -ExecutionPolicy Bypass -File "<path>\cleanup-older-app-versions.ps1"
  4. After execution, Add or remove programs should not list any item matching "Level Screen Recorder".

Screenshot 2025-01-28 152014.png

  1. The status shown in the picture above confirms successful uninstallation of the old app, and the new app can now be safely installed.

Step 2: Installation

We offer two installation methodologies for Windows:


Installation type:

Machine-Wide Installation

Machine-Wide installation is an MSI-based deployment that installs software into a shared location (typically C:\Program Files or C:\Program Files (x86)) rather than an individual user profile. The application is then available to all users who sign in to that machine.

Key characteristics:

  • Requires admin privileges to install.
  • Best for centralized IT deployment using SCCM, Intune, or Group Policy.
  • Installs binaries once in a central location (one copy for all users).

Installation steps:

  1. Download the Machine-Wide installer: https://sr-releases.thelevel.ai/releases/stable/default?platform=windows&installerType=systemWide
  2. Deploy the MSI via GPO/SCCM/Intune or run the installer as administrator on the endpoint.
  3. Ensure users have the required privileges (whoami, schtasks) so the app can create the scheduled task automatically; if not, deploy it using Scheduled Task (Machine-Wide) below.

User permissions and privileges required for the app to run

The application runs in the user's context (both Machine-Wide and User-Profile). The following operations are used at runtime; endpoint policy (GPO/EDR/AppLocker) must allow them for the app to function fully.

Command Purpose Privileges
whoami (or PowerShell as fallback) Get current user SID to create the scheduled task (when not deployed via GPO/MDM). Read current user identity. If PowerShell is used as fallback: PowerShell execution allowed.
schtasks (query / create / delete) Check if keepalive task exists; create or delete the keepalive scheduled task. Read, create, and delete own scheduled tasks. Can be restricted by policy.
PowerShell Get user SID (fallback), enumerate processes (single-instance), get number of monitors. PowerShell execution allowed. If blocked by policy, app uses fallbacks (weaker duplicate detection; monitor count may be unavailable).

The app also uses taskkill (to terminate duplicate processes) and reg query/delete on HKCU (for DPI compatibility); these are normally allowed for the user and are not listed above.

Note: To reduce steps for the admin, ensure users have the above privileges so the app can create the scheduled task automatically. If these cannot be granted, follow the Scheduled Task section below to deploy the task (e.g. via GPO/MDM).

Scheduled Task (Machine-Wide)

What it is and purpose
A per-user Windows scheduled task named LevelScreenRecorder_KeepAlive that runs in the logged-in user's context. It ensures the Screen Recording app is started (or restarted) when the user logs on, when the workstation is unlocked, and on a 1-minute heartbeat. This provides auto-launch and crash recovery without requiring the user to start the app manually. Even when the app is installed Machine-Wide (Program Files), it runs in the user session, so this user-level task is required.

Provided files (Machine-Wide only):

Policy requirements
Allow scheduled task name LevelScreenRecorder_KeepAlive and launcher C:\Program Files\Level Screen Recorder\Level Screen Recorder.exe. The deploy script must run in user context at user logon (not as SYSTEM).

Deployment steps:

  1. Download the Machine-Wide script and XML template (links above).
  2. Copy both files to a shared path that target machines can read (e.g. \\domain\NETLOGON\LevelRecorder\).
  3. Run the script at user logon so the task is created for each user:
    • GPO: User Configuration → Windows Settings → Scripts → Logon → add:
      powershell.exe -NoProfile -ExecutionPolicy Bypass -File "\\domain\NETLOGON\LevelRecorder\deploy-keepalive-task-machinewide.ps1"
    • MDM: Use "Run script at user logon" (as the logged-in user):
      powershell.exe -NoProfile -ExecutionPolicy Bypass -File "<path-to-script>\deploy-keepalive-task-machinewide.ps1"
  4. The script creates the task LevelScreenRecorder_KeepAlive with triggers: logon, unlock, and every 1 minute (launcher: Machine-Wide exe).

User-Profile Installation

User-Profile installation installs the app into the active user directory (%LOCALAPPDATA%\LevelAI\) instead of Program Files. It is useful where local admin access is unavailable.

Key characteristics:

  • Usually does not require local admin for installation.
  • App is scoped to the user who installs it.
  • Can be centrally deployed via GPO/SCCM/Intune (user context).

Installation steps:

  1. Download the User-Profile installer: https://sr-releases.thelevel.ai/releases/stable/default?platform=windows&installerType=perUser
  2. Deploy via GPO/SCCM/Intune or run directly as that user.
  3. Ensure users have the required privileges (whoami, schtasks) so the app can create the scheduled task automatically; if not, deploy it using Scheduled Task (User-Profile) below.

User permissions and privileges required for the app to run

The application runs in the user's context (both Machine-Wide and User-Profile). The following operations are used at runtime; endpoint policy (GPO/EDR/AppLocker) must allow them for the app to function fully.

Command Purpose Privileges
whoami (or PowerShell as fallback) Get current user SID to create the scheduled task (when not deployed via GPO/MDM). Read current user identity. If PowerShell is used as fallback: PowerShell execution allowed.
schtasks (query / create / delete) Check if keepalive task exists; create or delete the keepalive scheduled task. Read, create, and delete own scheduled tasks. Can be restricted by policy.
PowerShell Get user SID (fallback), enumerate processes (single-instance), get number of monitors. PowerShell execution allowed. If blocked by policy, app uses fallbacks (weaker duplicate detection; monitor count may be unavailable).

The app also uses taskkill (to terminate duplicate processes) and reg query/delete on HKCU (for DPI compatibility); these are normally allowed for the user and are not listed above.

Note: To reduce steps for the admin, ensure users have the above privileges so the app can create the scheduled task automatically. If these cannot be granted, follow the Scheduled Task section below to deploy the task (e.g. via GPO/MDM).

Scheduled Task (User-Profile)

What it is and purpose
A per-user Windows scheduled task named LevelScreenRecorder_KeepAlive that runs in the logged-in user's context. It ensures the Screen Recording app is started (or restarted) when the user logs on, when the workstation is unlocked, and on a 1-minute heartbeat. This provides auto-launch and crash recovery without requiring the user to start the app manually.

Provided files (User-Profile only):

Policy requirements
Allow scheduled task name LevelScreenRecorder_KeepAlive and launcher %LOCALAPPDATA%\LevelAI\Update.exe. The deploy script must run in user context at user logon (not as SYSTEM).

Deployment steps:

  1. Download the User-Profile script and XML template (links above).
  2. Copy both files to a shared path that target machines can read (e.g. \\domain\NETLOGON\LevelRecorder\).
  3. Run the script at user logon so the task is created for each user:
    • GPO: User Configuration → Windows Settings → Scripts → Logon → add:
      powershell.exe -NoProfile -ExecutionPolicy Bypass -File "\\domain\NETLOGON\LevelRecorder\deploy-keepalive-task-userprofile.ps1"
    • MDM: Use "Run script at user logon" (as the logged-in user):
      powershell.exe -NoProfile -ExecutionPolicy Bypass -File "<path-to-script>\deploy-keepalive-task-userprofile.ps1"
  4. The script creates the task LevelScreenRecorder_KeepAlive with triggers: logon, unlock, and every 1 minute (launcher: User-Profile Update.exe).

Step 3: Launch the App

Note: Screenshots may differ slightly from the actual UI of the app.

  1. Organization name — After successful installation and launch, the application asks for the organization name (ask your admin if you do not know it). Example: for Level AI, use level.

  1. Login — Proceed to the login page and sign in with your credentials or use available SSO.

  1. Status / recording page — You should be greeted with a status page. It shows whether recording is currently on or off; the page reflects the current state.

Installation and setup steps

Step 1: Installation

  1. Navigate to this link and choose macOS in platform dropdown if not already selected, then click the download icon based on the Mac architecture.
  2. After the download, you should have a file named Level Screen Recorder x.x.x.dmg.
  3. Double click Level Screen Recorder x.x.x.dmg and drag Level Screen Recorder to the Applications folder.
  4. Open Level Screen Recorder from Applications. After this, the app launches automatically on system login.

Step 2: Launch the App

Note: Screenshots may differ slightly from the actual UI of the app.

  1. Organization name — After successful installation and launch, the application asks for the organization name (ask your admin if you do not know it). Example: for Level AI, use level.

  1. Login — Proceed to the login page and sign in with your credentials or use available SSO.

  1. Status / recording page — You should be greeted with a status page. It shows whether recording is currently on or off; the page reflects the current state.