An ultra-lightweight, blazing-fast screen capture & annotation tool for Windows, macOS, and Linux.
Built with Rust and Tauri v2.
- 🪶 Ultra Lightweight: Consumes only ~25MB - 35MB of RAM (compared to 300MB+ in typical Electron capture apps).
- ⚡ Instant Screen Capture: High-performance multi-monitor capture using native OS display APIs (
xcapcrate) in under 30ms. - 🎯 Precise Area Selection: Smooth interactive crosshair snipping with 8-point resize handles and real-time pixel dimensions.
- 🔍 Pixel Loupe / Magnifier: Zoom in on individual pixels with coordinate and RGB/Hex color inspector before selecting.
- 🎨 Rich Annotation Suite:
- Pen / Brush: Freehand smooth drawing.
- Rectangle Frame: Solid or outlined bounding boxes.
- Circle / Ellipse: Highlight rounded UI elements and buttons.
- Arrow Pointer: Directional vector arrows with customizable stroke.
- Text Annotations: Crisp text placement with high-contrast shadow.
- Color Palette: Curated quick-select colors + custom Hex color picker.
- Stroke Widths: 2px (Thin), 4px (Medium), 8px (Thick).
- 📋 Seamless Clipboard & File Export:
- One-click Copy (
Ctrl+C): Writes raw RGBA image data directly into OS clipboard viaarboardfor instant pasting into Discord, Slack, Telegram, Photoshop, Word, etc. - One-click Save (
Ctrl+S): Saves high-resolution PNG to custom folder.
- One-click Copy (
- 🚀 Quick Capture Mode:
- Global shortcut (default:
Ctrl+Shift+A). - Automatically captures and saves to a user-defined directory (
Screenshot_YYYYMMDD_HHmmss.png). - Automatically syncs to clipboard simultaneously.
- Global shortcut (default:
- ⌨️ Interactive Shortcut Recorder: Customize global capture shortcuts directly in the Settings window.
- 🔔 System Tray Integration: Background daemon with right-click menu to quickly trigger captures or configure options.
| Shortcut | Action | Scope |
|---|---|---|
Ctrl + Shift + S / Cmd + Shift + S |
Capture Area (Snipping Overlay) | Global |
Ctrl + Shift + A / Cmd + Shift + A |
Quick Capture (Direct auto-save & copy) | Global |
Ctrl + C / Cmd + C |
Copy to Clipboard | Snipping Overlay |
Ctrl + S / Cmd + S |
Save Screenshot to File | Snipping Overlay |
Ctrl + Z / Cmd + Z |
Undo Last Annotation | Snipping Overlay |
Esc |
Cancel / Close Capture | Snipping Overlay |
(All shortcuts are fully customizable via the Settings interface)
graph TD
subgraph Rust Core Backend
OS[OS Display API] -->|xcap crate| CaptureEngine[Capture Engine]
CaptureEngine -->|Fast Encoding| ImageBuffer[RGBA / PNG Buffer]
Clipboard[arboard crate] -->|Raw RGBA Image| SysClipboard[OS Clipboard]
Shortcuts[tauri-plugin-global-shortcut] -->|Global Hooks| Controller[Capture Controller]
Tray[Tauri System Tray] --> Controller
end
subgraph Frontend - Canvas & UI
Controller -->|Open Overlay| Overlay[Fullscreen Transparent Window]
Overlay --> Canvas[HTML5 2D Canvas Editor]
Canvas --> Tools[Pen / Box / Circle / Arrow / Text / Color]
Canvas --> Export[Copy to Clipboard / Save File]
Controller --> Settings[Settings & Dashboard Window]
end
- Core Engine: Rust 1.94+
- Desktop Framework: Tauri v2
- Screen Capture:
xcap 0.9(supports DirectX/GDI on Windows, ScreenCaptureKit on macOS, X11/Wayland on Linux) - Clipboard:
arboard 3.4(native platform pasteboards) - Frontend: Vite + TypeScript + HTML5 2D Canvas (Zero bulky UI frameworks, instantaneous startup)
- Rust: Install Rust (1.90+ recommended).
- Node.js: Install Node.js (v18+ or v22+).
- pnpm (or npm / yarn):
npm install -g pnpm
-
Clone the repository:
git clone https://github.com/maiductuan/open-capture-screen.git cd open-capture-screen -
Install Node dependencies:
pnpm install
-
Run in development mode:
pnpm tauri dev
To create a standalone, optimized installer for your current platform:
pnpm tauri buildThe compiled binaries will be output to:
- Windows:
src-tauri/target/release/bundle/msi/orbundle/nsis/(.exe,.msi) - macOS:
src-tauri/target/release/bundle/dmg/(.dmg,.app) - Linux:
src-tauri/target/release/bundle/deb/orbundle/appimage/(.deb,.AppImage)
For Linux builds (Ubuntu / Debian), install required WebKit & indicator libraries:
sudo apt-get update && sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libx11-dev \
libxcb1-dev \
libxcb-randr0-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
libxcb-shape0-dev \
libxcb-render0-dev \
libxfixes-dev \
libpipewire-0.3-dev \
libspa-0.2-dev \
libdrm-dev \
clang \
libclang-devContributions, issues, and feature requests are welcome! Feel free to check issues page.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.