Platform:

Screen Recording Requirements

Windows

Client Device Requirements

Bandwidth

Storage

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://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
fonts.googleapis.com443App UI fonts (Google Fonts)
fonts.gstatic.com443App UI fonts (Google Fonts static assets)
time.windows.comUDP 123NTP time sync
time.google.comUDP 123NTP time sync
time.cloudflare.comUDP 123NTP time sync
time.nist.govUDP 123NTP time sync

NTP note: The NTP entries above require outbound UDP on port 123. All four are public time servers — time.windows.com is typically already permitted in Windows environments as Windows itself uses it for system clock sync. Verify with your firewall team that outbound UDP 123 is not blocked.

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: Installation

The Machine-Wide installer deploys to C:\Program Files\... and requires admin privileges. Best for centralized deployment via SCCM, Intune, or Group Policy.

Installation steps:

  1. Download the Machine-Wide installer
  2. IT / MDM deployment: Deploy the MSI via GPO, SCCM, or Intune as SYSTEM — no additional steps required.
  3. Manual installation (end user): The installer must be run from an elevated PowerShell session to ensure all install steps complete correctly. Double-clicking the MSI is not recommended.
    1. Open PowerShell as Administrator — Start → search PowerShell → right-click → Run as administrator.
    2. Paste the path to the downloaded MSI file and copy the generated command:
Install command builder
  1. Follow the on-screen prompts.
  2. The app is now installed and will launch automatically when the user logs in.

User permissions and privileges required for the app to run

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

Command Purpose Privileges
PowerShell Process management (WMI Win32_Process) and monitor detection. Runs every 30 seconds. If WMI is restricted by policy, process management falls back to the native process runner. PowerShell execution allowed. WMI namespace root\cimv2 accessible.
schtasks (query / create / delete) Auto-launch scheduled task management. Read, create, and delete own scheduled tasks.
whoami Resolves current user SID to create the auto-launch scheduled task. If blocked, task creation fails silently and the app will not auto-launch on next login. Read current user identity.

The app also uses taskkill and reg query/delete on HKCU; these are normally allowed for the user and are not listed above.


Step 2: Security Policy — AppLocker, Antivirus, and Firewall

Endpoint security policies (AppLocker, EDR/AV, and Windows Firewall) can block or flag Level Screen Recorder components if they are not explicitly permitted. This section lists the minimum allowlist entries required.


AppLocker (Application Control)

Publisher rule (preferred):

Field Value
Publisher / O Ujwal Inc
Product name Level Screen Recorder
File description (any)
File version (any version or set a minimum)

If publisher-based rules are not available (unsigned environment or WDAC path-based policy), add a path rule for the install directory:

%ProgramFiles%\Level Screen Recorder\*

PowerShell: The MSI installer runs PowerShell internally during install, upgrade, and uninstall. Ensure %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe is allowed for SYSTEM.


Antivirus / EDR

Add the following as exclusion paths:

Path
%ProgramFiles%\Level Screen Recorder\   (i.e. C:\Program Files\Level Screen Recorder\)
%ProgramData%\Level Screen Recorder\   (i.e. C:\ProgramData\Level Screen Recorder\)
%APPDATA%\Level Screen Recorder\   (per-user app data, logs, and GStreamer plugin cache)

Individual executables (if path exclusions are not supported — use full paths):

Full path
%ProgramFiles%\Level Screen Recorder\Level Screen Recorder.exe
%ProgramFiles%\Level Screen Recorder\resources\watchdog\LevelScreenRecorderWatchdog.exe
%ProgramFiles%\Level Screen Recorder\resources\watchdog\LevelScreenRecorderWatchdogSvc.exe
%ProgramFiles%\Level Screen Recorder\resources\watchdog\LevelScreenRecorderProcessRunner.exe
%ProgramFiles%\Level Screen Recorder\resources\gstreamer\bin\gst-launch-1.0.exe
%ProgramFiles%\Level Screen Recorder\resources\gstreamer\bin\gst-plugin-scanner.exe
%ProgramFiles%\Level Screen Recorder\resources\gstreamer\bin\gst-inspect-1.0.exe

Note: gst-inspect-1.0.exe runs once on first launch to scan GStreamer plugins. Some EDR tools flag binary-scanning behaviour — the install directory exclusion above covers it.

Auto-updates: The watchdog service (running as LocalSystem) downloads and silently installs updates via msiexec /qn — no UAC prompt or user action required. This is expected behaviour and not a security incident.


Windows Firewall

Refer to the Firewall Whitelisting section for the full list of URLs and ports to allow.


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.

Client Device Requirements

Bandwidth

Storage

CPU and Memory Utilisation

Display Resolution

It is recommended that agents use the default screen resolution on their device. The app captures at native resolution and composites to 1280×720 (HIGH), 960×540 (MEDIUM), or 640×360 (LOW) depending on system conditions.


Server Requirements

Firewall Whitelisting

DNS / URL Port Reason for Whitelisting
prod-api.thelevel.ai443Level API authorization and login
screen-prod.thelevel.ai443Platform API (recording session, token refresh, audit logs)
storage.googleapis.com443Chunk uploads to Google Cloud Storage
http-intake.logs.datadoghq.com443Send app activity logs to Datadog
sr-releases.thelevel.ai443IWA update manifest and signed bundle downloads
www.cloudflare.com443Time synchronization — primary (HTTPS trace endpoint)
timeapi.io443Time synchronization — fallback (used if Cloudflare endpoint is unreachable)
Your Okta / SSO IdP domain443SSO authentication (if Okta SSO is configured for your organization)

Limited Availability Release

To roll out the app to a specific group of users before enabling it org-wide, use Google Admin Console's Org Unit (OU) hierarchy:

  1. Create a child Org Unit in Google Admin Console (e.g., Org > Screen Recorder Beta Testers).
  2. Move the target users/devices into that child OU.
  3. Apply the IWA policies only at this OU level — follow Step 1: Installation below, selecting this child OU at each step. This covers the Web Bundle ID, Update manifest URL, Web capabilities (screen recording origin), and force install + launch on login settings. Do not apply these policies at the parent OU level.

Only users in the child OU will receive the app. Once validated, you can move additional users into the OU or apply the same policies at a higher level for full rollout.


Installation and setup steps

Step 1: Installation

Note: If you are doing a limited rollout, perform these steps on the child Org Unit you created in the Limited Availability Release section above, not the parent OU.

  1. Go to admin.google.comDevicesChromeApps & extensions.

  2. Select the Users & browsers tab.

  3. Select the target Org Unit.

  4. Click +Add Isolated Web App.

  5. Fill in:

    Field Value
    Web bundle ID Provided by Level AI
    Update manifest URL Provided by Level AI
  6. Click Save.

  7. Go to DevicesChromeWeb capabilities.

  8. Select the same Org Unit.

  9. Click Add origin.

  10. Fill in:

Field Value
Origin Provided by Level AI
Screen recording Allowed
  1. Click Save.

  2. Go to DevicesChromeApps & extensionsUsers & browsers.

  3. Select the same Org Unit.

  4. Click the IWA entry for this app (the list shows the update manifest URL and bundle id; selecting it opens the details panel on the right).

  5. In the right-side panel, set Installation policy and Launch on login as below, then click Save.

Setting Value
Installation policy Force install + pin to ChromeOS taskbar
Launch on login Force launch and prevent closing

The panel also shows Web bundle ID and Update manifest URL; they must match the values above. You may see This app is unverified and may not work properly — that is expected for self-hosted IWAs on managed devices.

Under Launch on login, the console may warn that preventing IWAs from being closed might affect device speed and performance; that is normal for this setting.

  1. On a test Chromebook:

    1. Go to chrome://policy → click Reload policies.
    2. Confirm IsolatedWebAppInstallForceList shows the web bundle ID and update manifest URL.
    3. Sign out and sign back in. The app should open automatically.
    4. Verify the app is pinned to the ChromeOS taskbar.
    5. Try closing the app window — it should not close.

    Policy sync can take 5–30 minutes. Signing out and back in speeds it up.

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.