Open-source project
xland/ScreenCapture avatar
xland/ScreenCapture

ScreenCapture for Windows: portable capture, annotation, OCR, and recording

A feature-rich screen capture software with just a single executable file

1,563 stars186 forksC++MIT

At a glance

What is it?
ScreenCapture is a portable Windows utility for screenshots, image annotation, scrolling captures, GIF or MP4 recording, OCR, and QR recognition. It suits users who want a single executable without installation, but OCR adds a separate plugin.
Who is it for?
ScreenCapture is appropriate for Windows users who want portable screenshot capture, annotation, scrolling captures, recording, and optional OCR without an installation step. It is less suitable for non-Windows systems, unattended capture workflows, or users who expect OCR to be bundled in the main executable.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 9 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What ScreenCapture Handles on Windows

ScreenCapture targets people who need to capture and explain what is visible on a Windows desktop. Its documented feature set covers ordinary screenshots, drawing annotations, scrolling screenshots for long images, GIF and MP4 recording, OCR, and QR code recognition. After capture, the image enters an editing environment where users can add rectangles, ellipses, arrows, labels, curves, straight lines, mosaics, erasures, and text. This makes the application relevant to developers documenting an interface, support staff explaining a screen state, and users preparing annotated visual material.

The application is designed for direct use rather than installation. The release download is described as approximately 1 MB, and the main program is distributed as a single executable without a dependency on dynamic link libraries, except for text recognition. A process can also exit after a capture rather than remain resident. These constraints matter for temporary workstations, shared computers, and users who do not want a capture utility running continuously in the background.

The supported operating system is Windows 10 version 1803 or later. The README does not document macOS, Linux, or mobile releases. Although the project is written primarily in C++, its current build depends on the Ling GUI framework and uses Visual Studio 2026 with the C++ Desktop Development Kit. That build requirement narrows the contributor side to a specific Windows development setup, even though the resulting release is intended as a portable executable.

ScreenCapture Editing and Command-Line Flow

The documented interaction starts with holding Ctrl while selecting a screenshot region. That selection opens the image annotation or pin window. Holding Ctrl while using the mouse wheel then resizes that window. Annotation elements are not fixed at creation time: the README says users can move the pointer over an element to modify or delete it. Ctrl+Z undoes work, while Ctrl+Y redoes it. Ctrl+S saves to a file, and Ctrl+C or a double-click saves the captured image to the clipboard.

The shift constraints are concrete rather than general editing behavior. Holding Shift produces a true circle when drawing an ellipse and a true square when drawing a rectangle. Holding Shift constrains a curve to a straight line. The color picker provides several documented clipboard formats. Ctrl+R copies the selected RGB value, Ctrl+H copies HEX, and Ctrl+K copies CMYK.

ScreenCapture also exposes a command-line entry selector. The `--enter` value can launch directly into pin, long capture, video recording, OCR, QR recognition, or tray-only registration. The README calls these values `pin`, `long`, `video`, `ocr`, `qr`, and `tray`. The value `long` starts scrolling capture, while `tray` registers only the tray icon and performs no capture action. This direct entry model is useful for shortcuts or automation wrappers, although the documentation does not describe a scripting API, unattended capture mode, or scheduled operation.

Long capture depends on selecting an appropriate area. The project's own troubleshooting note says that an unexpected stitched result can often be improved by adjusting the screenshot region. That is a meaningful constraint: the stitching mechanism is not presented as independent of layout, and the README gives no guidance for capturing dynamic content or handling content that changes while scrolling.

Portable Installation and First Capture

ScreenCapture has no documented installation procedure. The README directs users to download `ScreenCapture.exe` from the GitHub releases page. The release is approximately 1 MB. Since the main application is described as a single executable with no dynamic-link-library dependency except for text recognition, the first use can begin by launching that executable. The documentation does not provide a portable archive layout or additional files that must accompany the main binary for ordinary screenshot capture.

After launching the executable, hold Ctrl and drag to select the region that should be captured. The documentation says this opens the annotation window. A practical first result should therefore be the selected screen region in an editable view rather than an automatically saved file. Ctrl+S saves it as a file, and Ctrl+C or a double-click sends it to the clipboard. Those are the documented completion paths; the README does not specify default filenames, output folders, or image formats.

For command-line use, `--enter=pin` starts directly in the pin or annotation function after region selection. The following commands are reproduced from the README. The first makes the process exit after capture is completed:

bash
ScreenCapture.exe --auto-quit=true

The next starts region selection directly in the pin or image annotation function:

bash
ScreenCapture.exe --enter=pin

The parameters can be combined. This command starts long capture and exits after the capture is complete:

bash
ScreenCapture.exe --enter=long --auto-quit=true

The application also requires Windows 10 version 1803 or later. The README does not document behavior on earlier Windows releases.

OCR Plugin Setup and Portable Configuration

OCR is the main feature that is not contained entirely in the single main executable. The README directs users to download the latest `ImageReader.exe` release from the xland/ImageReader repository, described as approximately 25 MB. The file belongs in `%appdata%\ScreenCapture\plugin`, after which ScreenCapture must be restarted. It may also be placed beside `ScreenCapture.exe`. Users who need OCR must therefore account for a separate binary and a placement decision, which weakens the otherwise simple one-file distribution model.

