A Chrome extension that records any browser tab. Click to start, click to stop.
- Record any tab — capture video and audio from the tab you're on
- Switch tabs freely — the recording keeps going in the background
- Pick your quality — Low, Mid, or High
- Choose where to save — pick a folder, or let it download automatically
- Never lose a recording — if Chrome crashes, Randall recovers your footage on restart
- Clean filenames — files are named after the tab title with a timestamp
git clone https://github.com/datdao/randall.git
cd randall- Open
chrome://extensionsin Chrome - Enable Developer mode (top-right toggle)
- Click Load unpacked → select the
extension/folder - Pin Randall from the puzzle-piece menu
- Go to the tab you want to record
- Click the Randall icon → pick quality → hit Record this tab
- A red REC badge appears — browse normally, switch tabs, do your thing
- Click Randall again → Stop & Save
- Your
.webmfile is saved
Everything runs in Docker — no local Node.js needed.
make dev # launch Chrome with extension in isolated profile
make test # run tests in Docker
make test-watch # tests in watch mode
make lint # ESLint in Docker
make clean # remove temp Chrome profile- The popup sends
start/stopmessages to a background service worker - The service worker gets a
tabCapturestream and spins up an offscreen document - The offscreen document runs a
MediaRecorder, buffering chunks to IndexedDB every second - On stop, chunks become a WebM file — saved to your chosen folder or downloaded
- On crash/restart, unsaved chunks are recovered automatically
extension/
├── manifest.json Chrome Manifest V3 config
├── service-worker.js Recording orchestration + state
├── offscreen.html/js MediaRecorder + crash-safe buffering
├── popup.html/js/css UI controls
└── choose-folder.* Folder picker
test/
└── service-worker.test.js
Dockerfile / docker-compose.yml / Makefile
MIT
