Record your screen. Keep it local.
Install from the Chrome Web Store · Live website · Privacy policy
Recordock is a privacy-focused screen recorder for Chrome. It can capture a browser tab, application window, or monitor, optionally include available source audio, preview the completed recording, and save it locally as a WebM file.
The repository contains:
- A Manifest V3 Chrome extension
- A local browser-based screen recorder
- A public landing page
- Automated tests and technical documentation
0.1.0
Recordock is published on the Chrome Web Store and supports the complete local recording workflow without requiring an account, backend, or cloud-storage service.
Install Recordock from the Chrome Web Store
Recordock is being developed with free and premium product tiers.
This public repository contains the free version of Recordock. Selected advanced capabilities may require a Recordock Premium subscription in future releases.
Premium features, subscription services, payment handling, entitlement verification, and other proprietary components will be maintained separately and will not be included in this public repository.
Install the published extension directly from the Chrome Web Store:
Developers can also build the extension locally and load the generated extension/dist directory through chrome://extensions.
- Record a browser tab
- Record an application window
- Record a complete monitor
- Optionally request tab or system audio
- Continue recording after the popup closes
- Display recording status and elapsed time
- Stop from the popup or Chrome’s native sharing controls
- Preserve the latest recording locally
- Preview recordings inside the popup
- Open an expanded preview window
- Download recordings as WebM files
- Record again without restarting the extension
The landing page also includes a local web recorder that can:
- Capture a browser tab, window, or monitor
- Optionally request available screen audio
- Preview the completed recording
- Download the recording locally
- Operate without an account or backend
Unlike the Chrome extension, the browser recorder requires the landing-page tab to remain open while recording.
Recordock is designed around local processing.
- Recordings are not automatically uploaded
- No Recordock backend receives the video
- No user account is required
- No cloud-storage account is required
- No recording analytics are collected
- Downloads are initiated by the user
- Recording files remain under the user's control
The Chrome extension stores the latest completed recording locally in IndexedDB so it can be previewed and downloaded.
The extension separates the user interface from the recording engine.
Popup
│
│ Chrome runtime messages
▼
Service worker
│
│ Creates and coordinates
▼
Offscreen document
│
│ getDisplayMedia + MediaRecorder
▼
Local WebM recording
│
├── IndexedDB blob storage
└── chrome.storage.session state
The popup allows the user to:
- Choose whether to request screen audio
- Start and stop recordings
- View the active timer
- Preview the latest completed recording
- Download or expand the preview
The Manifest V3 service worker coordinates:
- Popup messages
- Offscreen-document creation
- Recording commands
- Extension badge state
- Recording-state synchronization
The offscreen document owns the long-running browser media APIs:
navigator.mediaDevices.getDisplayMediaMediaRecorder- Media-stream track lifecycle
- Recording completion
- Blob creation
This allows recording to continue after the extension popup closes.
Recordock uses:
chrome.storage.sessionfor lightweight recording state- IndexedDB for the latest completed recording blob
- React
- TypeScript
- Vite
- Manifest V3
- Chrome Extensions API
- Media Capture and Streams API
- MediaRecorder API
- IndexedDB
- Vitest
- React Testing Library
- Oxlint
- React
- TypeScript
- Vite
- Media Capture and Streams API
- MediaRecorder API
recordock/
├── brand-assets/
│ └── Recordock visual assets
│
├── docs/
│ └── Technical and privacy documentation
│
├── extension/
│ ├── public/
│ │ ├── icons/
│ │ └── manifest.json
│ │
│ ├── src/
│ │ ├── offscreen/
│ │ ├── popup/
│ │ ├── preview/
│ │ ├── storage/
│ │ ├── tests/
│ │ ├── types/
│ │ ├── utils/
│ │ ├── App.tsx
│ │ └── index.css
│ │
│ └── package.json
│
├── landing-page/
│ ├── public/
│ ├── src/
│ └── package.json
│
└── README.md
- Node.js
- npm
- Google Chrome version 116 or later
cd extension
npm installnpm run validateThe validation command runs:
Lint
Tests
Production build
The current automated suite contains tests for:
- Popup recording states
- Audio-option behavior
- Recording preview controls
- IndexedDB recording storage
- Duration formatting
- File-size formatting
- Recording filename generation
npm run build-
Open:
chrome://extensions -
Enable Developer mode.
-
Select Load unpacked.
-
Choose:
recordock/extension/dist -
Pin Recordock to the Chrome toolbar.
After making code changes, rebuild the extension and click Reload on the Chrome extensions page.
-
Open the Recordock popup.
-
Keep Screen audio enabled.
-
Click Start Recording.
-
Choose a browser tab that is playing audio.
-
Enable Chrome’s Share tab audio option.
-
Start sharing.
-
Reopen Recordock.
-
Stop the recording.
-
Confirm that the preview displays:
Screen audio included
-
Disable Screen audio.
-
Start a recording.
-
Select a source.
-
Stop the recording.
-
Confirm that the preview displays:
Video only
Verify that:
- Recording continues after the popup closes
- The elapsed timer restores when the popup reopens
- Chrome’s native Stop sharing action completes the recording
- The preview loads
- Download works
- Expanded preview works
- Record Again works
- No service-worker or popup errors appear
cd landing-page
npm install
npm run devOpen the local URL printed by Vite.
npm run lint
npm run buildThe deployed landing page must use HTTPS for browser screen-capture functionality.
Ready to record · Recording in progress · Recording completed
- Chrome 116 or later is required
- Recordings are exported only as WebM
- Microphone capture is not yet available
- Camera overlay is not yet available
- Only the latest completed extension recording is retained
- Available source audio depends on the selected source and Chrome’s sharing options
- Recordings are not synchronized between devices
- There is no cloud backup
- The browser recorder stops if its page is closed or refreshed
Planned future work includes:
- Microphone recording
- Screen-audio and microphone mixing
- Movable camera overlay
- Recording-resolution controls
- Recording-quality controls
- Improved recording history
- Additional export formats
- User accounts
- Recordock Premium subscriptions
- Premium feature-access controls
- Secure entitlement verification
- Expanded automated test coverage
The exact division between free and premium capabilities will be finalized before the commercial release.
Recordock preserves completed development branches instead of deleting them. This keeps the repository’s implementation history visible.
Key branches include:
project-foundation
recording-engine
recording-controls
audio-capture
testing-documentation
landing-page
popup-theme
landing-page-recorder
extension-lime-gray-theme
expanded-preview-theme
repository-documentation
The main branch contains the integrated current version.
- Chrome Web Store: https://chromewebstore.google.com/detail/lcnalkobdoddfeobfgpdoekheigmcgob
- Website: https://recordock.vercel.app/
- Privacy policy: https://recordock.vercel.app/privacy.html
- GitHub: https://github.com/jayasuryapazhani/recordock
- Support: https://github.com/jayasuryapazhani/recordock/issues
- Releases: https://github.com/jayasuryapazhani/recordock/releases
Copyright © 2026 Jayasurya Pazhani. All rights reserved.
This repository is publicly viewable for reference and portfolio purposes. No license is granted to copy, modify, redistribute, sublicense, sell, or commercially use this software without explicit written permission from the copyright owner, except where otherwise permitted by applicable law.
Built by Jayasurya Pazhani.




