Menu bar app that installs custom right-click actions into macOS Services — no signing, no app extensions, no Xcode required.
brew install jayf0x/majic/mejicUninstall:
brew uninstall mejic && brew untap jayf0x/majicmise use -g github:jayf0x/majicUninstall:
mise uninstall github:jayf0x/majic && mise rm github:jayf0x/majicDownload Mejic-<version>.dmg from the latest release, open it, drag Mejic.app to Applications, then right-click → Open to bypass Gatekeeper on first launch.
Uninstall: delete /Applications/Mejic.app.
After installing via brew or mise:
osascript -e 'tell application "System Events" to make login item at end with properties {path:"'"$(which Mejic)"'", hidden:false}'Remove from login items:
osascript -e 'tell application "System Events" to delete login item "Mejic"'git clone https://github.com/jayf0x/majic
cd majic
swift build -c release
.build/release/MejicMejic reads ~/.config/mejic/commands.yaml and writes one Automator .workflow bundle per enabled command into ~/Library/Services/. macOS Services appear natively in Finder's right-click menu — no daemon, no Finder extension, no code signing.
Hitting Save in the popover:
- Writes the updated YAML
- Deletes old Mejic workflows from
~/Library/Services/ - Writes new ones
- Calls
pbs -updateto refresh the Services cache immediately
Config lives at ~/.config/mejic/commands.yaml:
- label: Copy Path
command: echo {file} | pbcopy
enabled: true
- label: Open in VS Code
command: open -a 'Visual Studio Code' {file}
enabled: true
- label: Make Executable
command: chmod +x {file}
enabled: true
- label: Compress Video
command: ffmpeg -i {file} -crf 28 {file}_compressed.mp4
enabled: true{file} is replaced with the selected file's full path, double-quoted: "${f}". For commands that reference {file} multiple times, each occurrence is substituted independently.
Quoting tip: do not wrap {file} in single quotes — it already gets double-quoted. Shell-escape other arguments normally.
| What | Command |
|---|---|
| Copy path | echo {file} | pbcopy |
| Open in Sublime | open -a 'Sublime Text' {file} |
| SHA256 checksum | shasum -a 256 {file} | pbcopy |
| Move to Desktop | mv {file} ~/Desktop/ |
| New Terminal here | open -a Terminal {file} |
| Word count | wc -l {file} | pbcopy |
Sources/Mejic/
main.swift — NSApplication entry, menu bar + popover
ConfigStore.swift — YAML read/write, ObservableObject
WorkflowWriter.swift — generates .workflow bundles
ContentView.swift — SwiftUI editor UI
Resources/
commands.yaml — example config (copied to ~/.config/mejic/ on first launch)
scripts/
build-dmg.sh — builds Mejic.app + DMG installer
Info.plist — app bundle metadata template
homebrew-tap/ — separate repo: github.com/jayf0x/homebrew-majic
Formula/mejic.rb
To add more items to Finder right-click context menu:
defaults write -g NSServicesMinimumItemCountForContextSubmenu -int 999