Skip to content

RClick

Swift 6.2 SwiftUI macOS 15.6+ Xcode 16.4+ License GitHub release GitHub downloads

Enhance your macOS Finder context menu with custom actions. Built with Swift 6.2 and SwiftUI for macOS 15.6+. Full dark mode support with adaptive icons.

πŸš€ Features

  • Open with External App β€” Open files or directories with any installed application, with support for custom arguments and environment variables.
  • Copy Path β€” Copy the full path of selected files or folders to clipboard.
  • Delete Directly β€” Delete files or folders directly, bypassing Trash.
  • Hide / Unhide β€” Toggle file visibility in Finder.
  • AirDrop β€” Share files instantly via AirDrop.
  • Create New Files β€” Generate new files from templates directly in Finder. Supports .txt, .json, .md, .docx, .pptx, .xlsx, as well as Apple iWork formats: .pages, .key, .numbers.
  • Quick Access Folders β€” Pin frequently used directories to the right-click menu.
  • Dark Mode β€” Full light/dark appearance support with adaptive icons and SF Symbols.

πŸ— Architecture

RClick uses a dual-process architecture:

Component Description
Main App (RClick/) SwiftUI menu bar app β€” manages settings, state, and file operations
FinderSync Extension (FinderSyncExt/) Injected into Finder β€” renders custom context menu items

Communication between the two processes uses DistributedNotificationCenter. Settings are persisted via SwiftData with a shared App Group container.

πŸ“Έ Screenshots

πŸ“¦ Installation

Download

Get the latest release from the Releases page.

Download the .dmg, open it, and drag RClick to your Applications folder.

Note: On first launch, you may need to enable the Finder extension in System Settings β†’ Privacy & Security β†’ Extensions β†’ Added Extensions.

Build from Source

git clone https://github.com/wflixu/RClick.git
cd RClick
open RClick.xcodeproj
  • Requires Xcode 16.4+ and macOS 15.6+
  • Select the RClick scheme, then Product β†’ Build (⌘B)
  • The FinderSync extension will be automatically registered

Requirements

Requirement Details
Folder Access Per-folder authorization for file operations (prompted automatically)
Accessibility Required for certain automation features
Finder Extension Must be enabled in System Settings

πŸ”§ Development

# Build
xcodebuild -project RClick.xcodeproj -scheme RClick -destination 'platform=macOS'

# Build for Release
xcodebuild -project RClick.xcodeproj -scheme RClick -configuration Release

Key Technologies

  • Swift 6.2 with full concurrency checking
  • SwiftUI for all UI components
  • AppKit for system integration only (NSWorkspace, NSPasteboard)
  • SwiftData for persistence with shared container
  • FinderSync framework for Finder extension
  • DistributedNotificationCenter for IPC

🌐 Localization

RClick supports five languages with the following priority:

Language Code Notes
English en Default/base language
Simplified Chinese zh-Hans Primary localization target
Japanese ja Activated when system language is Japanese
Spanish es Activated when system language is Spanish
French fr Activated when system language is French

Principles:

  • Default language is English (also the fallback for unsupported system languages)
  • All string keys are in English in the code, localized via Localizable.xcstrings
  • System language is auto-detected β€” no manual language picker in the app
  • To add a new language, add an entry to Localizable.xcstrings and register it in the Xcode project

πŸ‘₯ Contributors

Thanks to all the people who have contributed to RClick!

Recent contributions:

  • @Juns-g β€” declarative hierarchical tree menus (#151), and watching mounted volumes so external and network drives show the menu (#152)
  • @Dam0rt β€” French localization (#149)
  • @stors789 β€” App Groups provisioning in the release pipeline (#141)
  • @EliasMatDev β€” Latin American Spanish localization (#138)
  • @shoal-rat β€” Finder observation fix, so the menu appears in every folder (#126)
  • @P013onEr β€” string catalogs and trilingual localization (#120), draggable menu ordering (#121)
  • @chunyang-wen β€” removed a needless await (#21)

Similar Projects

🀝 Contributing

We welcome contributions! Here's how you can help:

Please read our Code of Conduct before participating.

Hierarchical Custom Menus

Top-level items can be mixed with arbitrarily nested submenus, separators, and custom titles and icons.

Drop a declarative custom_menu.json into the App Group container, then go to Settings β†’ General β†’ Custom Menu and press "Apply" for it to take effect. Editing the file on its own changes nothing, so an edit that is still half-written cannot break your menu. With no file present the default layout is used; with an invalid one the menu stays exactly as it was and Settings shows which element failed to parse.

See configuration examples and usage.

About

macos finder contextmenu

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1.0k stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages