GenAI Capture

Screen capture + annotation, two ways:
- Desktop app — capture the whole desktop, annotate (arrows, shapes, text,
highlighter, mosaic redaction, watermark), then copy / save / pin. Global
hotkeys, gallery, themes. Cross-platform (Java).
- JetBrains IDE plugin (this repo's source) — the same engine inside any
JetBrains IDE: GoLand, PhpStorm, PyCharm, WebStorm, IntelliJ, CLion, Rider, …
Download the desktop app
Grab the installer for your OS from Releases:
| OS | File |
|---|
| macOS | GenAI Capture-<version>.dmg |
| Windows (installer) | GenAI Capture-<version>.exe |
| Windows (portable) | GenAI-Capture-portable-win.zip |
macOS note: the app isn't notarized yet. If macOS blocks the first launch,
allow it under System Settings ▸ Privacy & Security ▸ "Open Anyway", and grant
Screen Recording permission when asked. Details ship in the DMG's
First Launch.txt.
The plugin is on the JetBrains Marketplace —
search for GenAI Capture (or install the zip from Releases by hand).
Use with AI agents (MCP)
The desktop app (v1.2.0+) doubles as an MCP server: AI agents that speak the
Model Context Protocol — Claude Code, Claude
Desktop, Cursor, … — can capture your screen, look at the image, annotate it
(arrows, boxes, text, highlight, blur/redact), and save the result. Visual bug
reports and before/after proof, driven by one sentence to your AI.
Install the desktop app, then add the server to your client. Easiest (cross-platform,
via the genai-capture-mcp launcher on npm):
claude mcp add genai-capture -- npx -y genai-capture-mcp
Or point directly at the installed binary (no Node needed):
claude mcp add genai-capture -- \
"/Applications/GenAI Capture.app/Contents/MacOS/GenAI Capture" --mcp
Tools: capture_fullscreen, capture_region, annotate, get_image,
save_image. Captures play an audible cue; everything runs locally — images
only go to the AI client you connected.
JetBrains IDE plugin
Brings the screenshot capture + annotation engine inside any JetBrains IDE
(GoLand, PhpStorm, PyCharm, WebStorm, IntelliJ, CLion, Rider, …).
Features
- Tools ▸ Take Screenshot —
⌘⇧1 (macOS) / Ctrl+Shift+1 (Win/Linux).
Captures the whole desktop (IDE included) and opens the annotation overlay.
- Tools ▸ Capture Desktop (Hide IDE) —
⌘⇧2 / Ctrl+Shift+2.
Temporarily hides the IDE, captures the desktop behind it, and keeps the IDE
hidden until you dismiss the overlay (ESC / save / copy / pin / close).
- Tools ▸ Take Delayed Screenshot ▸ 3s / 5s / 10s — shows an on-screen
countdown, then captures (time to switch windows or open a menu first).
- Status-bar buttons — a camera icon (immediate capture) and a monitor icon
(hide-IDE desktop capture). Toggle either via the status-bar right-click menu.
- Annotation overlay — arrows, shapes, text, highlighter, mosaic redaction,
watermark, with copy / save / pin.
- Settings ▸ Tools ▸ GenAI Capture — a Watermark page (appearance, default
text, behaviour, live preview) and a Toolbar page (choose/reorder the tools
on the capture toolbar). All shortcuts are rebindable in Settings ▸ Keymap.
On macOS, grant the IDE Screen Recording permission (System Settings ▸ Privacy
& Security ▸ Screen Recording) or the capture comes back black — same requirement
as any screen-capture tool.
How it's built
It reuses the desktop app's code (../src/main/java + ../src/main/resources)
via a Gradle Copy step that filters out the app shell and the parts that don't
load inside the IDE's JBR (the osystem/ FFM code, jnativehook global-hotkey, tray,
and the desktop-themed Settings panels). Thin FFM-free shims under
src/main/java/io/genai/screenshot/ (osystem/AbstractOs, CaptureController,
ScreenshotApp) satisfy the few OS calls the overlay makes. The capture itself uses
java.awt.Robot (no native code). The plugin's own actions, settings pages, and
status-bar widgets live under src/main/java/io/genai/screenshot/plugin/.
Built against the platform module only (com.intellij.modules.platform), so a
single build runs in every JetBrains IDE.
Prerequisites
- JDK 17+ (a JBR or any JDK 17+).
- A JetBrains IDE installed (the build targets your local GoLand by default —
see
build.gradle.kts). To use a different IDE, edit the local("…") line, or
switch to a downloaded one, e.g. intellijIdeaCommunity("2024.1").
- Gradle: easiest is to open this
jetbrains-plugin/ folder in IntelliJ IDEA
(it imports the Gradle project and provides the wrapper). Or brew install gradle
and run gradle wrapper once.
Run it (sandbox IDE)
cd jetbrains-plugin
./gradlew runIde
Then use Tools ▸ Take Screenshot (⌘⇧1) or the status-bar camera icon.
Build an installable plugin
cd jetbrains-plugin
./gradlew buildPlugin
Install in any IDE: Settings ▸ Plugins ▸ ⚙ ▸ Install Plugin from Disk… → pick the zip.
Notes / next steps
- The reused overlay code is verified to compile at Java 17 with no FFM /
jnativehook dependency.
- First
runIde may need minor tweaks to the IntelliJ Platform Gradle DSL or the
local(...) IDE path for your exact versions — iterate from there.
- Possible future options: capture a chosen region only, or a configurable
default delay.