🎬 ScreenCapture Pro
ScreenCapture Pro is a modern, high-performance desktop screen recording and screenshot suite for Windows. Engineered with a zero-memory streaming architecture, low-latency WASAPI loopback audio, native Win32/x64 assembly optimizations, customizable hotkeys, interactive region snipping, and a sleek dark/light theme GUI.
✨ Key Features
- 🖥️ Full-Screen & Multi-Monitor Support: Seamless recording across single displays, multi-monitor setups, or virtual desktop workspaces.
- ✂️ Interactive Region Selector & Snipping Tool: Real-time visual region selection with darkened overlay, pixel dimensions HUD, aspect ratio guides, and dedicated snipping mode (
Shift+F11). - 📋 Native Windows Clipboard Integration (
CF_DIB): Instantly auto-copies snips and screenshots directly to the system clipboard for immediateCtrl+Vpaste into Telegram, Discord, Slack, Word, or browsers. Includes 1-click "В буфер" andCtrl+Cin the gallery. - 🔊 System Audio Capture (WASAPI Loopback): Crystal-clear internal sound recording capturing speakers and headphones without external virtual cables.
- 🎤 Microphone & Multi-Source Audio: Record voice commentary independently or mixed synchronously with system audio.
- 💾 Zero-Memory Direct-to-Disk Streaming: Frames are encoded directly to disk via OpenCV/native pipes without ballooning RAM usage.
- ⏸️ Synchronous Pause & Resume: Instant pause and continuation keeping audio and video streams in lockstep.
- 🖱️ Hardware Cursor Rendering & Halo Highlight: Fast mouse pointer tracking with an optional translucent glowing halo for presentations and tutorials.
- 🎯 Mouse Click Ripple HUD: Real-time visual animated ripple circles on left and right mouse clicks with customizable colors for software demos.
- 🎞️ Direct GIF Recording & 2-Pass Palette Exporter: Create lightweight, crystal-clear animated GIFs using two-pass FFmpeg palette generation (
palettegen+paletteuse), perfect for GitHub READMEs and bug reports. - 📸 Instant High-Res Screenshots & Configurable Formats: Capture fullscreen or region snapshots in PNG (lossless), JPG (compact), or BMP (uncompressed) in one keystroke (
F11). - 📐 Instant Region Selection Hotkey (
F2): PressF2from anywhere to trigger interactive region selection without touching the mouse on the UI. - 🎛️ Floating Mini-Toolbar Widget: Compact, draggable on-screen controller during active recording with live duration timer and quick-action buttons.
- ⏱️ Animated Countdown (3.. 2.. 1..): Clean pre-recording visual countdown overlay.
- 📁 Integrated Media Gallery & Manager: In-app viewer for recorded videos, GIFs, and screenshots, instant playback in default media player, folder reveal, clipboard copying (
Ctrl+C), and 1-click GIF conversion. - 🎨 Modern Themed Interface: Customizable dark and light palettes powered by
ttkbootstrap(Darkly, Superhero, Solar, Cyborg, Cosmo, Flatly, Minty). - ⚙️ Configurable Encoding: Adjustable framerates (15, 24, 30, 60 FPS), screenshot formats (PNG, JPG, BMP), audio bitrates (128k–320k), container formats (MP4, AVI, MKV, GIF), and custom hotkeys.
⌨️ Default Hotkeys
| Hotkey | Action | Description |
|---|---|---|
F2 |
Select Region | Opens interactive region selection overlay directly |
F5 |
Start Recording | Begins screen capture (with animated 3..2..1 countdown) |
F6 |
Pause / Resume | Instantly toggles recording state without dropping sync |
F10 |
Stop & Save | Concludes capture, finalizes file headers, and opens gallery |
F11 |
Quick Screenshot | Captures active display/region to PNG/JPG/BMP immediately |
Shift+F11 |
Interactive Snip | Interactive region snipping with crosshair & instant clipboard copy |
ESC |
Cancel | Exits region selection overlay |
(All hotkeys are rebindable in the Settings tab)
📁 Clean Architecture
screenvideo/
├── src/
│ ├── core/ # Core engine independent of UI
│ │ ├── clipboard.py # Native Win32 CF_DIB clipboard integration
│ │ ├── config.py # Persistent JSON settings & state
│ │ ├── cursor.py # Fast pointer capture & halo renderer
│ │ ├── gif.py # 2-pass animated GIF palette generator
│ │ ├── history.py # Media catalog & metadata storage
│ │ ├── hotkeys.py # Safe global low-level keyboard listener
│ │ ├── monitors.py # Multi-monitor enumeration & geometry
│ │ ├── recorder.py # Multi-threaded FPS-locked video writer
│ │ └── screenshot.py # High-performance PNG snapshot engine
│ ├── ui/ # Presentation layer (ttkbootstrap)
│ │ ├── views/ # Functional views
│ │ │ ├── record_view.py # Main capture & telemetry control
│ │ │ ├── history_view.py # Gallery of saved captures
│ │ │ └── settings_view.py # Encoder & audio preferences
│ │ ├── app.py # Main application coordinator
│ │ ├── countdown.py # Transparent overlay countdown
│ │ ├── floating_bar.py # Draggable mini control widget
│ │ ├── region_selector.py # Visual interactive snipping overlay
│ │ └── theme.py # Typography, palette & styling tokens
│ └── utils/ # System helpers & formatting
│ ├── formatting.py # Human-readable time, bitrate & sizes
│ └── system.py # High-DPI scaling & explorer integration
├── asm/ # Native x64 assembly performance routines
├── tests/ # Automated unit and integration tests
│ └── test_core.py
├── main.py # Application bootstrap entry point
├── pyproject.toml # Modern package metadata & ruff config
└── LICENSE # Official MIT License
🚀 Quick Start
Prerequisites
- Windows 10 / 11 (64-bit)
- Python 3.10+ (Python 3.12+ recommended)
- Package manager:
uv(recommended) orpip
Running from Source
# Clone the repository
git clone https://github.com/eminsk/screenvideo.git
cd screenvideo
# Synchronize dependencies with uv
uv sync
# Launch ScreenCapture Pro
uv run python main.py
Running Test Suite
uv run python -m unittest discover tests
⚡ Native Standalone Binary Build (Flat Assembler x64)
In addition to the Python edition, ScreenCapture Pro includes a pure 64-bit Flat Assembler (FASM x64) native edition in asm/:
- Ultra-lightweight: ~37 KB standalone executable with zero external dependencies and no Python runtime needed.
- Microsecond responsiveness: Direct Win32 API calls (
USER32,GDI32,AVIFIL32,DWMAPI). - Instant Compilation: Compile directly using the included
asm/FASM.EXE:
cd asm
build.bat
🤖 Native Model Context Protocol (MCP) Server
ScreenCapture Pro includes a native Model Context Protocol (MCP) server (screenvideo-mcp), allowing AI agents (Claude Desktop, Cursor, Antigravity, OpenManus) to inspect display configurations, capture screenshots or bounding regions with mouse pointers, enumerate WASAPI audio devices, and copy images directly to the Windows clipboard over JSON-RPC 2.0 stdio.
🛠 Available MCP Tools
| Tool | Parameters | Description |
|---|---|---|
screen_list_monitors |
(none) | Discover physical & virtual monitors, geometries, resolutions, and primary screen flags |
screen_capture |
monitor_index, x, y, width, height, format, save_dir, include_cursor, highlight_cursor, return_base64, copy_to_clipboard |
Capture high-resolution screenshot of a monitor or region with optional cursor halo and base64 export |
screen_list_audio_devices |
(none) | Enumerate output speakers (supporting WASAPI loopback audio recording) and microphones |
screen_copy_to_clipboard |
file_path |
Copy an image file (PNG/JPG/BMP) directly to the Windows clipboard (CF_DIB) |
🚀 Running the Server
Run directly via the CLI:
# Using Python module
python -m src.mcp_server
# Or via CLI script
screenvideo-mcp
⚙️ Client Integration Configurations
Cursor (.cursor/mcp.json)
{
"mcpServers": {
"screenvideo": {
"command": "screenvideo-mcp"
}
}
}
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"screenvideo": {
"command": "python",
"args": ["-m", "src.mcp_server"]
}
}
}
🌐 Author & Open Source Ecosystem
ScreenCapture Pro is maintained by @eminsk as part of an active suite of systems engineering and quantitative open-source projects:
Maintained Projects
- agentjit — Just-In-Time Compiler for AI Agent Trajectories compiling workflows into 0.08ms Python code with Native MCP Server (
agentjit-mcp). Featured as #1 Top Story in The Daily Diff. - nanorecall — 100% Private, Zero-Cloud desktop screen and memory search engine in <200KB with Native MCP Server (
nanorecall-mcp). - nanovector — Ultra-compact SQLite of vector search in ~120KB with AVX2+FMA, hand-crafted FASM x64 kernels, and Native MCP Server (
nanovector-mcp). - nanogemm — Minimalist, bare-metal SIMD & Assembly GEMM engine for Python. Sub-microsecond CPU matrix multiplication and Native MCP Server (
nanogemm-mcp). - xlsx_vievers — Desktop spreadsheet processor with headless 129-function formula engine, SIMD SSE2 math, and Native MCP Server (
xlsx-viewer-mcp). - yfinance-ta-patterns — Technical analysis candlestick scanner with quantitative AI confluence scoring, backtesting, and Native MCP Server (
yfinance-ta-mcp). - avito-sdk — High-performance headless Avito scraping & data extraction SDK with price drop tracking and Native MCP Server (
avito-mcp). - StackOverflowAPI — Modern bilingual desktop reference and search client for Stack Overflow with native x64 FASM and CustomTkinter editions.
Community Open Source Contributions
- conda-forge/staged-recipes (850+ ⭐) — PR #34899 (Merged): Added official Conda feedstock recipe for
xlsx-viewer-pro& active feedstock submissions. - Duff89/parser_avito (750+ ⭐) — PR #331 (Merged), PR #329 (Merged), PR #328 (Merged), PR #327 (Merged), PR #337 (Active), PR #334 (Active).
- xtekky/gpt4free (65k+ ⭐) — PR #3514 (Merged): Fixed unhandled
AttributeErroron session token in Copilot provider. - flet-dev/flet (11k+ ⭐) — PR #6817 (Merged): Fixed Windows build crash on directory cleanup permissions.
- sqlfluff/sqlfluff (8.5k+ ⭐) — PR #8449 (Merged): MySQL-family
CONVERT(expr, type)parser and rule support. - Textualize/rich (49k+ ⭐) & textual (26k+ ⭐) — Terminal rendering and selection edge-case fixes.
📄 License
This project is licensed under the MIT License — see the LICENSE file for details.
📖 Описание на русском языке (Нажмите, чтобы развернуть)
Основные возможности
- Запись всего экрана или нескольких мониторов: поддержка мультимониторных систем (выбор конкретного монитора или виртуального рабочего стола).
- Интерактивный селектор области (Snipping Tool): визуальное выделение области экрана с затемнением, подсказками и отображением точных размеров.
- Запись системного звука (динамики / наушники): кристально чистый захват через Windows WASAPI Loopback.
- Прямой стриминг на диск (Zero-Memory): видеокадры записываются напрямую в файл без утечек оперативной памяти.
- Пауза и Возобновление (Pause & Resume): мгновенная синхронная пауза видео и звука.
- Захват и подсветка курсора: высокоскоростной рендеринг указателя мыши и мягкого ореола (Halo).
- Горячие клавиши по умолчанию:
F5— старт,F6— пауза,F10— стоп,F11— скриншот,ESC— отмена. - Лицензия: MIT.
Metadata
Release files for screenvideo 2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| screenvideo-2.1.1.tar.gz | 56.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| screenvideo-2.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 111.5 kB
Release files / screenvideo-2.1.1.tar.gz
| Download URL | screenvideo-2.1.1.tar.gz |
|---|---|
| Size | 56.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b27c757a34a31a60f63283ccca4002b71c07c2cc7dc0e075b6fd6420227b3b34
|
|
BLAKE2b-256 checksum How to use checksums |
12d8091fe54470c5fadabb1c2207e0c83e6f1f6572eb7ad85c4867dc9a2ad6b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / screenvideo-2.1.1-py3-none-any.whl
| Download URL | screenvideo-2.1.1-py3-none-any.whl |
|---|---|
| Size | 55.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
001ed04b77bb603ac77696ff772f3768093ca39631d6cf8c9963cfb3ed06c723
|
|
BLAKE2b-256 checksum How to use checksums |
937e2082a702ca2eac3a425b41bd18636db7b6ac9f41ae0f3b3ec9feb8a067ef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for screenvideo 2.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.