Transparent terminal panels layered over a full web browser with DRM support. Run your shell on top of any streaming service — Netflix, YouTube, Twitch, or anything else.
Grab the latest installer for your platform — no build tools needed.
| Platform | Download | Notes |
|---|---|---|
| Windows | .exe installer |
NSIS wizard, auto-updates built in |
| macOS | .dmg installer |
Separate Intel and Apple Silicon builds |
After install, TermWatch checks for updates automatically. When one is available, a badge appears on the settings icon — updates are never downloaded without your consent.
| Feature | Description |
|---|---|
| Transparent terminals | Shell panels overlaid on a web browser — adjust opacity, fonts, colors, cursor style |
| Multiple layouts | 1x1, 1x2, 2x1, 2x2, 1x3 — cycle with a hotkey |
| Any shell | PowerShell, CMD, Git Bash, WSL, zsh, bash, fish — per-terminal selection |
| DRM streaming | Widevine support via CastLabs Electron — works with Netflix, Disney+, etc. |
| Video mode | Hide terminals, browse and watch with on-screen controls |
| Theater mode | Distraction-free — hide the controls bar entirely |
| Playback controls | Play/pause, seek, volume, time display — all from keyboard or UI |
| Bookmarks bar | Quick-access bookmarks for your favorite sites |
| Persistent sessions | Window position, layout, bookmarks, last URL — all restored on launch |
| Keyboard-driven | Shortcuts for everything — press ? to see them all |
| Auto-updates | Stable and beta channels with download progress |
┌─────────────────────────────────────┐
│ BaseWindow │
│ │
│ ┌───────────────────────────────┐ │
│ │ App View (top layer) │ │
│ │ Transparent background │ │
│ │ xterm.js terminal panels │ │
│ │ Controls, bookmarks, UI │ │
│ ├───────────────────────────────┤ │
│ │ Video View (bottom layer) │ │
│ │ Full web browser │ │
│ │ Widevine DRM │ │
│ │ Isolated session │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
Two WebContentsView layers stacked inside a frameless BaseWindow:
- Video view (bottom) — a full Chromium browser with DRM support, running in its own isolated session. Loads any website.
- App view (top) — transparent overlay with xterm.js terminals, playback controls, bookmarks bar, and settings. Communicates with shells via node-pty.
The views never talk directly — all communication routes through IPC in the main process.
| Shortcut | Action |
|---|---|
? |
Show all shortcuts |
Ctrl+Shift+, |
Open settings |
Escape |
Close modal / exit mode |
F11 |
Toggle fullscreen |
Ctrl+Shift+V |
Toggle video mode |
Ctrl+Shift+T |
Toggle theater mode |
Ctrl+Shift+Space |
Play / pause video |
Ctrl+Shift+1–4 |
Focus terminal 1–4 |
Ctrl+Shift+L |
Cycle layout |
Ctrl+Shift+R |
Restart all terminals |
Ctrl+Shift+↑/↓ |
Increase / decrease opacity |
Ctrl+Shift+B |
Toggle bookmarks bar |
Alt+←/→ |
Navigate back / forward |
git clone https://github.com/chrismdemian/termwatch.git
cd termwatch
npm install
npm startnpm start # Run the app
npm test # Unit + integration tests (Vitest)
npm run test:e2e # E2E tests (Playwright)
npm run lint # ESLint with security pluginsnpm run build:win # Windows NSIS installer
npm run build:mac # macOS DMG (universal binary)Tagged pushes trigger automated builds via GitHub Actions — see release.yml.
- Fork the repo and create a feature branch
- Make your changes
- Run
npm run lint(0 errors) andnpm test(all passing) - For UI changes, verify with
npm start - Open a pull request
See the full Architecture Decision Records for context on major technical choices.
TermWatch is an independent project — not endorsed by, affiliated with, or sponsored by any streaming service or content provider.
TermWatch does not bypass, circumvent, or interfere with DRM protections. It uses a legitimately licensed Widevine build. A valid subscription to any streaming service you access is required. Use with streaming services is at your own risk — some providers may consider overlay tools a violation of their Terms of Service.
Your terminal. Your stream. One window.



