This repository contains the SendRec browser extensions for Chrome/Chromium and Firefox.
Both extensions let you record your screen and upload recordings directly to SendRec or a self-hosted SendRec instance.
| Folder | Purpose |
|---|---|
sendrec-chrome-extension/ |
Chrome / Chromium extension built on Manifest V3 |
sendrec-firefox-extension/ |
Firefox extension built on Manifest V2 with Gecko settings |
- Screen recording
- Direct upload to SendRec using presigned URLs
- Support for hosted and self-hosted SendRec servers
- Configurable server URL and user credentials
- Popup UI for recording controls
- Options page for setup and defaults
| Area | Chrome / Chromium | Firefox |
|---|---|---|
| Minimum version | Chrome 116 | Firefox 140 |
| Manifest | MV3 | MV2 |
| Background model | Service worker + offscreen document | Background script |
| Install flow | Load unpacked in Developer Mode | Load temporary add-on or install unsigned .xpi in Developer Edition / ESR / Nightly |
| Tab capture | Uses tabCapture and offscreen permissions |
Uses Firefox-compatible background capture flow |
- Open
chrome://extensions/ - Enable Developer mode
- Click Load unpacked
- Select the
sendrec-chrome-extensionfolder - Open the extension settings and configure:
- Server URL
- Password
Temporary install:
- Open
about:debugging - Select This Firefox
- Click Load Temporary Add-on...
- Choose
sendrec-firefox-extension/manifest.json
Permanent local install for unsigned builds:
- Use Firefox Developer Edition, ESR, or Nightly
- Set
xpinstall.signatures.required = falseinabout:config - Package
sendrec-firefox-extensionas an.xpi - Install it from
about:addons
Each extension expects the same core settings:
- Server URL: SendRec cloud or your self-hosted instance
- Email: SendRec account email
- Password: Used to obtain a session token
- Default recording options: Source, webcam, microphone, and system audio preferences
The password is not stored directly. The extensions store a session token locally and refresh it when needed.
background/handles state, uploads, and extension lifecycle logicoffscreen/hosts the recording logic required by MV3popup/contains the recording controls UIoptions/contains the settings UI
background/handles recording, upload, and authenticationpopup/contains the recording controls UIoptions/contains the settings UIshared/contains shared theme logic
- There is no build step in this repository; both extensions are loaded directly from source.
- Version numbers and browser permissions are defined in each extension's
manifest.json. - Browser-specific behavior should be implemented inside the respective extension folder rather than trying to fully unify the code paths.
For browser-specific details, see:
