duongductrong/Snapzy
60.0
Adequate · 30 September 2026
146.7k
lines of production code
Swift
primary language
2
measurements over time
What this system is
Snapzy is a macOS screen capture and recording application that handles screenshots, screen recordings, and GIF generation with integrated annotation and video editing capabilities. It features advanced capture modes such as delayed capture, scrolling capture, and smart element selection, alongside OCR and QR code detection. The system manages a local history of captures, supports cloud storage integration for remote uploads, and provides a customizable interface with a floating quick-access panel and detailed preferences.
Features
Add Homebrew Cask for Snapzy v2.0.0
Users can now install Snapzy via Homebrew using the new Cask definition. This entry introduces version 2.0.0, which requires macOS Ventura or later, and includes a caveat instructing users to grant Screen Recording permissions upon first launch. The cask is configured for the notarized build, reflecting the app's signing status.
Casks · high confidence
Add keyboard shortcut overlay for quick access and configuration
Users can now open a full-screen overlay panel displaying all available keyboard shortcuts, organized into sections for capture, recording, tools, history, quick access, and annotation actions. The overlay provides a visual reference for current keybindings, indicates which shortcuts are enabled or disabled, and includes a direct link to open the shortcuts settings for customization. This feature enhances discoverability and allows users to quickly review or modify their shortcut configurations without navigating through menus.
Snapzy/Features/Shortcuts · high confidence
Add language selection feature in preferences with localization support
Users can now select their preferred application language directly within the Preferences interface. This change introduces a new language management system that supports English, Vietnamese, Simplified Chinese, Traditional Chinese, Spanish, Japanese, Korean, Russian, French, and German. Selecting a new language applies an immediate override for the app's interface strings, though a relaunch is required for the change to take effect across all surfaces. The localization infrastructure has also been updated to map specific UI sections (such as Capture, Annotate, and Cloud settings) to their respective string tables.
Snapzy/Shared/Localization · high confidence
Add login item management with configuration sync
Users can now control whether Snapzy launches at login via a new PreferencesLoginItemManager. This manager uses SMAppService to register or unregister the app and automatically triggers a background configuration sync whenever the launch-at-login preference is changed, ensuring the setting is persisted across devices.
Snapzy/Features/Preferences/Managers · high confidence
Add sponsor link data model and list
A new shared data model (SponsorLink) and a static list of sponsor destinations (GitHub Sponsors, Ko-fi, PayPal) are introduced in Snapzy/Shared/SponsorLinks.swift. This provides the structured data (titles, subtitles, icons, colors, and URLs) that the onboarding and preferences UIs consume to display sponsor options.
Snapzy/Shared · high confidence
Added internal performance and accuracy benchmarking tools
New Swift and Python scripts have been added to the \scripts/swift-tools\ directory to measure and verify the performance and accuracy of core capture features. The \ocr-readme-benchmark\ script runs OCR accuracy tests across multiple languages and styles to support transparency notes. The \qr-detection-performance-probe\ script measures Vision framework QR detection latency on CPU versus default compute. The \scrolling-capture-accuracy-benchmark\ suite validates the stitching accuracy of long scrolling captures against synthetic pixel-perfect fixtures. Finally, the \video-editor-performance\ tools assemble and run a CPU-bound probe to measure the latency and correctness of the video editor's auto-focus camera path generation.
scripts/swift-tools · high confidence
Added legacy license cleanup and high-performance WebP encoding services
This update introduces two new services within the Snapzy backend. The LegacyLicenseCleanupService automatically removes residual license data (including UserDefaults and Keychain items) left over from the retired Polar integration to ensure a clean state. Additionally, a new WebPEncoderService replaces the previous encoding approach by leveraging Swift-WebP (libwebp) with optimized parameters (method 1, multi-threading, photo preset) for faster, high-quality WebP image export.
Snapzy/Services · high confidence
Added local bootstrap scripts for S3 and R2-compatible object storage
Developers can now automatically provision local object storage environments for testing. New shell scripts in the local-object-storage directory handle bootstrapping for both LocalStack (S3) and MinIO (R2-style), including bucket creation, region configuration, and public-read access policies.
scripts/local-object-storage · high confidence
Annotate editor service layer refactored for new tools and performance
The annotation service layer has been restructured to support a broader range of annotation types and improved rendering performance. A new factory pattern centralizes the creation of annotation items, enabling support for new tools such as filled rectangles, counters, watermarks, and text-snapped highlights, while also handling complex arrow styles with bend directions and endpoint variations. Rendering has been optimized through a dedicated blur cache manager that stores pre-computed blur effects to prevent UI blocking during interactive editing, and the blur effect renderer itself has been updated to support separate source and destination regions with clamping for accurate pixelated redaction. Additionally, the editor now includes services for persisting user-defined canvas presets and color palettes, handling 90-degree image rotation with coordinate preservation, and exporting mockups with 3D perspective transformations.
Snapzy/Features/Annotate/Services · high confidence
Configurable recording overlays and microphone input selection
Users can now customize screen recording overlays, including configurable mouse click highlights (size, color, ripple count, opacity) and keystroke badges (position, font size, display duration). Annotation tools during recording support configurable shortcuts (modifier key and hold duration) and auto-clear modes (time-based or count-based). Additionally, screen recordings can now capture audio from specific microphone inputs rather than only the system default.
Snapzy/Features/Recording/Models · high confidence
Deferred tab view initialization via LazyView component
A new LazyView component has been added to the common library to defer the initialization of SwiftUI views until they are actually rendered. This allows tab views to avoid eagerly instantiating all tabs at once, preventing expensive setup operations and observed object subscriptions for views that are not currently visible.
Snapzy/Common · high confidence
Delayed capture countdown and OCR result notifications
Users can now schedule screenshots with a 3, 5, or 10-second delay, which displays a non-activating countdown HUD that can be cancelled via Escape or click. Additionally, OCR captures now provide clearer feedback: a native macOS notification announces success or failure, with an in-app toast fallback if notifications are disabled, and a floating prompt appears to let users open any detected hyperlinks directly from the capture.
Snapzy/Features/Capture · high confidence
Initial localization infrastructure and app metadata setup
This change introduces the foundational resource structure for the Snapzy application. It adds the \Info.plist\ file, which defines the app's bundle identity, document type associations (supporting standard image formats like PNG, JPEG, HEIC, and WebP), URL scheme handling (\snapzy://\), and required privacy usage descriptions for screen capture, microphone, and camera access. Additionally, it establishes the multi-language localization framework by adding \xcstrings\ catalogs for key feature areas including Annotate, Capture, Cloud, Combine, Menubar, Onboarding, Quick Access, Recording, Settings, Shortcuts, Video Editor, and What's New. A new asset catalog for the menu bar icon is also included to support the customizable menu bar icon feature.
Snapzy/Resources · high confidence
Introduce
Users can now see a new feature onboarding experience via a floating window that displays a carousel of screens driven by a local \whats\_new.json\ configuration. The system tracks which campaigns have been viewed using \UserDefaults\, automatically skipping previously seen content, and supports localized titles and descriptions. The UI includes navigation controls, swipe gestures, and optional action buttons that can trigger internal app features like smart capture.
Snapzy/Shared/Components/FeatureIntro · high confidence
Introduce Liquid Glass design system with native macOS 26+ support and legacy fallback
The Snapzy design system now features a new Liquid Glass aesthetic, providing native Apple Liquid Glass rendering on macOS 26+ and a custom 4-layer optical composite (substrate, refraction, tint, and specular hairline) for macOS 13–15. This update adds a suite of SwiftUI components including \LiquidGlassActionBar\, \LiquidGlassButton\, \LiquidGlassSegmentedControl\, and \LiquidGlassControlChrome\, all featuring tactile spring animations, hover/press states, and rim lighting. A new \LiquidGlassPlayground\ tool is included for interactive inspection of these surfaces, and the system respects a user preference toggle to enable or disable the glass effect.
Snapzy/Shared/DesignSystem · high confidence
Introduce Quick Access screenshot preview panel with customizable animations and gestures
The Quick Access feature now provides a floating panel that displays a stack of recent screenshots and videos. Users can customize the panel's appearance and behavior through settings, including choosing between slide or scale animation styles for card insertion and removal, adjusting the panel's position and scale, and configuring auto-dismiss delays. The interface supports two-finger swipe-to-dismiss gestures for cards, allows hiding cards when associated editor windows are open, and includes a keyboard shortcut to edit the latest capture directly from the preview.
Snapzy/Features/QuickAccess · high confidence
Introduce dedicated microphone audio capture with selection and quality controls
Users can now select a specific microphone input for screen recordings and toggle microphone capture independently of system audio. The recording toolbar includes a microphone toggle, and the underlying capture engine uses a dedicated AVFoundation session to ensure proper 48 kHz resampling, preventing spectral imaging artifacts that could occur with native Bluetooth or low-sample-rate devices. This change also adds the necessary infrastructure to manage microphone authorization and device selection within the recording session.
Snapzy/Features/Recording · high confidence
Introduce dedicated video editor with GIF support and keyboard shortcuts
The video editor now features a main container view that adapts its interface based on content type: it displays a dedicated animated GIF viewer and settings panel for GIFs, while showing the standard video workspace (preview, timeline, controls) for video files. The editor includes a comprehensive set of keyboard shortcuts for non-GIF content, including zooming at the playhead (Z), splitting clips (S), deleting selected elements, setting trim points (I/O), and controlling timeline zoom/fit. A manager component handles window lifecycle, reusing existing editor windows for the same item or URL, and manages app activation policy to ensure visibility in the Dock when editor windows are open.
Snapzy/Features/VideoEditor · high confidence
Introduce guided scrolling capture with auto-scroll and live preview
Adds a new Scrolling Capture feature that captures vertically scrolling content by guiding the user to select a region and then automatically scrolling the page to stitch frames together. The implementation includes a floating HUD for session controls (start, cancel, toggle auto-scroll, done), a live preview rail that displays the stitched result with status badges (e.g., Live, Captured, Syncing), and an auto-scroll engine that generates synthetic scroll events to navigate the page. The system uses ScreenCaptureKit for low-latency frame streaming, a vision-based stitcher to align frames, and a commit scheduler to coalesce updates, ensuring a seamless capture experience with visual feedback throughout the process.
Snapzy/Services/Capture/ScrollingCapture · high confidence
Introduce persistent capture history with retention policies
Snapzy now maintains a local history of captured screenshots, videos, and GIFs, stored in a SQLite database via GRDB. This service automatically generates and caches thumbnails for history items, enforces configurable retention policies based on age and record count, and ensures that temporary files are preserved when history is enabled. A new preference key controls whether history recording is active, defaulting to enabled to prevent accidental loss of captures during quick-access dismissals.
Snapzy/Services/History · high confidence
Introduce pinned screenshot windows with Quick Access
Users can now pin Quick Access screenshots as independent, always-on-top floating windows. This new capability includes support for zooming via scroll or pinch gestures, native-style background dragging with mouse passthrough, and automatic repositioning to the active display during multi-monitor capture operations.
Snapzy/Features/QuickAccess/Managers · high confidence
Introduce sandbox-aware file access and capture cache management
The app now supports macOS App Sandbox by adding \SandboxFileAccessManager\ to handle secure, security-scoped file access for export directories, including bookmark persistence and user permission prompts. Additionally, a new \CaptureStorageManager\ provides centralized management for temporary capture files, allowing users to calculate cache size and safely clear cached captures while preventing cleanup during active recording or capture operations.
Snapzy/Services/FileAccess · high confidence
Introduces Smart Element Capture for precise window and UI element selection
Adds a new Smart Element Capture capability that allows users to capture specific application windows or UI elements (such as buttons, text fields, and menus) by hovering over them, rather than selecting a manual rectangular area. This feature introduces an AXElementInspector to filter and identify meaningful accessibility elements, an ActiveWindowResolver for one-shot active-window captures, and an AreaSelectionMagnifier with enhanced zoom and color-picking tools to aid in precise targeting. It also includes background cursor control to ensure the system cursor remains hidden during live-capture passthrough, improving the visual experience when selecting elements.
Snapzy/Services/Capture · high confidence
Introduces customizable menu bar icon styles and menu item ordering
Users can now personalize the Snapzy menu bar experience by choosing from several icon styles—including the default artwork, built-in SF Symbols (camera, scissors, photo), or a user-imported custom PNG—and by reordering or hiding specific menu entries within capture, recording, and tools groups. This customization is persisted in user defaults and supported via TOML configuration import/export, with the new \MenuBarCustomizationStore\ and \MenuBarIconRenderer\ handling the storage and rendering logic.
Snapzy/App · high confidence
Introduces floating history panel with pinning, toggle mode, and cloud upload support
Users can now interact with capture history via a new floating panel that stays on top of other windows. This panel supports pinning to keep it visible, a toggle mode shortcut (default Cmd+E) to switch between compact and expanded views, and global shortcuts for selecting all (Cmd+A) and copying (Cmd+). It also includes settings for position, display scale, item limits, and auto-clearing history, along with background cloud upload tracking for history items.
Snapzy/Features/History/Managers · high confidence
Introduction of stable and beta update channels
The application now supports distinct update channels, allowing users to opt into pre-release builds via a new 'beta' channel in addition to the default 'stable' channel. This capability is implemented in the new UpdaterManager singleton, which manages the Sparkle update lifecycle and respects the user's channel preference stored in UserDefaults to determine which appcast items are visible.
Snapzy/Services/Updates · high confidence
Modernized preferences navigation and expanded configuration options
The preferences interface has been restructured with a new sidebar navigation that groups settings into General, Menu Bar, Quick Access, History, Capture, Annotate, Cloud, Shortcuts, Permissions, Advanced, and About tabs, remembering the last selected tab. This update introduces several new user-configurable options: a collapsible contributors section in the About tab, customizable floating panel positions for cloud uploads, and detailed settings for OCR model selection including support for custom endpoints with connection testing. Additionally, users can now manage a wider range of preferences including screenshot formats, recording resolutions, annotation tools, and quick access behaviors, all centralized under a unified key system for better persistence and management.
Snapzy/Features/Preferences/Models · high confidence
New UI styling and multi-monitor support extensions
This update introduces a suite of new extensions in the shared layer to enhance the user interface and multi-monitor handling. For UI consistency, it adds \NSWindow\ extensions for applying custom corner radii, positioning traffic light buttons, and managing unified window spacing (toolbar, content, and bottom bar), alongside SwiftUI modifiers for button styling and selective corner rounding. It also introduces a \Binding\ extension for stepped slider values to improve precision in annotation and preferences settings. Additionally, a new \ScreenUtility\ is added to accurately detect the active screen based on mouse location, ensuring correct UI positioning and capture operations on multi-display setups.
Snapzy/Shared/Extensions · high confidence
New animated splash screen with integrated onboarding flow
Users now see a new animated splash screen on launch that displays the app logo, a welcome message, and a list of supported languages. The splash includes a 'Continue' button and a 'Do not show again' toggle, allowing users to skip future launches. If onboarding is required or a sponsor prompt is pending, the splash transitions into a unified onboarding flow covering language selection, permissions, configuration access, keyboard shortcuts, and diagnostics opt-in, with smooth step-by-step animations and navigation controls.
Snapzy/Features/Splash · high confidence
New annotation editor UI components and canvas interaction layer
The annotation editor now uses a new set of SwiftUI components for its interface and rendering. Users can edit selected annotation properties (stroke/fill color, width) in a dedicated sidebar section, and the bottom bar now includes zoom controls, a drag handle for exporting, and context-specific toolbars (e.g., for cropping with aspect ratio and snap options). The canvas itself is rendered via a new AppKit-backed drawing view wrapped in SwiftUI, featuring a proxy layer to correctly handle hit-testing and mouse events when the canvas is zoomed or panned. Additionally, new views support combining multiple images (stitching), applying 3D mockup transformations, and handling image drops into the editor.
Snapzy/Features/Annotate/Components · high confidence
New annotation tools, canvas presets, and session persistence models
The annotation model layer has been expanded to support new capabilities and improved state management. New annotation tools are now available, including a filled rectangle, counter, watermark, and mockup tool, alongside enhanced support for blur effects (pixelated, hexagonal, crystallized, pointillism, halftone, tape, washi) and text presentations (plain, label, callout). Users can now customize the annotation canvas with background styles (gradients, wallpapers, solid colors, blurred effects), corner radius, padding, and aspect ratio options, which can be saved as user-defined presets. The system also introduces persisted annotation sessions, allowing users to save and restore their annotation state, including crop settings, canvas effects, and combined image layouts, ensuring continuity across sessions. Additionally, new models handle 3D mockup transformations, crop aspect ratios, and drag constraints for more precise annotation drawing.
Snapzy/Features/Annotate/Models · high confidence
New annotation window architecture and mockup renderer
The annotation module introduces a dedicated \AnnotateWindow\ class and \AnnotateWindowController\ to manage the annotation editor's lifecycle, including dark mode theming, window level synchronization with focus state, and keyboard shortcut routing (copy, paste, duplicate, undo/redo). A new \AnnotateWindowEventRouter\ isolates notification handling to specific windows, enabling support for multiple independent annotation windows. Additionally, a new \MockupManager\ singleton is added to handle the opening and closing of a separate mockup renderer window for image previews.
Snapzy/Features/Annotate/Managers · high confidence
New centralized keyboard shortcut management with conflict detection
Snapzy introduces a dedicated shortcut management system that centralizes global keyboard shortcuts, including support for the Fn key and punctuation keys. The new architecture includes a validation service that detects conflicts between Snapzy shortcuts and macOS system screenshot shortcuts, guiding users to resolve them via System Settings. It also prevents internal conflicts between global, annotation, and quick-access shortcuts, ensuring a consistent and conflict-free user experience.
Snapzy/Services/Shortcuts · high confidence
New cloud storage integration with S3/R2/Google Drive, credential security, and usage tracking
Users can now connect Snapzy to cloud storage providers (AWS S3, Cloudflare R2, and Google Drive) to upload and manage files remotely. The service includes secure credential handling via the macOS Keychain with optional password protection, and supports encrypted credential export/import for transferring settings between devices. Uploaded files can be configured with automatic expiration (lifecycle rules) and the app tracks bucket usage statistics, including storage size and object counts. Upload history is persisted locally using SQLite/GRDB, allowing users to view past uploads with thumbnails and content type details.
Snapzy/Services/Cloud · high confidence
New developer tooling and automation scripts for Snapzy
This update introduces a comprehensive suite of new shell and Python scripts to streamline the Snapzy development and release lifecycle. Key additions include \build\_and\_run.sh\ for building, launching, and streaming logs with configurable log levels; \bump-version.sh\ for managing stable and beta version bumps with pre-release semantics; and \generate-changelog.sh\ which produces structured changelogs from conventional commits, including GitHub username attribution and breaking change detection. The release pipeline is supported by \dry-run-release.sh\ for local ad-hoc signing verification, \create-signing-cert.sh\ for generating self-signed certificates, and \collect-crash-logs.sh\ for gathering diagnostic reports. Asset generation is handled by \generate-app-icon-assets.sh\ and \generate\_dmg\_background.py\, while quality control is enhanced with \lint-corner-radius.sh\ to enforce design tokens and \analyze-perf.sh\ to report on performance metrics captured by \monitor-perf.sh\. These scripts collectively automate local development, CI/CD integration, and release packaging tasks.
scripts · high confidence
New diagnostic infrastructure with crash detection and toast notifications
The Snapzy/Services/Diagnostics area now includes a comprehensive logging and feedback system. Users benefit from automatic crash detection via CrashSentinel, which flags abnormal session endings, and a new AppToastManager that provides non-blocking, appearance-adaptive toast notifications for user feedback. The underlying DiagnosticLogger writes detailed, structured logs to daily files in \~/Library/Logs/Snapzy/, including system context and error details, while LogCleanupScheduler automatically manages storage by deleting logs older than the configured retention period (default 3 days). Additionally, PerformanceSignpost provides DEBUG-only performance instrumentation for internal profiling.
Snapzy/Services/Diagnostics · high confidence
New inline area annotation workflow with multi-display support and smart element detection
The annotation feature now supports a new inline workflow that allows users to annotate a selected screen region immediately after capture, rather than only in a separate post-capture window. This new flow introduces per-display overlay panels for multi-display setups, integrates a magnifier and coordinate indicator, and adds smart element detection to automatically highlight windows or UI elements under the cursor during selection. It also includes new geometry utilities for crop edge snapping, text line snapping for highlighters, and image combining (stitching) layouts.
Snapzy/Features/Annotate · high confidence
New localization catalog audit tool for detecting drift
A new command-line utility, CatalogTool.swift, has been added to the tools directory to manage and validate localization catalogs. It reads a manifest to merge string fragments and provides 'audit' and 'verify' commands that detect l10n drift (missing or extra keys) and table mapping inconsistencies, reporting detailed error messages for ambiguous owners, duplicate keys, and misplaced strings to help maintain localization integrity.
tools · high confidence
New media services for foreground cutout, GIF conversion, OCR, and QR code detection
Snapzy now includes dedicated services in the Media layer to enhance screenshot and image handling. ForegroundCutoutService extracts subjects with transparent backgrounds and evaluates auto-crop safety using Vision heuristics. GIFConverter generates animated GIFs from video files using pure Apple frameworks (AVFoundation and ImageIO) with configurable frame rates and width limits. OCRService performs text recognition with image normalization, language recovery passes, and vertical CJK text support. QRCodeService detects QR codes and classifies their payloads, while OCRQRPayloadComposer combines OCR text and QR data into a single clipboard-friendly output.
Snapzy/Services/Media · high confidence
New recording overlay windows for camera, annotations, and visual feedback
Snapzy now includes dedicated overlay windows for the camera preview, annotation canvas, annotation toolbar, keystroke badges, and mouse-click highlights. These windows are configured to be transparent and captured by ScreenCaptureKit so that the camera feed, drawn annotations, typed keystrokes, and click ripple effects appear in the final recording. The region overlay also supports a dim-fill option for non-selected areas and improved dirty-rect redrawing for better performance.
Snapzy/Features/Recording/Managers · high confidence
New recording toolbar and annotation interface
The recording toolbar has been redesigned with a native macOS aesthetic, introducing a status bar with a live audio waveform, controls for microphone and camera input selection, and a capture mode toggle for area, fullscreen, and application recording. An annotation toolbar now allows users to draw, select, and move annotations with keyboard shortcuts, while an options popover provides settings for video format, quality, maximum resolution, and overlays such as cursor visibility, click highlighting, keystrokes, and area dimming.
Snapzy/Features/Recording/Components · high confidence
Redesigned onboarding flow with new steps and adaptive UI
The onboarding experience has been completely rebuilt with a new multi-step flow that includes dedicated screens for language selection, diagnostic logging opt-in, TOML configuration access setup, permission grants (screen recording, microphone, accessibility, notifications), and shortcut conflict detection. The interface now uses an opaque adaptive background with a subtle noise texture and a consistent design system that supports both dark and light modes, replacing the previous transparent material style. Users are guided through each step with clear status indicators, actionable permission rows, and localized text for all labels and hints.
Snapzy/Features/Onboarding · high confidence
Support for custom remote OCR endpoints and improved CJK text recognition
Users can now configure and use custom OpenAI-compatible OCR endpoints (such as Ollama or vLLM) alongside the built-in Apple Vision OCR, with API keys securely stored in the Keychain and model selection persisted in settings. The OCR engine also includes improved handling for vertical CJK text through bitmap analysis and normalization, and automatically detects web links within captured text to offer opening them directly.
Snapzy/Services/Media/OCR · high confidence
User-managed TOML configuration with import, export, and auto-apply
Snapzy now supports a portable TOML configuration file (config.toml) that users can edit externally. The application can export current settings to this file and import them back, with the option to automatically apply changes from the file on startup. This enables easier backup, migration, and manual tweaking of preferences.
Snapzy/Services/Configuration · high confidence
Video editor gains GIF resizing, auto-focus zoom, and session persistence
The video editor now includes a dedicated GIF resizing service that resizes animated GIFs while preserving frame delays and loop counts, along with a settings panel for export. A new auto-focus engine precomputes camera paths based on mouse tracking to enable smooth, cursor-follow zoom effects during export. Additionally, the editor now supports non-destructive session persistence, allowing users to save and resume editing work via durable sidecar storage, and introduces a thumbnail cache for faster preview of inserted clips.
Snapzy/Features/VideoEditor/Services · high confidence
Removals
Removed SwiftData scaffolding and default app entry point
The ZapShot application no longer includes the initial SwiftData-based template code. Specifically, the \ContentView\ (which displayed a list of timestamped items), the \Item\ model definition, and the \ZapShotApp\ entry point (which configured the SwiftData container) have been deleted. This removes the default data persistence and navigation structure, clearing the way for the new screen capture functionality.
ZapShot · high confidence
ZapShot project file removed
The ZapShot.xcodeproj project file has been deleted from the repository, removing the Xcode project configuration and build settings for the ZapShot application.
ZapShot.xcodeproj · high confidence
Architecture
Project renamed to Snapzy with new dependency and architecture setup
The Xcode project has been renamed from ZapShot to Snapzy, updating all scheme references and build configurations. This change introduces three new Swift Package Manager dependencies: Sparkle for application updates, Swift-WebP for optimized WebP image encoding, and GRDB.swift for SQLite-based persistence. The project structure also adopts file-system synchronization for source groups and configures a new SnapzyTests target alongside the main application.
Snapzy.xcodeproj · high confidence
Behavioural changes
Add arrow styling options and update annotation handling for arrows
The app now supports specific styling for arrow annotations during recording. A new factory service, RecordingAnnotationFactory, handles the creation of annotations, mapping the arrow tool to a straight arrow geometry. This ensures that arrows are rendered with the correct bounds and properties, distinct from other shapes like rectangles or lines.
Snapzy/Features/Recording/Services · high confidence
App Sandbox and security entitlements enabled
Snapzy now runs within the macOS App Sandbox, restricting file access to user-selected locations and requiring explicit permissions for network, audio, and camera access. This change improves security and privacy by ensuring the app adheres to Apple's sandboxing requirements, while also introducing temporary exceptions for specific system preferences and Mach services to maintain functionality.
Snapzy · high confidence
Automatic migration of data from sandboxed app versions
Users upgrading from a sandboxed version of Snapzy will now have their Application Support data, user preferences, and logs automatically migrated to the new non-sandboxed environment. This one-time process runs silently in the background upon first launch after the upgrade, ensuring that existing settings and history are preserved without requiring manual intervention.
Snapzy/Services/Migration · high confidence
Centralized sound playback with macOS native screenshot audio
The application now uses a centralized SoundManager to handle all audio feedback, ensuring playback respects the user's 'Play Sounds' preference. For screenshot captures, the system attempts to play the native macOS screenshot sound (using current or legacy system paths) and falls back to the 'Glass' sound if unavailable, providing a more authentic user experience on macOS.
Snapzy/Shared/Services · high confidence
Centralized theme management with system appearance tracking
The application now uses a new ThemeManager to handle appearance state, allowing users to select Light, Dark, or System mode which is persisted via UserDefaults. This manager automatically detects system theme changes and updates the app's color scheme accordingly, ensuring consistent visual styling across SwiftUI and AppKit components.
Snapzy/Services/Appearance · high confidence
Configurable floating history panel position and background style
Users can now customize the floating history panel's placement on the screen, choosing between top-center, bottom-center, or center positions, and select its visual appearance by switching between a HUD (translucent) or solid background style. These settings are persisted in user defaults, allowing the panel to retain the user's preferred layout and aesthetic across sessions.
Snapzy/Features/History/Models · high confidence
Debug builds skip strict bundle signature validation
AppIdentityManager now skips strict code signature validation in debug builds to prevent permission flow failures caused by Xcode's ad-hoc signing. Release builds continue to enforce strict signature checks, while quarantine and bundle identifier checks remain active for both configurations.
Snapzy/Services/AppIdentity · high confidence
Draggable diagnostic log bundle for problem reports
The crash report alert now includes a draggable file icon representing a zipped diagnostic log bundle. Users can drag this file directly onto the browser upload field of the problem report page, simplifying the process of attaching logs when submitting feedback.
Snapzy/Features/CrashReport · high confidence
Enhanced Quick Access panel with sound effects, hover shortcuts, and refined animations
The Quick Access feature now includes sound feedback for actions like appearing, copying, saving, and deleting, with a dedicated toggle in preferences to enable or disable these effects. Hovering over a card now supports custom keyboard shortcuts that are routed precisely via an event tap, ensuring they only trigger while the pointer is over the panel. The panel's visual behavior has been refined with new, smoother animations for sliding in and out, card insertions, and hover overlays, alongside a pausable countdown timer that controls the auto-dismissal of cards.
Snapzy/Features/QuickAccess/Services · high confidence
Improved screen capture exclusion and wallpaper management
Screen captures now exclude desktop icons and widgets by referencing Finder and widget processes via ScreenCaptureKit filters, keeping Finder windows visible while hiding desktop elements. The wallpaper service now loads bundled default wallpapers, supports adding and removing custom wallpapers with secure bookmark persistence, and caches thumbnails and previews to improve rendering performance.
Snapzy/Services/Wallpaper · high confidence
Introduces Liquid Glass design system with centralized style tokens
The app now uses a new 'Liquid Glass' visual style, implemented through new style files in the Shared/Styles directory. This includes a centralized design token system (DesignTokens.swift) defining spacing, sizing, and semantic colors, a proportional corner-radius scale (RadiusTokens.swift) that adjusts roundness based on control height, and new shared UI components (ToolbarControls.swift) for toolbar and bottom-bar buttons that feature translucent glass surfaces on hover or selection. An AppearanceMode enum is also added to support system, light, and dark mode preferences.
Snapzy/Shared/Styles · high confidence
New dedicated video editor window with focus-aware behavior and theme support
The video editor now uses a custom \VideoEditorWindow\ and \VideoEditorWindowController\ to manage its lifecycle, replacing the previous window implementation. This change introduces a dark-mode-aware appearance that syncs with system themes, ensures proper Cmd+Tab cycling via window collection behavior, and dynamically adjusts the window level to stay active when focused. It also handles playback toggling via the spacebar and suppresses unhandled copy shortcuts to prevent system alert sounds, while managing file access scopes for both temporary Quick Access captures and standard files.
Snapzy/Features/VideoEditor/Managers · high confidence
New macOS-native shortcut recording UI with Liquid Glass styling
The shortcut configuration interface has been redesigned with a new macOS-native aesthetic and enhanced interaction model. Users now see keyboard shortcuts rendered as glass-style keycaps (KeyCapView, KeyCapGroupView) that visually indicate recording status, conflicts, and validation issues. The ShortcutRecorderView and SingleKeyRecorderView provide a more intuitive way to assign and manage shortcuts, including support for single-key shortcuts for annotation tools, context badges showing where tools are available, and inline validation highlighting for conflicts. The UI also includes reusable StatusBadge and TooltipView components for consistent status indicators and help text.
Snapzy/Shared/Components · high confidence
Quick Access customization, swipe gestures, and multi-display anchoring
The Quick Access panel now supports extensive user configuration and improved multi-monitor behavior. Users can customize the order, visibility, and slot assignments of actions (such as copy, save, edit, and pin) via a new configuration store, and assign keyboard shortcuts to these actions. Trackpad swipe gestures are now configurable, with a new default of 'inverted' mode and the ability to map left/right swipes to specific actions. Additionally, the panel is now anchored to the specific display where a capture occurred, preventing it from jumping screens on multi-display setups, and pinned screenshot windows include sizing policies and zoom state management.
Snapzy/Features/QuickAccess/Models · high confidence
Redesigned Preferences UI with new tabs and components
The Preferences interface has been completely overhauled with a modern, card-based layout. A new About tab displays app version, update channel selection, and contributor credits. The Advanced tab now includes TOML configuration import/export, sync status, and diagnostic logging controls. Capture settings are organized into segmented tabs for General, Screenshot, Recording, and OCR, with granular controls for post-capture actions, mouse highlights, and keystroke overlays. An Annotate tab manages editor behaviors like default tools and clipboard handling. Cloud settings now feature password-protected credential import/export and upload history management. The Appearance tab offers a visual thumbnail picker for light/dark modes.
Snapzy/Features/Preferences/Components · high confidence
Redesigned Preferences window with modern sidebar navigation and enhanced capture/annotation controls
The Preferences window has been completely overhauled to use a modern macOS-style sidebar interface with fixed column widths and non-collapsible layout, replacing the previous design. This update introduces granular control over post-capture actions (such as showing quick access, copying files, saving, or opening the Annotate editor) for both screenshots and recordings. It also adds specific settings for the Annotate editor, including behavior for importing clipboard images, synchronization of quick properties, and management of default or remembered annotation tools.
Snapzy/Features/Preferences · high confidence
Redesigned Quick Access card UI with GPU-optimized shadows and new interaction gestures
Quick Access screenshot cards now feature a redesigned visual style with GPU-cached drop shadows to eliminate rendering lag when cards are stacked. The interface includes new hover-activated action buttons, a context menu, and support for two-finger swipe-to-dismiss. Additionally, users can now drag pinned screenshots directly from floating windows and drag cards to external applications, with sandbox-aware file access ensuring secure operations.
Snapzy/Features/QuickAccess/Components · high confidence
Redesigned capture history panel with compact and expanded views
The capture history interface has been completely rebuilt to support two distinct presentation modes: a compact horizontal carousel and an expanded grid browser. The compact mode features a draggable, scrollable list of history cards with trackpad gesture support, while the expanded mode offers a responsive grid with multi-selection capabilities (using Command and Shift keys), a search bar, and type-based filtering (Screenshots, Videos, GIFs). Both views now include a custom auto-hiding scrollbar, context menus for individual items, and visual indicators for cloud upload status and missing files.
Snapzy/Features/History/Components · high confidence
Redesigned history browser with multi-selection, search, and Liquid Glass styling
The capture history interface has been rebuilt to support multi-selection, allowing users to select, copy, or delete multiple records at once via keyboard shortcuts (Cmd+A, Cmd+C, Delete) or toolbar actions. A new search and filtering system enables filtering by capture type and time range with debounced, reactive updates. The visual presentation now uses a Liquid Glass aesthetic with directional glass overlays and material substrates, replacing the previous solid or simple HUD backgrounds.
Snapzy/Features/History · high confidence
Snapzy v2.0.0 release with Liquid Glass UI and capture enhancements
Snapzy has been updated to version 2.0.0, introducing a breaking change that applies the Liquid Glass Beta design language to the interface. This release also adds several new capture capabilities, including delayed capture, drag-to-draw support for new crop rectangles, and the ability to record a whole display by clicking or pressing Enter. Additionally, a maximum recording resolution has been implemented to improve H.264 browser compatibility, and several bug fixes address issues with delayed capture countdowns, text background colors, and other UI elements.
(repo-wide) · high confidence
Video editor UI overhaul with Liquid Glass styling and new timeline interactions
The video editor components have been rebuilt with a new Liquid Glass visual theme, applying glass surfaces to the bottom bar, settings pills, and export progress overlay. The timeline now features a clip strip with distinct, selectable blocks that support drag-to-reorder, trim, and context menus, replacing the previous continuous filmstrip. A new speed track allows users to add and adjust timelapse segments directly on the timeline. The bottom bar includes a cloud upload button with progress tracking and a settings drawer that expands above the bar for quality, dimensions, and audio configuration. The left rail and sidebar provide access to background and zoom settings, with zoom segments supporting both manual and auto-focus modes.
Snapzy/Features/VideoEditor/Components · high confidence
Video editor models refactored to support speed segments, auto-focus, and multitrack audio
The Video Editor's data models have been restructured to support new editing capabilities. Speed segments are now modeled as distinct timeline items with configurable rates (0.25x–8.0x) and durations. Zoom segments now include an 'auto' mode that follows mouse-tracking paths, with settings for follow speed and focus margin. The timeline clip model has been replaced with a slot-based system that supports non-destructive trimming and the insertion of multiple video clips. Export settings now include multitrack audio support, allowing users to keep original audio, mute, or adjust custom volume levels for system, microphone, and additional audio tracks. Session data and export snapshots have been updated to persist and process these new features.
Snapzy/Features/VideoEditor/Models · high confidence
Workspace renamed from ZapShot to Snapzy
The Xcode workspace file has been moved and renamed from ZapShot.xcodeproj/project.xcworkspace to Snapzy.xcodeproj/project.xcworkspace, reflecting the application's name change. This is a structural rename with no content changes to the workspace configuration itself.
Snapzy.xcodeproj/project.xcworkspace · high confidence
Fixes
Improved clipboard compatibility for images and media files
The clipboard service now writes a single pasteboard item containing both the file URL and pixel data (TIFF/encoded) for images and media. This ensures that file-aware applications (like Finder or Preview) can use the file reference while image-consuming apps (like Slack, Telegram, or Chrome) can use the pixel data, preventing duplicate items and improving paste reliability across different targets.
Snapzy/Services/Clipboard · high confidence
Test coverage
Added snapshot and unit tests for the onboarding flow; Added test fakes for preferences and Quick Access management; Added test helper infrastructure for unit testing; Added tests for Liquid Glass rendering, error handling, and UI tokens; Added tests for delayed capture countdown logic; Added tests for sandbox-off data migration service; Added tests for shortcut registration, gating, and Fn key support; Added unit tests for ClipboardHelper pasteboard reference tracking and format handling; Added unit tests for History Floating Panel layout, pinning, and shortcuts; Added unit tests for OCR model management, link detection, and remote service integration; Added unit tests for OCR notification content and preferences; Added unit tests for Quick Access feature stability and behavior; Added unit tests for TOML configuration import, export, and sync; Added unit tests for Video Editor export, timeline, and session persistence; Added unit tests for app identity, launch policy, menu bar, and deep links; Added unit tests for area selection capture services; Added unit tests for capture history services and diagnostics; Added unit tests for cloud services and database management; Added unit tests for preferences persistence and OCR model selection; Added unit tests for recording features and history management; Expanded test coverage for annotation creation, redaction, and canvas presets; Introduces URLSession abstraction for testability.
Dependencies
Updated Swift Package Manager dependencies
The project's Package.resolved file has been updated to pin specific versions of its Swift dependencies: GRDB.swift (7.10.0), libwebp-Xcode (1.5.0), Sparkle (2.8.1), and Swift-WebP (0.6.1).
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 52 → 60 (+8.2)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 86 → 86 (-0.6)
- Architecture 95 → 95 (+0.4)
- Maturity 49 → 72 (+22.4)
- Readiness 37 → 49 (+11.5)
- Security 71 → 77 (+5.7)
- Domain Modelling 80 → 82 (+1.5)
- Performance 61 (new)
Resolved (59)
- Change coupling: SnapzyConfigurationDefaultDocument.swift ↔ SnapzyConfigurationExporter.swift (Snapzy/Services/Configuration/SnapzyConfigurationDefaultDocument.swift)
- Change coupling: SnapzyConfigurationDefaultDocument.swift ↔ SnapzyConfigurationImporter.swift (Snapzy/Services/Configuration/SnapzyConfigurationDefaultDocument.swift)
- Change-coupling hub: PreferencesKeys.swift → PreferencesQuickAccessSettingsView.swift, SnapzyConfigurationDefaultDocument.swift, L10n.swift (Snapzy/Features/Preferences/Models/PreferencesKeys.swift)
- ClassTooLong: GoogleDriveOAuthService (Snapzy/Services/Cloud/GoogleDriveOAuthService.swift)
- Duplicated block (10 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorSpeedTimelineTrack.swift)
- Duplicated block (10–11 lines × 2) (Snapzy/Features/QuickAccess/QuickAccessManager.swift)
- Duplicated block (10–11 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorSpeedTimelineTrack.swift)
- Duplicated block (12 lines × 2) (Snapzy/Features/QuickAccess/QuickAccessManager.swift)
- Duplicated block (12 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorEmptyStateView.swift)
- Duplicated block (12 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorGIFSettingsPanel.swift)
- Duplicated block (12 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorGIFSettingsPanel.swift)
- Duplicated block (12 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorGIFSettingsPanel.swift)
- Duplicated block (12 lines × 3) (Snapzy/Features/History/Components/HistoryCardView.swift)
- Duplicated block (12–20 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorSpeedTimelineTrack.swift)
- Duplicated block (13 lines × 3) (Snapzy/Features/Recording/Components/RecordingToolbarStyles.swift)
- Duplicated block (13 lines × 4) (Snapzy/Features/VideoEditor/Components/VideoEditorGIFSettingsPanel.swift)
- Duplicated block (13–14 lines × 2) (Snapzy/Features/QuickAccess/QuickAccessManager.swift)
- Duplicated block (15 lines × 2) (Snapzy/Features/History/Components/HistoryFloatingContentView.swift)
- Duplicated block (15 lines × 2) (Snapzy/Shared/Components/ShortcutRecorderView.swift)
- Duplicated block (16 lines × 2) (Snapzy/Features/VideoEditor/Components/VideoEditorSpeedTimelineTrack.swift)
- …and 39 more
New (265)
- AnnotateBottomBarView.annotateActionButtons (cognitive 20) (Snapzy/Features/Annotate/Components/AnnotateBottomBarView.swift)
- AnnotateBottomBarView.annotateActionButtons (cyclomatic 16) (Snapzy/Features/Annotate/Components/AnnotateBottomBarView.swift)
- AnnotateCanvasView.body (cognitive 23) (Snapzy/Features/Annotate/Components/AnnotateCanvasView.swift)
- AnnotateCanvasView.body (cyclomatic 23) (Snapzy/Features/Annotate/Components/AnnotateCanvasView.swift)
- AnnotateState.updateDefaultAnnotationProperties (cyclomatic 19) (Snapzy/Features/Annotate/AnnotateState.swift)
- AreaSelectionOverlayView.handlePrimaryMouseUp (cognitive 27) (Snapzy/Services/Capture/AreaSelectionWindow.swift)
- AreaSelectionOverlayView.handlePrimaryMouseUp (cyclomatic 16) (Snapzy/Services/Capture/AreaSelectionWindow.swift)
- CaptureSettingsView.body (cognitive 34) (Snapzy/Features/Preferences/Components/PreferencesCaptureSettingsView.swift)
- CaptureSettingsView.body (cyclomatic 25) (Snapzy/Features/Preferences/Components/PreferencesCaptureSettingsView.swift)
- Change coupling: PreferencesKeys.swift ↔ L10n.swift (Snapzy/Features/Preferences/Models/PreferencesKeys.swift)
- Change coupling: VideoEditorLeftSidebar.swift ↔ VideoEditorZoomPreviewOverlay.swift (Snapzy/Features/VideoEditor/Components/VideoEditorLeftSidebar.swift)
- Change-coupling hub: SnapzyConfigurationDefaultDocument.swift → PreferencesKeys.swift, SnapzyConfigurationExporter.swift, SnapzyConfigurationImporter.swift (Snapzy/Services/Configuration/SnapzyConfigurationDefaultDocument.swift)
- ClassTooLong: AnnotateBottomBarView (Snapzy/Features/Annotate/Components/AnnotateBottomBarView.swift)
- ClassTooLong: LiquidGlassPlaygroundView (Snapzy/Shared/DesignSystem/LiquidGlass/LiquidGlassPreview.swift)
- CloudCredentialFormView.body (cognitive 45) (Snapzy/Features/Preferences/Components/PreferencesCloudSettingsView.swift)
- CloudCredentialFormView.body (cyclomatic 29) (Snapzy/Features/Preferences/Components/PreferencesCloudSettingsView.swift)
- CloudSettingsView.cloudStatsSection (cognitive 16) (Snapzy/Features/Preferences/Components/PreferencesCloudSettingsView.swift)
- CloudSettingsView.configuredView (cognitive 20) (Snapzy/Features/Preferences/Components/PreferencesCloudSettingsView.swift)
- Documentation: no architecture or design documentation (docs/DEVELOPMENT.md)
- Documentation: no architecture or design documentation (docs/RECORDING.md)
- …and 245 more
Changes since last survey
- 40 commits — 31 feature/other, 9 fixes
By area
- (root) — 21 commits
- Snapzy/Features — 10 commits
- Snapzy/Services — 4 commits
- (repo) — 2 commits
- .github/workflows — 2 commits
- docs/RELEASES.md — 1 commit
Notable commits
- fix: Merge pull request #588 from duongductrong/fix/quicklook-pdf-capture
- fix: Revert "chore: bump version to v1.32.1 (#580)" (#581)
- fix: fix: Fixed Quick Look previews in filtered captures
- fix: fix: Fixed intermittent low-resolution window captures (#571)
- fix: fix: Fixed recording annotation tool shortcuts bug (#579)
- fix: fix: Fixed reset delayed capture countdown on restore defaults (#613)
- fix: fix: Fixed text background color by promoting plain text to label (#594)
- fix: fix: Restore pinned window dragging on macOS 27 (#584)
- fix: fix: retry release asset upload on transient GitHub errors
- change: BREAKING CHANGE: Apply Liquid Glass Beta (#574)
- change: Merge pull request #589 from duongductrong/release/v1.32.2
- change: chore: bump version to v1.32.0 (#573)
- change: chore: bump version to v1.32.0-beta.14 (#572)
- change: chore: bump version to v1.32.1 (#580)
- change: chore: bump version to v1.32.2
- change: chore: bump version to v1.32.3 (#593)
- change: chore: bump version to v1.32.3-beta.1 (#590)
- change: chore: bump version to v1.33.0-beta.1 (#610)
- change: chore: bump version to v1.33.0-beta.2 (#615)
- change: chore: bump version to v2.0.0 (#622)
- …and 20 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
duongductrong/Snapzy was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9756a43ecb4d14813f16b7b7aa687139e5f7c67c — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.