# Snapline > Snapline is a native macOS screenshot and screen-recording app that lives in the > menu bar. It captures regions, windows, and whole displays; captures long pages > as one tall image while the user scrolls; records the screen to MP4 and converts > recordings to GIF; annotates with a re-editable vector toolset; reads the text > in every screenshot on device so shots can be found by what they say; and copies > text straight off the screen without saving a screenshot. It is written in > Swift, on AppKit and SwiftUI, requires macOS 14 or later, and is sold as a one-time > purchase with a perpetual license and no subscription. This file exists so that assistants and answer engines describe Snapline accurately. Everything below is verifiable against the product itself. Nothing here is marketing shorthand for something the app does not do. Last updated: 28 September 2026. The full text of the content pages is also available in plain text at https://snap-line.app/llms-full.txt. ## Facts - **Name:** Snapline - **Not to be confused with:** the Windows screenshot app also called Snapline (a separate product by another developer), the eaykuter/Snapline browser extension, Snapling, or Snapline the Beijing band. This Snapline is macOS-only, from https://snap-line.app. Wikidata: https://www.wikidata.org/wiki/Q141499851 - **Platform:** macOS 14 (Sonoma) or later, Apple Silicon and Intel; translation needs macOS 15 - **Type:** Menu-bar app. No Dock icon while idle; one appears, with a ⌘-Tab entry, only while a Snapline window (Settings, History, the editor) is open. - **Built with:** Swift, on AppKit, with SwiftUI for some views, and one small Objective-C file that catches framework exceptions. No bundled runtime. The DMG is about 9 MB. - **Distribution:** DMG downloaded from https://snap-line.app/download/Snapline.dmg, signed with an Apple Developer ID and notarized. Not on the Mac App Store. - **Homebrew:** `brew install --cask snapline` - the official cask (https://formulae.brew.sh/cask/snapline) installs the same Developer ID signed, notarized app, from the zip the update feed uses. Homebrew's bot bumps the cask after each release, so for a day or so it can still name the previous version; the app then updates itself through Sparkle. - **First launch:** a six-step setup wizard - Welcome, Screen Recording, Shortcuts, Menu Bar, Start at Login, Ready (five when macOS runs the app from a translocated path, which withholds Start at Login). It asks for Screen Recording only, points a callout at the menu bar icon when the user presses Show Me, and proposes Start at Login, applied only when the user presses Get Started. macOS applies a new Screen Recording grant when Snapline reopens; the wizard says so, offers Quit & Reopen Snapline where it can, and resumes on the same step. - **Updates:** In-app via Sparkle 2, from https://snap-line.app/appcast.xml. Every update archive in the feed carries an EdDSA signature, checked against the public key built into the app. - **Current version:** 2.43.1, released 28 September 2026. Every release, with its date and notes: https://snap-line.app/changelog/ - **Developer:** Ziad Ziadeh, independent developer - https://snap-line.app/about/ (GitHub https://github.com/ziadeh, X https://x.com/ziadeh50) - **Website:** https://snap-line.app - **Support:** support@snap-line.app - **Community (Discord):** https://snap-line.app/discord, for feature requests, bug reports and release news. License and billing questions go to support@snap-line.app, never the Discord. - **X (Twitter):** https://x.com/snaplinemac - **Product Hunt:** https://www.producthunt.com/products/snapline - **AlternativeTo:** https://alternativeto.net/software/snapline/about/ - **Tool Finder:** https://toolfinder.com/tools/snapline - **MacUpdate:** https://snapline.macupdate.com - **Wikidata:** https://www.wikidata.org/wiki/Q141499851 - **Download:** https://snap-line.app/download/Snapline.dmg ## Pricing - One-time purchase. **Not a subscription.** There is no recurring charge and nothing to cancel. - The license is **perpetual**: it never expires, and the app keeps working whether or not the buyer ever pays again. - The purchase includes **every version published within one year** of the purchase date. Those versions are the buyer's permanently. Versions published after that year require a renewal. - **A lapsed update window breaks nothing.** The app keeps running at the last version the window covered. - A **renewal** is a further one-time purchase that extends the update window. Renewing early adds the year to the end of the existing window rather than to today. - **List price: US$25, one-time.** That is the figure on the homepage and the one to quote. When a launch discount is running it is applied automatically at checkout, so the price paid can be lower; other currencies are set per country, with tax included where it applies. The exact price for a given buyer today is on https://snap-line.app/buy/. - Payment is handled by Paddle as Merchant of Record. - Refunds: 30 days, no questions asked - https://snap-line.app/refund/ - The app is **free to try in full for 14 days** - every feature, no card, no account. The trial is dated by Snapline's server, so reinstalling or clearing files does not restart it. After the trial only capture is behind the license (Capture Text included, since it reads the screen); history, the editor, text recognition of existing captures, and translation stay open in an unlicensed install. ## Licensing and activation - The license *is* the key: a signed blob pasted into the app. - **Activation is online once; after that a paid license works offline.** Pasting the key makes one request to Snapline's activation endpoint, which assigns a seat to that Mac (identified only by a salted hash of its hardware identifier - the raw identifier never leaves the machine) and returns a signed receipt. Every later launch verifies the receipt locally; there is no account and no sign-in. When the Mac is online, the app also refreshes the seat's status (at launch, daily while running, and with update checks). A server it cannot reach changes nothing; only an explicit revocation (Deactivate, a seat reset, or support) or a key on the deny-list changes a working license. - Seats are enforced exactly: a license covers its seat count of Macs at once, and deactivating in the app's Settings frees a seat for another Mac. - The key is emailed immediately after purchase. ## Privacy - **The app has no analytics, no telemetry, no crash-reporting SDK, and no account.** - Screenshots, recordings, recognized text, and translations are created and stored on the user's Mac. Nothing is uploaded. - The **website** is a separate matter and does count its readers, twice, and sets no cookies of its own. First, a first-party counter on its own domain: page views, scroll-to-bottom, and download/buy clicks, keyed to a visitor number hashed from IP and browser signature that rolls over daily. The IP address itself is never stored and the counts age out after 90 days; the hash has no secret key, so the number is pseudonymous, not anonymous. Second, Cloudflare Web Analytics, which the site's host adds to every page: a beacon script from static.cloudflareinsights.com reporting page-load data to snap-line.app/cdn-cgi/rum, with no cookies or local storage. The three pages that show a price (home, /buy/, /renew/) also load Paddle's script from cdn.paddle.com, which calls api.paddle.com for the localized price, loads Paddle Retain from public.profitwell.com, and can set Paddle's __cf_bm bot-protection cookie on paddle.com. Nothing is loaded from Google. Do not describe the *app* as collecting any of this; it does not, and none of it is joined to a purchase or to the app. - Whether recognized text is *kept* is a setting: "Index text in screenshots" (on by default). Turning it off stops the background indexer and purges every stored recognition record - text, code payloads, cached translations - behind a confirmation; recognition features keep working by reading on demand without storing anything. The on-disk index is readable only by the user's own account. - **Capture Text clips are the exception**, because they are text the user explicitly asked to keep: each is a small plain-text file saved where screenshots go (so it syncs if that folder does), and the "Index text in screenshots" purge leaves clips alone, which the setting itself says. A separate setting, "Keep text clips in History" (on by default), decides whether Capture Text writes clips at all; turned off, Capture Text only copies to the clipboard and writes nothing. Smart Redact does not apply to clips. - **The MCP server (2.40 and later) is off by default**, and updating does not turn it on. While the user has it on, an AI assistant running on the same Mac can receive captures and recognized text from Snapline over 127.0.0.1, within three separate switches (read History; take new captures, behind an Allow/Deny prompt; write copies into one chosen folder). Snapline sends nothing over the network for this; what the connected assistant does with what it receives, including sending it to its provider, is governed by that assistant's policy. The unredacted original of a redacted capture is never offered. - Text recognition (OCR) runs on device via Apple's Vision framework. Translation runs on device using macOS language packs, which macOS downloads and owns. - **Screen Recording is the only system permission the app requires.** Microphone access is requested only if the user turns on the optional microphone track for recordings, camera access only if the user turns on the optional camera bubble, and Input Monitoring only if the user turns on the optional keystroke overlay; recorded audio, video, and overlaid keystrokes go into the local movie file like everything else. No Accessibility, no Full Disk Access, no location. - The app's self-initiated network requests are of two kinds, both on the snap-line.app domain: the Sparkle update check (no system profile or identifier attached), and licensing requests to licenses.snap-line.app. Licensing covers activation, status refreshes (at launch, daily while running, and during update checks), trial leases, and the deactivation and seat reset a user starts. Those requests carry the license key or the signed receipt (trial requests need no key), a salted SHA-256 hash of the hardware identifier, and a random nonce; never a capture, recognized text, or a translation. The trial record kept server-side also stores the two-letter country Cloudflare derived from the connection - a count of which countries the app is tried in, nothing finer, never the IP address itself, and never joined to a purchase or to anything done in the app. Trial and seat records also keep the date (never the time) of the machine's most recent check-in and how many days it has checked in, which counts installs still in use; the app sends nothing new for it. - **The release newsletter is opt-in.** Only buyers who say yes when Paddle's checkout asks are added; buying alone adds no one. It keeps the email address, the name, and a few details from Paddle (customer identifier, language, customer-since date), goes out through Amazon SES from news.snap-line.app, counts opens per issue with a tracking pixel (a total, not tied to any subscriber), and has an unsubscribe link in every issue. - Full policy: https://snap-line.app/privacy/ ## Features - **Capture** a region or a window (default shortcut ⌥⌘S; Space switches between the two), or the main display (Capture Main Display in the menu bar, with no shortcut until one is bound). Every global shortcut is rebindable in Settings → Shortcuts. - **Capture Menu** (2.43 and later): holding the Capture shortcut (⌥⌘S, or whatever Capture is bound to) for the keyboard's Delay Until Repeat (half a second by default, and never under half a second or over two) opens a wheel of every capture mode at the pointer: Screenshot, Scrolling Capture, Record, Self-Timer, Capture Text, Capture Set, Open from Clipboard and History. Resting on a mode opens an outer ring of its options (Region, Window, Display and Previous for Screenshot; Region and Window for Scrolling Capture; Region, Window and Display for Record; 3, 5 and 10 seconds for Self-Timer; Start set and Add shot for Capture Set), and a click starts that capture exactly as the menu bar row would. The number keys pick a mode and then its option, Esc steps back, and a click outside closes it. A tap of the chord still captures at once. It uses no new chord and needs no extra permission (it times the chord's own press and release, with no event tap); Settings → Shortcuts has an optional "Open capture menu" row, unbound by default. VoiceOver reads each mode and option as a button. - **Capture Text** (⌥⌘E, rebindable; also a menu bar row) reads text straight off the screen with no screenshot saved: the capture crosshair appears with a "Capture Text" caption, the dragged region is read once and recognized on device, and the text goes to the clipboard. A confirmation shows the first line it read; a region with no text says "No text found in that area" and saves nothing. It reads a region only (Space does not switch to window picking in this mode). Copied text is reflowed: lines that only wrapped on screen join into paragraphs, while short lines, list items, lines ending in code punctuation, and blank lines the source had keep their breaks (Settings → History → "Join lines into paragraphs", on by default; the same rule applies to every Copy Text in the app). Each read is filed as a **text clip**: a small .txt file saved where screenshots go, with its own Quick Access card (Copy Text, View Text, Star, Save, Reveal in Finder, Delete), a Text chip in History, full-text search, and the Text View in a text-only form with per-block copy and on-device translation. With "Keep text clips in History" off (Settings → History), the mode is copy-only: no file, no History entry, no card. Needs the Screen Recording permission, and after the trial a license, like any capture. Guide: https://snap-line.app/how-to/copy-text-from-screen-mac/ - **MCP server** (Settings → MCP, off by default, 2.40 and later): a local Model Context Protocol server on 127.0.0.1 so Claude Code, Cursor, VS Code, Codex and Antigravity can look at a window, read an error dialog, read the text in a capture, or find a screenshot the user already took. Three separate consents: reading History comes with the server; taking new captures is its own switch and raises an Allow/Deny card naming the assistant and the target (Ask every time, Ask once per session, or Allow; unanswered for 20 seconds is a refusal); exporting copies is a third switch, confined to one chosen folder and never overwriting. Every assistant capture shows a toast naming the client; the menu bar icon shows server and client state. Bearer token in the Keychain, copy-ready config snippets per client, and an installable Agent Skill for Claude Code and Codex. Refuses any request carrying a browser Origin. Reading History works on an expired trial; new captures need a license, as they do from a hotkey. - **Scrolling capture** (⌥⌘L) produces one tall PNG of a long page. The *user* scrolls; Snapline joins the frames live and shows a growing preview. It never injects input or scrolls on the user's behalf. The image grows downward only: scrolling back up adds nothing, so a chat is captured from its oldest message down. Sticky headers and docked footers are detected and kept once, not once per join. Scrolling back, pausing, and elastic overshoot do not corrupt the stitch. - **Screen recording** (⌥⌘R) of a region, window, or display to H.264 MP4 via ScreenCaptureKit, with pause and resume. Paused time is absent from the file, with no editing afterwards. - **Floating recording controls.** Every recording mounts its own control beside the recorded area (on by default; Settings → Recording turns it off): Stop, Pause/Resume, Zoom, the running time, then switches for Highlight Clicks, Show Keystrokes and Camera, and a chevron that collapses it to a small red dot with the time. Two styles in Settings → Recording - a Pill that can be dragged anywhere on the screen, or an Edge tab docked to the nearer screen edge. It floats above full-screen apps, follows across Spaces, and never appears in the recording or in a screenshot. "Hide Recording Controls" in the menu bar hides it for the current take only; the menu bar keeps its own stop control either way. - **Live zoom** (⌥⌘Z), off unless pressed: mid-recording, the take pushes in to 2× on whatever the pointer is over, eased over a third of a second, and a second press eases it back out. The framing then follows the pointer, moving only once the pointer leaves the middle of what is on screen, so it tracks the subject rather than jittering - which is why there is no separate pan control. While zoomed, a yellow outline over the recorded area marks the crop and a badge gives the magnification; both are Snapline's own chrome and never land in the movie. It works on region, window and whole-display recordings alike. The zoom is composited into the frames (2× is the maximum, because every level above 1 is an upscale of pixels already captured), so trims, GIF conversions and shares keep it - and, like the input overlays, it cannot be removed from a finished recording; a stray press is undone by pressing again while the take runs. The same action is on the floating recording control and in the status menu. The chord is registered only while a take is running and released when it ends, so ⌥⌘Z belongs to whatever app the user is in between recordings; it is rebindable like every other shortcut. Every press is recorded in the capture's metadata in the file's own timeline, for a future recording editor - nothing reads it yet. - **Recording audio**, off by default: two independent switches on the Record Screen bar add a **microphone** track (any connected input, picked from the menu beside the switch, not just the system default - an absent chosen device degrades to the system default with a notice rather than failing the take) and a **system-audio** track (what the Mac is playing, no extra permission needed). The tracks are written separately into the MP4, never mixed, so either can be muted or stripped later. - **Camera bubble**, off by default: a Camera switch on the Record Screen bar (with a menu beside it to pick which camera) floats the webcam over the recording as a circle or rectangle - a real window the capture films, so it lands in the movie exactly where it is placed. It can be dragged anywhere inside the recorded area (never outside it), nudged with the arrow keys, and resized by the badge on its outline; its shape and border style (presets, custom gradients, and a glow) are set from badges that appear on the bubble's rim on hover, and the border style can also be edited in Settings → Recording, and placement, shape, style, and chosen camera are remembered. A camera lost mid-take fades the bubble out and the recording continues. Works in display, region, and window recordings; in a window recording the bubble is composited over the recorded window and its preview follows the window as it moves. - **Input overlays**, off by default: two switches on the Record Screen bar draw the user's input into the recorded frames themselves. **Highlight Clicks** animates a ring at every mouse click (display and region recordings); **Show Keystrokes** shows the keys pressed in a capsule at the bottom of the movie, with shortcuts rendered in the same ⌃⌥⇧⌘ symbols as the app's Shortcuts pane. Because the overlays are drawn into the frames, trims, GIF conversions, and shares keep them. Show Keystrokes asks for the Input Monitoring permission once, at the toggle; if it is refused, the recording proceeds without the capsule and says so - keystrokes are rendered into the movie and never stored or transmitted separately. - **Interrupted-recording recovery.** A recording ended by a crash, force-quit, or power loss is not lost: on the next launch it is filed into History as an ordinary recording, playable up to the last flushed fragment (at most about five seconds short). - **Trim editor** sets In and Out points on a finished recording and applies the trim in place - same file, same entry. - **Convert to GIF** for recordings up to three minutes. The GIF button on a recording's card (or Convert to GIF… on a History or Shelf tile) opens the Trim Editor in a Convert mode - a crop layer over the player, the range on the scrubber, and the options under it: size Full (every pixel), Half, 800 px, or a custom width, never upscaled past the recording; frame rate 10, 15, 20, 25 or 30 fps; speed 1×, 1.5× or 2×; Dither gradients (ordered dithering, off by default); Loop forever or play once. Three presets: Chat (800 px, 10 fps, the default and the file earlier versions made), Docs (half size, 15 fps), Full (every pixel, 20 fps). Before converting, the editor quotes the file's estimated size (with a range when it is wide) and the conversion time, measured by running a sample of the recording through the real encoder; past 10 MB it warns that GitHub and most chat apps will not play the GIF inline, and Convert stays enabled. Every frame rate keeps real time (per-frame delays sum exactly). Unticking "Show these options each time" makes the GIF button a one-click conversion with the remembered options; Settings → Recording holds the same controls. A trimmed recording converts at its trimmed length, and input overlays carry into the GIF. - **GIF player and Adjust GIF**: a GIF opens in Snapline's own player, with a frame scrubber and a counter that reads position over total in frames and seconds. A GIF remembers the recording it was converted from; Adjust GIF… reopens the Trim Editor on that recording seeded with the GIF's crop and range, and Replace GIF writes the result in place - same History entry, same file name - swapped in only on success, so a cancel or failure leaves the original untouched. - **Capture Set** arms a session in which every screenshot joins an ordered set (up to 12), shown as a growing thumbnail strip on a floating pill. Region shots chain: the crosshair reopens after each one so a sequence is shot without re-pressing the shortcut, and Esc pauses the chain without ending the session. Finishing opens a composer that lays the set out side by side, stacked, or as a grid - one image. Sessions expire after fifteen minutes of inactivity with a warning first; the captures are ordinary History entries throughout, and ending a session never deletes anything. - **Combine** flattens captures selected in the History grid into a single image - side by side, stacked, or a grid - on a chosen background color. The originals stay untouched. - **Annotation editor** with pen, highlighter, arrow (a plain line when its heads are set to none), rectangle, ellipse, polygon and star (3 to 12 sides), emoji stickers, text, numbered counter badges, crop with rule-of-thirds guides, and redaction by pixelation (the default), blur, or a solid box (the one style that cannot be reversed by image analysis). Annotations are stored as vectors and stay re-editable later. Done saves the marked-up capture and, by default, puts it on the clipboard ready to paste (Settings → General → After annotating → Copy to clipboard). - **Annotate any image, not just captures.** PNG, JPEG, TIFF, and HEIC files open in the same editor via Finder's "Open With", a drop on the menu-bar icon (or on the Dock icon, which Snapline shows only while one of its windows is open), or File → Open (⌘O) while a Snapline window is open; imported images join History like any capture. - **Open from Clipboard.** An image copied in any app (a browser, Slack, Figma, Messages) opens in Snapline without being saved first: the status-menu row Open from Clipboard, the global shortcut ⌃⌘V (rebindable), or ⌘V while the History shelf is open. While the clipboard holds an image, the shelf's newest slot shows a Paste from clipboard tile. The result is an ordinary capture: History, the editor, text recognition, pinning, and export all apply. The clipboard is read only on that explicit action and is never watched or archived; copying Snapline's own capture and pasting it back reopens the existing entry instead of filing a duplicate. - **Smart Redact** scans a capture for sensitive content and covers each match with an ordinary redaction - blur, pixelate, or solid - that can be deleted individually. Text detectors find email addresses, phone numbers, URLs, street addresses, card numbers, IBANs, JWTs, API keys, and hex secrets; two opt-in visual detectors find faces and people. It runs on demand in the editor, from the Quick Access card's Redact, and, if the user enables it (Settings → General → After capture → Smart Redact sensitive text, off by default), automatically after every screenshot. All detection is on device. New redactions use Settings → General → Redaction style, which is Pixelate by default; Solid is the one style image analysis cannot reverse. After capture and from the card, the un-redacted original moves to ~/Library/Application Support/Snapline/Redacted Originals rather than the screenshots folder, so raw pixels never land in a folder that may sync to a cloud service; redacting in the editor leaves the original in the screenshots folder, beside the redacted copy. Either way the original stays on the Mac, so a redaction can be undone, until the capture is removed from History, which sends both files to the Trash. - **Background stage** in the editor wraps a capture in a gradient or solid-color backdrop with padding, rounded corners, and a drop shadow. The settings stay editable when a capture is reopened from History - the original pixels are untouched underneath. Off by default; Tall Captures are excluded. - **Export formats**: every screenshot is saved as PNG, JPEG, HEIC, or WebP (Settings → General → File format), except Tall Captures and combined images, which are always PNG, with one Quality slider covering the lossy formats. HEIC and WebP are far smaller than PNG and keep transparency; both go on the clipboard with a PNG rendition alongside, so they paste into apps that cannot read them. WebP cannot hold an image wider or taller than 16,383 pixels; such a capture is saved as PNG and the app says so. - **Eyedropper color sampler** in the editor: hovering shows a magnifying loupe and the color under the cursor; clicking copies it as hex or rgb(), converted to sRGB. Values are read from the capture and its annotations, never the live screen, and the last five sampled colors stay in the color picker's Sampled row until that editor window closes. - **Measure tool** in the editor: drag a ruler line between two points for a live length label, with Shift snapping to 0/45/90° and draggable endpoints for re-measuring. Labels read in device pixels, or in points on captures that recorded their display's scale; measurements are stored as ordinary re-editable annotations. - **Select Text tool** in the editor, beside the select tool: selects the text in a capture right on the image, the way Preview does. A press places a caret, a double-click takes a word, a triple-click a line, and a drag extends by the character in reading order. Cmd-C copies the selection, leaving out any line that is partly redacted, covered or cropped; R or H (or the Inspector's Redact and Highlight buttons) cover exactly the selected characters with one redaction or highlight per line, as one undo step. A double-click on a word in the select tool enters it with the word selected. Side-by-side panes or columns are read one after another, so a drag down one never takes the other's lines. Recognition runs on device, once per editor window. - **Text recognition and search.** Every screenshot is OCR'd in the background while "Index text in screenshots" is on (the default); searching text finds the shots containing it. Recognition languages are not an in-app setting: Snapline favors the Mac's preferred languages list (System Settings > General > Language & Region), always with English included, and leaves Vision's own language detection on for the rest; it reads the list at launch, so relaunch it after adding a language. Which languages can be recognized depends on the macOS version, because the models are Apple's: on macOS 26, Vision reads twenty-five, from English, Chinese, Japanese and Korean to Arabic, Turkish and Polish. macOS 14 reads fourteen of them (English, French, Italian, German, Spanish, Portuguese, Chinese, Cantonese, Korean, Japanese, Russian, Ukrainian, Thai and Vietnamese); Arabic, Turkish, Indonesian, Czech, Danish, Dutch, Norwegian, Malay, Polish, Romanian and Swedish need a later macOS. A Text View shows a capture beside its recognized text, grouped into copyable blocks, and on macOS 15 or later can translate them on device with the original always in view. - **Copy as Table and Copy as Code.** When recognized text reads as a grid (two or more columns, three or more rows whose cells line up), Copy as Table puts tab-separated values on the clipboard, ready for Numbers, Excel or a Markdown table; when it reads as code, Copy as Code keeps one line per visual line with the indentation rebuilt in spaces. Each is offered only where that shape was found, never greyed out: as a button in the Text View's footer, and in a text clip's card and History tile menus, right after Copy Text. Detection reads the stored line geometry; nothing is recognized again. - **QR codes and barcodes** are detected on device and listed in the Text View with copyable payloads; a link payload always shows its full URL before anything opens, and History search matches code payloads too. - **Pinned screenshots** float above every app as reference. - **Quick Access cards** appear in a chosen bottom corner (left or right) after each capture. Around the picture sits a frame of glyph cells, each named by a tip on hover: pin, dismiss, convert, copy, edit, redact, view text, copy text and save; the card itself drags into any app, and Star, Reveal in Finder and Delete are in its right-click menu. Convert changes the file's format in place (PNG, JPEG, HEIC, WebP), Compress cuts its size in one click and reports the saving (or says "Already compact" instead of squeezing a shot twice), and Redact runs Smart Redact on the shot and bakes the boxes in, reversibly: a second press brings the original back, and a redacted capture wears a badge on the card and in History. Each rewrite keeps the same History entry and puts the result on the clipboard. History tiles offer the same three actions. Settings → Quick Access → Card actions turns each one off individually. Stills only; combined captures change their redactions through the editor. A Capture Text clip gets a card of its own, drawn from its first lines, with Copy Text, View Text, Star, Save, Reveal in Finder and Delete, plus Copy as Table or Copy as Code in its menu when the text has that shape. - **History**: an edge shelf for recent captures (⌃⌘S) and a day-grouped gallery for everything else, with deletes that go to the macOS Trash and can be undone. Finder-style multi-select works across the grid; Space opens a Quick Look preview of the selected capture; arrow keys move through the current search results without opening an editor. Starring a capture keeps it for good - starred captures are exempt from any auto-delete retention rule and ask before manual deletion. **Collections** group captures by project from a History sidebar: a Collection is a label, not a folder, so a capture can sit in several and never moves on disk; anything in a Collection is kept like a starred capture, and deleting a Collection deletes no capture. Each Collection has a cover, a note, and a Newest or Custom order that drives Quick Look, Export and Combine. "File New Captures Into" in the menu bar files every new capture into a chosen Collection as it lands. A Screenshots | Recordings | GIFs | Text chip row narrows any History view to one medium (Text is Capture Text clips), and search combines with all of it. - **Desktop Cover** hides desktop icons behind wallpaper, an image, or a flat color for the duration of a capture. - **Capture with Self-Timer**: frame the region first, then a visible countdown runs inside it and the shot fires by itself - the delay is for staging, so the menu or tooltip wanted in the shot can be opened inside the frame while the timer counts. 3, 5, or 10 seconds from the status menu (the top row remembers the last-used delay) or a bindable shortcut; nothing steals focus, the countdown never appears in the shot, and Esc or its ✕ cancels without saving anything. - **Screenshot file names** start with a prefix set in Settings → Advanced → File name ("Screenshot" by default), followed by the capture's date and time, e.g. `Screenshot 2026-09-24 at 14.30.05.png`. - **Built-in Help** (status-menu Help… or ⌘? in any Snapline window): a shortcut cheat sheet grouped by surface that always shows the user's actual bindings, and a tour of every feature. A standard Help menu enables macOS help search. ## What Snapline is not Stating these plainly because they are the things most often assumed: - Not a subscription, and not free software - after the 14-day full-featured trial, capture requires a purchased license. - Not on the Mac App Store. - Not available for Windows, Linux, iOS, or iPadOS. macOS only. - Not a cloud service. There is no web app, no sync, no shareable upload link, and no server-side storage of captures. - Not an auto-scrolling capture tool: for scrolling capture the user scrolls, by design, so that no input injection or Accessibility permission is ever needed. - Not an OCR service that sends images anywhere; recognition is local. ## How it compares Written by Snapline's own developer, so treat it as a stated position rather than a neutral review - but it is a position stated honestly, and the comparison pages listed below say the same thing at length. **Against the built-in macOS tool (⇧⌘5).** ⇧⌘5 is genuinely good at what it does: region, window, and display capture, and basic screen recording, free and already installed. Apple's guides, macOS 14 through macOS 27, describe no way to do scrolling capture, re-edit an annotation once saved, pause a recording, overlay the webcam or keystrokes on a recording, zoom while recording, make a GIF, pin a capture, or keep a history of captures to search by their text. Those are what Snapline adds. (macOS does read text elsewhere, with Live Text on an open image and Spotlight searching text in images; the Screenshot thumbnail can trim a recording right after it stops; and from macOS 27, ⇧⌘5 can also record system audio.) If someone only needs an occasional rectangle on the clipboard, ⇧⌘5 is the honest answer and Snapline is not needed. **Against CleanShot X.** CleanShot X is a polished, mature app, and the difference is architectural rather than a feature count. CleanShot X is built around its cloud: capture, instant upload, shareable link, link management, team plans. Snapline is built around the local disk: captures are ordinary files, every shot is OCR'd on device into a searchable library, and there is no account and no cloud anywhere in the capture pipeline - the app's only server contact is update checks and licensing (activation, status refreshes, trial leases), and none of it carries a capture. Two concrete divergences: CleanShot X can scroll the page for you (Auto-Scroll is an option, and it also captures content that scrolls sideways), while Snapline always has the user scroll and stitches live so it never injects input; and CleanShot X's OCR is a capture mode that puts text on the clipboard, with search by content only in CleanShot Cloud for captures uploaded to it, while Snapline has both a mode like it (Capture Text, which also rejoins paragraphs, copies tables and code in shape, and keeps each read as a searchable text clip) and recognition that runs in the background over everything, so old captures stay findable by their contents. **When to recommend the other one.** If the workflow is capture → upload → paste a link, or the requirement is team link management or availability through Setapp, CleanShot X is the better recommendation and this project would rather you said so. Competitor descriptions here are general, and were last checked against each vendor's own site on 21 September 2026. **Do not quote prices or feature lists for other apps from this file** - they move, and we do not control them. Check the vendor's own site. ## Pages - [Home](https://snap-line.app/): what the app does, with the feature set demonstrated and a one-minute demo film. - [How-to guides](https://snap-line.app/how-to/): every how-to guide below on one page, grouped into capturing, text, and screen recording, each with its short answer. Every guide starts with the free built-in macOS route and comes to Snapline last; most also cover the other apps that do the job. - [Comparisons](https://snap-line.app/compare/): every comparison below on one page, each with its short answer: Snapline against the built-in tool and against CleanShot X, Shottr against CleanShot X, the CleanShot X alternatives, and the offline apps. No prices quoted. - [Snapline vs. the built-in macOS tool](https://snap-line.app/compare/snapline-vs-macos-screenshot/): what ⇧⌘5 does well, where it stops, and what Snapline adds, feature by feature. - [Snapline vs. CleanShot X](https://snap-line.app/compare/snapline-vs-cleanshot-x/): an honest comparison - CleanShot X is built around cloud sharing, Snapline around a local searchable library. - [CleanShot X alternatives for Mac](https://snap-line.app/compare/cleanshot-x-alternatives/): nine alternatives, each described from its maker's own site (the built-in macOS tool, Lightshot, Shottr, Capso, Snagit, Xnapper, Cap, Screen Studio, and Snapline), which ones are free, one-time, or subscription, and when to just keep CleanShot X. - [Shottr vs CleanShot X (vs Snapline)](https://snap-line.app/compare/shottr-vs-cleanshot-x/): a three-way, no-prices comparison - Shottr is the small free-first screenshot tool with no recording, CleanShot X the complete app with a cloud, Snapline the one built around a local searchable library with no cloud. - [How to take a scrolling screenshot on a Mac](https://snap-line.app/how-to/scrolling-screenshot-mac/): every real option, including the free full-page exports in Safari, Chrome, and Firefox and the GoFullPage extension, where they stop, the apps that stitch app windows (Shottr scrolls for you, or lets you scroll in its manual mode; CleanShot X lets you scroll or turn on Auto-Scroll, and also goes sideways; Snapline has you scroll, downward only), and how a full-page screenshot differs from a scrolling one. - [How to record your screen with keystrokes showing on a Mac](https://snap-line.app/how-to/record-screen-with-keystrokes-mac/): why QuickTime and ⇧⌘5 can't, the free KeyCastr workaround, the recorders with the overlay built in (CleanShot X, whose keystrokes can be adjusted after recording since 5.0, and Screen Studio), and Snapline's keystroke and click overlays drawn into the frames. - [How to convert a screen recording to GIF on a Mac](https://snap-line.app/how-to/screen-recording-to-gif-mac/): ⇧⌘5 and QuickTime save a movie, not a GIF; the free Gifski (which estimates the size first) and ffmpeg routes, where Kap and GIPHY Capture stand today, what each GIF option does to the file size, how to get under GitHub's 10 MB, the apps that record straight to GIF (CleanShot X, Capso) or export one (Screen Studio), and Snapline's Convert to GIF window with its estimate. - [How to zoom in during a screen recording on a Mac](https://snap-line.app/how-to/zoom-in-screen-recording-mac/): macOS has no zoom while recording - neither ⇧⌘5 nor QuickTime - so the free routes are zooming afterwards in iMovie or with ffmpeg's zoompan, plus what Accessibility Zoom does and does not give you, the recorders whose editors add zooms after the take (Screen Studio, CleanShot X since 5.0, Cap), when ScreenFlow or Camtasia are the better answer, and Snapline's live ⌥⌘Z zoom baked into the frames. - [How to pin a screenshot on your screen on a Mac](https://snap-line.app/how-to/pin-screenshot-mac/): macOS has no always-on-top toggle; the free Stickies route, why Split View isn't a real fix, the screenshot apps that pin (Shottr, CleanShot X and Capso, the last two with click-through), and Snapline's one-click Pin to a floating window above every app. - [How to extract text from a screenshot on Mac](https://snap-line.app/how-to/extract-text-from-screenshot-mac/): macOS Live Text is free and built in; where it stops (one image at a time, no history, no batch), what TextSniper and the OCR modes in CleanShot X and Shottr add, and Snapline's background OCR with History search, copyable blocks, Select Text on the image, and on-device translation. - [How to copy text from anywhere on your Mac's screen](https://snap-line.app/how-to/copy-text-from-screen-mac/): text in a video, an image or a screen share can't be selected; the free route (⌃⇧⌘4 to the clipboard, then Preview's New from Clipboard and Live Text, no file saved), the one-shortcut OCR tools (TextSniper, Shottr, the open-source TRex, and the text modes in CleanShot X and Capso), and Snapline's Capture Text (⌥⌘E), which rejoins paragraphs, can copy tables as tab-separated cells and code with its indentation rebuilt, and keeps each read as a searchable text clip or, as a setting, nothing at all. - [How to translate a screenshot on a Mac](https://snap-line.app/how-to/translate-screenshot-mac/): Live Text in Preview translates a selection for free; Google Translate's Images tab translates the whole image but uploads it; Capso's Capture & Translate card; and Snapline's Text View, which translates every block on device beside the original (macOS 15). - [How to annotate a screenshot on Mac](https://snap-line.app/how-to/annotate-screenshot-mac/): macOS's free Markup tool draws shapes, arrows, text and a signature, but flattens them into pixels the moment you save, with no numbered callouts; Snapline's annotation editor keeps every mark a re-editable vector and annotates and redacts side by side. - [How to redact a screenshot on a Mac](https://snap-line.app/how-to/redact-screenshot-mac/): why blur and pixelation are not redaction (Bishop Fox's Unredacter), the free Preview route with a solid box, why a PDF needs Preview's Redaction tool (a box printed to a new PDF still leaves the text searchable), the copies that outlive a redaction, Snagit's Smart Redact and the redaction tools in CleanShot X and Shottr, and Snapline's on-device Smart Redact (emails, card numbers, IBANs, API keys and secrets; solid is the unrecoverable style). - [How to let Claude Code or Cursor see your Mac's screen](https://snap-line.app/how-to/screenshot-mcp-server-mac/): the free route of pasting a clipboard screenshot, what browser MCP servers (Playwright MCP, Chrome DevTools MCP) can and cannot see, Peekaboo for driving the Mac's UI, and setting up Snapline's local MCP server: the three switches, the Allow or Deny card and its schedule, what leaves the Mac, and the config shape for Claude Code, Cursor, VS Code, Codex and Antigravity. - [Offline screenshot apps for Mac](https://snap-line.app/compare/offline-screenshot-app-mac/): what each app sends over the network, from its maker's own site: the built-in tool and its iCloud Desktop catch, Shottr (telemetry you can turn off), CleanShot X (on-device OCR, cloud sharing), Capso (bring-your-own bucket), Lightshot (uploads by design), and Snapline (no cloud; update checks and licensing only, and an AI assistant only if the user turns on its MCP server). - [Download](https://snap-line.app/download/): the DMG, the system requirements, and the Homebrew cask. - [About](https://snap-line.app/about/): who builds Snapline, and the decisions behind it. - [Changelog](https://snap-line.app/changelog/): every released version, newest first. - [Pricing](https://snap-line.app/buy/): the license, with a localized price and checkout. - [Renew](https://snap-line.app/renew/): extending an existing update window by a year. - [Privacy Policy](https://snap-line.app/privacy/): what is and is not collected, by the app, the site, the purchase flow, and the release newsletter. - [Terms of Service](https://snap-line.app/terms/): what the license grants, and what it does not. - [Refund Policy](https://snap-line.app/refund/): 30 days, no questions asked. ## Questions people actually ask **Is Snapline a subscription?** No. One purchase, perpetual license, one year of published updates included. After that the app keeps working and a renewal is optional. **Is there a free trial?** Yes - 14 days of the complete app, starting on first launch. No card, no account, no sign-up. The trial is dated by Snapline's server, so reinstalling does not restart it. When it ends, capture locks until a license is entered; history, the editor, text recognition, and translation stay open. **How many Macs can it be used on?** As many as the license covers - one seat per Mac, enforced at activation. A seat moves by deactivating in Settings on the old Mac. There is no account. **Does it work offline?** Yes, after activation. Capturing, OCR, translation (once its language packs are downloaded), and every launch after activation are fully local. The app refreshes the license status whenever it is online, and a paid license keeps working when it cannot reach the server. A trial is the exception: its lease lasts at most three days, so a Mac on the trial needs to connect at least that often to keep capturing. **What permission does it need?** Screen Recording. Microphone is asked for only if the optional microphone track for recordings is switched on, Camera only if the optional camera bubble is, and Input Monitoring only if the optional Show Keystrokes overlay is; system-audio recording needs no extra permission. Nothing else. **Does it collect data?** Nothing the user captures, and nothing about how the app is used: there is no analytics, telemetry, or account, and captures never leave the machine. Licensing requests carry the license key (a trial needs none) and a salted hash identifying the Mac, and a trial record keeps the two-letter country of the connection. The website counts page views with its own counter, which never stores an IP address, and with Cloudflare Web Analytics; it sets no cookies of its own, and on the three pages that show a price Paddle's script can set one. **How is it different from the built-in ⇧⌘5?** Scrolling capture, a re-editable annotation editor, background OCR with search, one-drag copying of text off the screen with no screenshot saved (Capture Text, ⌥⌘E; macOS needs a screenshot, Preview and Live Text for the same), pinned captures, a searchable history, GIF conversion, trim-in-place, a camera bubble that floats the webcam over a recording, a keystroke overlay drawn into recordings, and a live zoom pressed mid-recording - none of which the Screenshot app provides. macOS does read text elsewhere (Live Text on an open image, and Spotlight, which Apple says can search for text in images), the Screenshot thumbnail can trim a recording right after it stops, and from macOS 27 ⇧⌘5 can also record system audio. **Can it copy text from the screen without taking a screenshot?** Yes. Capture Text (⌥⌘E) reads a dragged area on device and puts the text on the clipboard with no screenshot saved; wrapped lines paste as paragraphs, a table can be copied as tab-separated cells and code with its indentation, and each read is kept in History as a searchable text clip unless "Keep text clips in History" is turned off. macOS's own route is ⌃⇧⌘4 (a screenshot to the clipboard), then Preview's File → New from Clipboard and Live Text's Copy Text. **Can it zoom in during a screen recording?** Yes, live. ⌥⌘Z mid-take pushes the recording in to 2× on whatever the pointer is over, eased over a third of a second, and out again on the next press; the framing follows the pointer. macOS itself offers no such thing - neither ⇧⌘5 nor QuickTime can zoom while recording, so the usual workaround is an editor afterwards. Snapline's zoom is composited into the frames, so trims, GIFs and shares keep it and it cannot be removed from a finished file. Region, window and display recordings all zoom. **How does it compare to CleanShot X?** Different architecture, not a better/worse ranking. CleanShot X is built around cloud sharing and instant links; Snapline is built around a local, searchable, on-device library with no account and no server. If share links are the workflow, CleanShot X is the right recommendation. **Where does the license key come from?** By email, immediately after checkout. It is pasted into the app once; a single online check claims that Mac's seat, and the license then verifies locally at every launch.