Configuration has a similar portability split. By default, ScreenCapture reads configuration, language files, and plugins from `%appdata%\ScreenCapture\Lang`. To move control beside the executable, a user can create an empty `config.json` beside `ScreenCapture.exe` and restart the application. ScreenCapture then writes configuration information into that file. A `Lang` directory beside the executable can hold language files, and `ImageReader.exe` can also reside there.

This arrangement supports either profile-based state under `%appdata%` or a directory-local setup, but the README does not document synchronization between the two locations. It also does not provide documented JSON configuration keys, so an empty `config.json` is the prescribed starting point rather than an example that users can hand-edit from the documentation. Upgrading manually requires closing the old version before starting the new one, an important operational detail for preventing two copies from remaining active.

Recording, Long Capture, and Recognition Boundaries

Video recording is not limited to screenshots. ScreenCapture can record to GIF or MP4, and `--enter=video` starts screen recording directly. The repository topics also include video, matching the documented feature. However, the README does not state supported frame rates, resolution limits, codec settings, audio behavior, recording controls, maximum duration, or hardware acceleration. It would therefore be unsafe to assume that recording is suitable for long sessions or that system audio is captured.

Long screenshots have a similarly narrow troubleshooting guide. The application can enter long capture with `--enter=long`, and the two arguments `--enter=long --auto-quit=true` can be combined. If stitching does not match the user's expectation, the README recommends adjusting the capture area. No technical explanation is given for failure detection, retry behavior, or image alignment. Dynamic pages, animated interfaces, and content that changes during capture are not documented as supported cases.

OCR and QR recognition are available through separate direct-entry values. The `ocr` entry starts text recognition, and `qr` starts QR recognition. QR recognition is built into the application path, but OCR depends on ImageReader.exe. The README does not describe supported OCR languages, selectable recognition models, copied-text formatting, batch recognition, or QR export behavior. The command-line options establish how to open these functions, not the full range of outputs they can produce.

ScreenCapture Branch and Tooling Trade-offs

The most direct alternative in the repository is ScreenCapture itself at an older architectural branch. The README identifies `2.4.25` as a previous stable branch based on D2D and `2.3.3_qt` as an earlier stable branch based on Qt. The current `main` branch instead depends on Ling. This difference matters for maintainers deciding which source line to inspect or build, because the current GUI foundation and the older Qt or D2D implementations are not merely different feature presets.

For routine users, choosing an older branch does not establish that it has the same current feature set, command-line behavior, plugin layout, or bug fixes. The README calls those branches stable but does not compare them feature by feature. It also gives Visual Studio 2026 instructions only for `main`. A contributor should therefore treat 2.4.25 or 2.3.3_qt as separate older code lines to investigate, not as drop-in alternatives with documented current compatibility.

The project does not document a headless server component, a browser extension, or a documented remote-control interface. That makes it a poor fit for a capture service running on Linux or for automated image processing performed entirely in a script. Its practical center is an interactive Windows executable. The trade-off is convenience for desktop users, paired with limited documented information for unattended operation and feature parity across branches.

Maintenance, License, and Upgrade Surface

The repository is not archived. Its last push was on 2026-10-14. Recent listed releases include 2.5.15 on 2026-08-25, 2.5.14 on 2026-08-20, and 2.5.13 on 2026-08-19. Those dates indicate recent repository and release activity, but the README does not publish a long-term support policy, compatibility matrix, release cadence, or migration guide.

The repository identifies the MIT license. That is the relevant license fact for review, distribution, modification, and redistribution, but this article does not interpret its obligations. ScreenCapture uses C++, while the current `main` branch depends on the separate Ling GUI framework. Building from source therefore involves more than compiling a standalone C++ utility: a contributor also needs the specified GUI dependency, Visual Studio 2026, and the C++ Desktop Development Kit.

Upgrades are presented as download-and-replace operations rather than installer-driven migrations. Users who manually download a new version must exit the old version before launching the new one. Portable users must also decide whether `%appdata%\ScreenCapture` or the directory beside `ScreenCapture.exe` remains the source for configuration, language files, and plugins. The documentation does not state whether ScreenCapture upgrades those files automatically.

Editorial conclusion

ScreenCapture is appropriate for Windows users who want portable screenshot capture, annotation, scrolling captures, recording, and optional OCR without an installation step. It is less suitable for non-Windows systems, unattended capture workflows, or users who expect OCR to be bundled in the main executable. Verify Windows 10 version 1803 or later, whether you need ImageReader.exe, and how your required configuration and language files are stored before adoption.

Frequently asked questions

Does ScreenCapture require installation on Windows?

No. The README describes ScreenCapture as a single executable that can be launched without installation, with text recognition as the stated dynamic-link-library exception.

How do I enable OCR in ScreenCapture?

Download the latest ImageReader.exe and place it in `%appdata%\ScreenCapture\plugin`, then restart ScreenCapture. It may also be placed beside `ScreenCapture.exe`.

Can ScreenCapture start directly in long screenshot or video recording mode?

Yes. Use `--enter=long` for long capture or `--enter=video` for screen recording. Adding `--auto-quit=true` makes the process exit after capture is complete.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. xland/ScreenCapture on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/xland-screencapture.svg)](https://hysenlabs.com/projects/xland-screencapture)

Was this useful?