CLI tool
realskyrin/capcap avatar
realskyrin/capcap

capcap: A Menu Bar Screenshot Tool That Makes Double-Tap ⌘ the Default

⌘⌘ - A lightweight, native macOS screenshot tool that lives in your menu bar. Double-tap ⌘ Command to capture any region of your screen - instantly copied to clipboard, or annotate first with pen and mosaic tools.

890 stars75 forksSwiftMIT

At a glance

What is it?
capcap is a native macOS screenshot utility that triggers on a double-tap of the Command key, offers editable annotations, scrolling captures, and optional cloud upload. It is lightweight, menu-bar-only, and MIT-licensed, but it demands several macOS permissions and a specific workflow that may not suit everyone.
Who is it for?
Adopt capcap if you want a native, menu-bar-only screenshot tool with a unique double-⌘ trigger, editable annotations, and optional cloud upload, and you are comfortable granting Accessibility, Screen Recording, and Finder automation permissions. Do not adopt it if you need a tool that works without those permissions or if you require a non-Swift, non-AppKit architecture.
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 2 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

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

DEEP OPEN-SOURCE ANALYSIS

The Problem capcap Solves and Who It Is For

capcap addresses the friction of traditional screenshot workflows: you press a key, drag a selection, then lose time switching to an editor for annotations. It lives entirely in the menu bar, runs as an agent app without a Dock icon, and aims to get you from trigger to clipboard in one motion. The target user is someone who takes many screenshots daily, needs quick annotations like arrows or mosaics, and wants a tool that feels native to macOS. The README emphasizes zero telemetry, no subscription, and no third-party dependencies, which appeals to privacy-conscious users. It also supports editing an existing image from Finder, which is a niche but useful feature for people who frequently annotate files without altering the originals.

How capcap Works: Double-⌘ Trigger and Capture Flow

The core mechanism is a global shortcut: double-tapping the Command key (⌘) activates the capture overlay, but you can also record a custom global shortcut in settings. The overlay appears on all connected displays, and you can either hover over a window and click to snap it to the window's bounds, or drag to select any region. The capture uses ScreenCaptureKit, which means it respects Retina resolution and outputs at native pixel density. After selection, a floating toolbar appears with tools for annotation, color picking, long screenshots, beautification, pinning, and upload. The key design choice is that annotations remain editable after placement: you can move, rotate, resize, or delete them, which is not common in lightweight screenshot tools. The README states that the capture mask and editor are visible to external recording software by default, which is a deliberate decision for users who stream or record their screen.

Getting Started: Installation, Permissions, and First Run

You can install capcap via Homebrew by running `brew tap realskyrin/tap` followed by `brew install --cask realskyrin/tap/capcap`. Alternatively, you can download the latest release from the GitHub releases page. The app requires macOS 14.0 or later and is Universal, supporting both Apple Silicon and Intel. On first launch, capcap opens a settings window showing the status of two permissions: Accessibility, needed for the double-⌘ trigger, and Screen Recording, needed for ScreenCaptureKit. A third permission, Finder automation, appears when you first use the 'edit selected image' feature. The README warns that macOS may show a quarantine warning, and it provides a command to remove the quarantine attribute: `xattr -dr com.apple.quarantine /Applications/capcap.app`. You should only run that command on builds you trust, such as those from the repository or your own local build. For local development, you can build with `./scripts/bundle.sh` to produce `build/capcap.app`, or use `bash scripts/rebuild-and-open.sh` to rebuild, relaunch, and verify the app is running.

Annotation and Editing: More Than a One-Shot Capture

The editor is the heart of capcap. It supports rectangles, ellipses, arrows, freehand brush, highlighter, mosaic, numbered markers, and single-line text. The highlighter is semi-transparent and does not darken with overlapping strokes, which is a thoughtful detail. The mosaic tool lets you adjust block size, useful for redacting sensitive areas. What sets capcap apart is that annotations are not flattened: you can select an existing annotation and change its color, size, rotation, and even bend arrow or number leader lines. Text can be edited after placement, and you can redo or undo operations. The README gives an example: after placing a numbered marker, you can drag to pull out an arrow. This level of editability is rare in lightweight tools and suggests a focus on post-capture refinement rather than just snapping a quick image. However, this power comes with a learning curve, and the floating toolbar may feel cluttered for users who only need a basic crop.

Long Screenshots, Beautification, and Pinning: The Extra Features

