Skip to content

SwiftX 0.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 09:37
Immutable release. Only release title and notes can be modified.
bfbd857

SwiftX v0.1.0 Release Notes

Welcome to SwiftX — a native macOS screenshot, screen recording, and file sharing application built from the ground up in Swift and SwiftUI.

The Swift Port

SwiftX represents a complete native rewrite of screenshot and sharing functionality for macOS. Rather than porting the Windows C# codebase directly, we've built a ground-up macOS application that leverages native frameworks—ScreenCaptureKit for capture, SwiftUI for modern interface design, and AppKit for system integration. This approach delivers a genuinely native experience while maintaining compatibility with Windows ShareX for configuration imports.

Core Capture & Recording

Screenshot & Region Capture

  • Region selection with interactive guides and dimension readouts
  • Display capture for full-screen screenshots
  • Window capture with option to include/exclude drop shadows
  • Cursor visibility toggle for all capture types
  • Screenshot delay (0–5 seconds configurable) to allow positioning before capture
  • Configurable cursor rendering on screenshots

Screen Recording

  • Native MP4/GIF recording using ScreenCaptureKit
  • Cursor tracking during recordings with visibility toggle
  • Recording HUD with floating controls—elapsed time, pause/resume, stop, and abort buttons
  • Start delay with cancellable countdown timer
  • Fixed duration auto-stop mode
  • Codec options including two-pass VP9/VP8 transcoding for optimized compression

File & Output Handling

  • File collision detection (Ask/Overwrite/UniqueName/Cancel) when files already exist
  • Image encoding options—PNG bit depth selection, GIF quality/grayscale, auto-JPEG quality
  • Effects editor post-capture option to open the annotation canvas immediately
  • Automatic file naming with timezone support

Annotation & Effects

Drawing Tools

  • Canvas annotation with shapes, text, drawing, and speech balloons
  • Text editor with font-family picker for flexible typography
  • Arrow styling with Classic/Modern arrowhead options
  • Undo/redo support for non-destructive editing
  • Middle-click panning for navigating large canvases

Advanced Effects

  • Image background remover using Apple's Vision framework (VNGenerateForegroundInstanceMaskRequest)
  • Image comparer with side-by-side and slider-overlay modes for detailed analysis
  • Filter library for color grading and effects application

Destinations & Upload Management

Supported Upload Services

  • Amazon S3 with full bucket configuration
  • Azure Blob Storage for cloud file hosting
  • Google Drive (OAuth, pending provider verification)
  • YouTube (OAuth, pending provider verification)
  • OneDrive (OAuth, pending provider verification)
  • Custom uploaders with full .sxcu format compatibility
  • URL shorteners (bit.ly, TinyURL)
  • File hosts for direct sharing
  • Windows ShareX custom uploader imports for migration from Windows

Upload Features

  • Per-type destination routing—separate services for screenshots, text, and files
  • Concurrent upload management with FIFO queueing to prevent overload
  • Configurable retry logic with per-host settings
  • Master disable switch for pausing uploads
  • Batch warnings for uploads exceeding 10 files or individual files over 100 MB
  • Export custom uploaders to .sxcu files for sharing and backup

URL & Clipboard Processing

  • Regex replacements on result URLs
  • HTTPS normalization for secure links
  • URL shortening with multiple service support
  • Early URL copying to place raw URLs on clipboard immediately
  • Custom URL templates for clipboard, browser, and notification formatting
  • Clipboard priority handling—URL downloads first, shortening second, general sharing third
  • HTML index generation for shared folders

History & Management

Built-in History Database

  • SQLite history compatible with Windows ShareX format
  • Image thumbnails and metadata tracking
  • Recursive folder imports to ingest existing screenshots and media
  • Search and filtering across history entries
  • Database schema validation against Windows ShareX v21.0.0

Settings & Configuration

  • Native settings export/restore via encrypted .zip archives
  • Backup creation for settings, hotkeys, effects presets, and custom uploaders
  • Deliberate secret exclusion—Keychain passwords never included in backups
  • Seamless Windows ShareX JSON imports maintaining configuration compatibility

Security & Privacy

Trust Boundaries & Input Validation

  • Explicit source verification—distinguishing trusted sources (launch argv) from untrusted (URL scheme, relay)
  • Untrusted caller restrictions—no file path uploads, URL downloads, preset imports, or clipboard operations without explicit user confirmation
  • Confirmation dialogs displaying resolved targets for all untrusted actions

Credential Security

  • Keychain-backed credential storage for all secrets
  • Loss-safe migration—gracefully degrades if Keychain is locked rather than destroying data
  • S3 keys, host passwords, API tokens, and AI keys all stored securely in macOS Keychain
  • Local file isolation—access tokens never leave your system
  • No telemetry, no analytics, no phone-home

File & Download Safety

  • Download size limits (256 MB maximum) preventing abuse
  • Filename sanitization stripping shell metacharacters (backtick, $, ;, &)
  • Shell argument quoting preventing command injection in external programs
  • No App Sandbox by deliberate choice, enabling direct file access while maintaining security through trust boundaries

Transparency

See SECURITY-MODEL.md in the repository for detailed documentation of trust boundaries, credential handling, and the security architecture.

System Integration

Hotkey Support

  • System-wide hotkeys for instant capture (⌃⇧3 full screen, ⌃⇧4 region, ⌃⇧5 window)
  • Customizable key bindings for all capture and upload functions
  • Per-hotkey task settings for workflow automation
  • Tray menu integration with quick access to capture modes

macOS Services

  • Right-click context menu integration via NSServices
  • "Upload with SwiftX" option for files and text from Finder and system-wide apps

Notifications & Feedback

  • Capture completion notifications with custom sound
  • Error alerts with action buttons for immediate response
  • Copy URL button in notifications for sharing results
  • Open file button to reveal uploaded content
  • Tray menu submenus for upload queue and recent history

Advanced Settings

Destination Management

  • Sidebar-based configuration for organized settings
  • Permissions UI for managing system access
  • Per-destination configuration with validation
  • Status indicator for upload service connectivity

Preferences Organization

  • Menu Bar settings for tray appearance and behavior
  • Notifications settings for alert and sound configuration
  • Per-type upload routing from unified settings pane

Project Status & Documentation

Website & Marketing

  • Product-focused landing site at swiftx.retrohazard.jp
  • Interactive feature showcase with visual demonstrations
  • 12-phase development roadmap for future directions
  • FAQ section addressing common questions
  • Privacy Policy and Terms of Service for OAuth provider compliance

Developer Resources

  • Comprehensive documentation for building and contributing
  • Build requirements (macOS 14+, Swift 5.10+)
  • OAuth configuration guide for development
  • Contribution guidelines with dual copyright header system
  • Security modeling documentation for security-conscious contributors

Roadmap

SwiftX is built on a phased development approach. This v0.1.0 release delivers Phases 1, 7, 13, 14, and 15 of the planned feature set. See the repository for the complete roadmap and development history.

Distribution

Availability

  • Direct download via GitHub Releases
  • Homebrew installation — tap this repository as a Homebrew cask source
  • Code-signed with Developer ID Application certificate
  • Notarized for Gatekeeper approval
  • Universal binary supporting both Apple Silicon and Intel Macs

Installation Methods

  1. Download DMG from Releases and drag to Applications
  2. Install via Homebrew:
    brew install retrohazard/swiftx/swiftx

Known Limitations & Future Work

  • OAuth app registrations for Google Drive, YouTube, and OneDrive are pending provider verification—this is a registration status issue, not an application limitation
  • App Sandbox is deliberately not used to maintain file access; security is provided through trust boundary enforcement
  • Dropped uploaders—Imgur (no longer issues app IDs), Box (paid API access), and Dropbox (deliberate choice) are not supported

Contributors

@RetroHazard — Lead developer and primary contributor to the SwiftX native macOS port

Special thanks to the ShareX Team for the original Windows implementation, whose design principles and feature set informed this macOS rewrite.

System Requirements

  • macOS 14+ (Sonoma or later)
  • Apple Silicon or Intel Mac (universal binary)
  • System Recording permission for screen capture
  • Accessibility permission for hotkeys and automation

Credits & Attribution

This project builds on the design and concepts of Windows ShareX while delivering a native Swift implementation for macOS. The History database, custom uploader format, and configuration structure maintain compatibility with Windows ShareX v21.0.0 to enable seamless migration.


Thank you for trying SwiftX. We hope you enjoy the native macOS experience and look forward to your feedback as we continue development. Happy sharing!

Downloads

See assets below for downloadable DMG and checksum files.