capcap includes a scrolling capture feature: you select a region, then scroll within that region, and the app continuously captures and stitches the frames in real-time. After merging, you can continue editing the composite in the same editor. This is a significant feature for capturing web pages or chat logs. The beautification mode adds gradients or wallpaper backgrounds, rounded corners, shadows, and padding, which is useful for creating polished images for presentations or social media. You can also pin the current screenshot as a floating, draggable window that stays on top, ideal for comparing references while working. The history panel stores recent screenshots, color picks, and text records, allowing you to re-copy any item with one click. You can star favorites, and starred items are never auto-cleaned. The history cache size is configurable from 5 to 20 entries, which is a reasonable range for most users.

Cloud Upload: Convenient but Provider-Limited

The upload feature is optional and requires you to configure credentials for one of three providers: Tencent Cloud COS, Qiniu Kodo, or Alibaba Cloud OSS. You enter the keys in settings, select one as the default, and the upload button in the editor becomes active. When you upload, the public link is copied to the clipboard, and the thumbnail is saved to history. The README emphasizes that keys are stored only locally in UserDefaults, which is a privacy-positive design. However, the limitation is clear: you cannot use arbitrary S3-compatible storage or other providers without modifying the code. The upload implementation uses HMAC signing and a progress indicator, according to the project structure. If you do not use any of these three Chinese cloud providers, this feature is useless to you. But for users in those ecosystems, it saves the manual step of opening a browser to upload.

Limitations and Trade-offs: Permissions, Trigger Conflicts, and Scope

The most obvious limitation is the permission burden: Accessibility, Screen Recording, and Finder automation are all required for full functionality. Users who are cautious about granting such permissions may find this excessive for a screenshot tool. The double-⌘ trigger is innovative but could conflict with existing shortcuts, especially for users who use Command as a modifier in other apps. The README does not mention any conflict resolution mechanism beyond recording a custom shortcut, so you must manually test. Another limitation is that the app is macOS-only, so it is not for cross-platform teams. The editor, while powerful, may be overkill for simple screenshots, and the floating toolbar could obscure the content you are capturing. The README also notes that the capture mask is visible to external recording software by default; if you want privacy while capturing sensitive information, you would need to adjust that setting, but the README does not specify how.

Alternatives and the Real Difference in Approach

The primary alternative on macOS is the built-in screenshot tool (Shift-Command-5), which requires no extra permissions and offers basic capture options. The difference is that the built-in tool does not provide editable annotations, scrolling captures, or cloud upload. Another alternative is Shottr, a popular third-party tool that offers similar annotation features and scrolling captures, but it is not open source and has a different trigger mechanism. The key difference is that capcap's double-⌘ trigger is unique, and its pure AppKit approach means it does not rely on Electron or SwiftUI, which may appeal to users who value native performance and small binary size. The README claims 'no third-party dependencies,' which is a strong statement, but the project does include PermissionFlow as a third-party component. So the claim is about runtime dependencies, not development dependencies. If you need a tool that works without any permissions, the built-in tool is the safest choice, but if you want editable annotations and are willing to configure permissions, capcap offers a distinct workflow.

Maintenance, Licensing, and Upgrade Considerations

The project is under active development, with the latest release being v1.7.10 on 2026-08-29, and releases are frequent, roughly one per week. The repository is not archived, and the default branch is 'main'. The license is MIT, which allows free use, modification, and distribution, but you should review the LICENSE file for exact terms. The README includes a changelog link, and the project structure shows clear separation of concerns, which suggests maintainability. However, the README does not provide a migration guide or upgrade path for users of previous versions, so you may need to check the changelog manually. The Homebrew tap is maintained separately, and the README provides a link to that repository. For upgrading, you can use `brew upgrade --cask capcap` if you installed via Homebrew, or download the latest release. The project uses Swift and AppKit, so any custom modifications require knowledge of those frameworks. The third-party component PermissionFlow is MIT-licensed, which is compatible with the project's license.

Editorial conclusion

Adopt capcap if you want a native, menu-bar-only screenshot tool with a unique double-⌘ trigger, editable annotations, and optional cloud upload, and you are comfortable granting Accessibility, Screen Recording, and Finder automation permissions. Do not adopt it if you need a tool that works without those permissions or if you require a non-Swift, non-AppKit architecture. Before adopting, verify that the double-⌘ trigger does not conflict with your existing shortcuts, test the scrolling capture on your target apps, and confirm that the cloud upload providers (Tencent COS, Qiniu Kodo, Alibaba OSS) match your storage needs. The project is actively maintained with recent releases, but you should review the source and changelog to ensure it meets your security and feature requirements.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes