Skip to content

PGP.maCing encryption sexy again, one hotkey at a time! A beautiful, modern macOS menu bar app for PGP encryption. Because copying keys between apps shouldn't feel like performing surgery.

License

Notifications You must be signed in to change notification settings

8bit-wraith/PGP.mac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ” PGP.mac

Making encryption sexy again, one hotkey at a time!

A beautiful, modern macOS menu bar app for PGP encryption. Because copying keys between apps shouldn't feel like performing surgery.

Swift Platform License

โœจ What Makes PGP.mac Special?

Tired of command-line PGP? We were too! PGP.mac brings encryption to the 21st century:

  • ๐ŸŽฏ Menu Bar App - Always there when you need it, hidden when you don't
  • โŒจ๏ธ Global Hotkeys - Highlight text anywhere, press โŒ˜โ‡งE, boom - encrypted!
  • ๐ŸŽจ Beautiful UI - SwiftUI-powered interface that doesn't make your eyes bleed
  • ๐Ÿ“‹ Copy & Paste Heaven - All operations support clipboard workflow
  • ๐Ÿ”‘ Multiple Keys - Manage work keys, personal keys, family keys - all in one place
  • ๐Ÿ“„ File Support - Encrypt and decrypt files with ease
  • โœ๏ธ Sign & Verify - Prove authenticity of your messages

๐Ÿš€ Quick Start

Requirements

  • macOS 13.0 (Ventura) or later
  • Xcode 15.0 or later (for building from source)
  • Swift 5.9+

Installation

Option 1: Quick Install (Easiest!)

curl https://aye.is/8bit-wraith/PGP.mac | sh

This intelligent installer will:

  • โœ… Detect your macOS version
  • ๐Ÿ“ฆ Download the latest release from GitHub
  • ๐Ÿš€ Install to your Applications folder
  • ๐Ÿ’ซ Just works!

Note: Legacy endpoint curl https://aye.is/pgp | sh also works!

Option 2: Build from Source

# Clone the repo
git clone https://github.com/8bit-wraith/PGP.mac.git
cd PGP.mac

# Build and create app bundle
./scripts/manage.sh app

# Open the app
open build/PGP.mac.app

Option 2: Using the Manage Script

Our colorful management script makes everything easy:

# Build debug version
./scripts/manage.sh build

# Build release version
./scripts/manage.sh release

# Run the app
./scripts/manage.sh run

# Run tests
./scripts/manage.sh test

# Clean build artifacts
./scripts/manage.sh clean

# Show all commands
./scripts/manage.sh help

๐ŸŽฎ How to Use

First Launch

  1. Grant Accessibility Permissions

    • When you first run PGP.mac, macOS will ask for Accessibility permissions
    • This is required for global hotkeys to work
    • Go to System Preferences โ†’ Privacy & Security โ†’ Accessibility
    • Enable PGP.mac
  2. Find the Menu Bar Icon

    • Look for the ๐Ÿ” shield icon in your menu bar
    • Click it to open the app

Managing Keys

Import a Key

  1. Click the menu bar icon
  2. Go to the Keys tab
  3. Click Import
  4. Paste the PGP key or choose a file
  5. Give it a nickname (like "Mom's Key" or "Work Email")

Generate a New Key

  1. Click the menu bar icon
  2. Go to the Keys tab
  3. Click Generate
  4. Enter your name and email
  5. Choose a strong passphrase (you can't recover this!)
  6. Wait a moment while your key is generated

Encrypting Messages

Using the App

  1. Open PGP.mac from the menu bar
  2. Go to the Encrypt tab
  3. Select a recipient from your keys
  4. Type or paste your message
  5. Click Encrypt
  6. Copy the encrypted message!

Using Global Hotkey (โŒ˜โ‡งE)

  1. Set a default recipient in Settings
  2. Highlight any text in any app
  3. Press โŒ˜โ‡งE
  4. Boom! Text is replaced with encrypted version
  5. Magic! โœจ

Decrypting Messages

Using the App

  1. Open PGP.mac from the menu bar
  2. Go to the Decrypt tab
  3. Select your key (the one with the private key)
  4. Enter your passphrase
  5. Paste the encrypted message
  6. Click Decrypt
  7. Read your secrets!

โš™๏ธ Global Hotkeys

PGP.mac supports system-wide hotkeys to encrypt/decrypt selected text in any application!

Hotkey Action Requirements
โŒ˜โ‡งE Quick Encrypt Default recipient set in Settings
โŒ˜โ‡งD Quick Decrypt Coming soon! ๐Ÿšง

How it works:

  1. Highlight text in any app (Mail, Notes, Slack, whatever!)
  2. Press the hotkey
  3. PGP.mac grabs the text, encrypts/decrypts it, and replaces it
  4. Like magic, but with more math! ๐ŸŽฉโœจ

๐Ÿ—๏ธ Project Structure

PGP.mac/
โ”œโ”€โ”€ Sources/
โ”‚   โ”œโ”€โ”€ App/                    # macOS app code
โ”‚   โ”‚   โ”œโ”€โ”€ PGPmacApp.swift    # App entry point & menu bar
โ”‚   โ”‚   โ”œโ”€โ”€ Views/             # SwiftUI views
โ”‚   โ”‚   โ””โ”€โ”€ Services/          # Hotkey manager
โ”‚   โ””โ”€โ”€ Core/                  # Core PGP functionality
โ”‚       โ”œโ”€โ”€ Models/            # Data models
โ”‚       โ””โ”€โ”€ Services/          # Key management & crypto
โ”œโ”€โ”€ Tests/                     # Unit tests
โ”œโ”€โ”€ scripts/
โ”‚   โ””โ”€โ”€ manage.sh             # Colorful management script
โ””โ”€โ”€ Package.swift             # Swift Package Manager config

๐Ÿ› ๏ธ Development

Building

# Debug build
swift build

# Release build
swift build -c release

# Or use our fancy script!
./scripts/manage.sh build

Testing

# Run all tests
swift test

# Or with our colorful script
./scripts/manage.sh test

# Verbose mode
./scripts/manage.sh test-v

Code Style

We use SwiftFormat and SwiftLint to keep code clean:

# Format code
./scripts/manage.sh format

# Lint code
./scripts/manage.sh lint

๐ŸŽจ Features Roadmap

  • Menu bar app
  • Import/export keys
  • Generate new keys
  • Encrypt/decrypt text
  • Sign/verify messages
  • Global hotkey for encryption
  • Global hotkey for decryption (with secure passphrase prompt)
  • File encryption/decryption UI
  • Keybase integration
  • iCloud keychain sync for keys
  • Touch ID for passphrase
  • Dark mode support
  • Custom hotkey configuration
  • Key server integration
  • Signed commits for Git

๐Ÿค Contributing

Contributions are welcome! This project is built with love by Hue & Aye, but we'd love your help making it even better.

How to Contribute

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Comment your code - We love comments! Explain the "why", not just the "what"
  • Keep it clean - Run ./scripts/manage.sh format before committing
  • Test your changes - Add tests for new features
  • Have fun! - This is a passion project, enjoy it!

๐Ÿ“ License

PGP.mac is released under the MIT License - see LICENSE file for details.

Attribution Requirement โญ

If you use PGP.mac in your project, you must include a visible link:

https://aye.is/pgp

Example attribution:

This link should be reasonably visible (About window, footer, credits, etc.)

Quick Install

curl https://aye.is/pgp | sh # bash it if you want

Important Licensing Note

PGP.mac itself is free and open source (MIT License) for both personal and commercial use.

However, PGP.mac depends on ObjectivePGP, which uses a dual license:

  • โœ… Free for non-commercial use
  • ๐Ÿ’ฐ Requires commercial license for commercial use

If you plan to use PGP.mac in a commercial product, you'll need to obtain a commercial license for ObjectivePGP from its author:

For personal, educational, or non-commercial use, no additional licenses are required! ๐ŸŽ‰

๐Ÿ’ฌ Contact

Built with โค๏ธ by:

Special thanks to Trisha from Accounting for insisting on colorful output and keeping us organized! ๐ŸŽจ๐Ÿ“Š

๐Ÿ™ Acknowledgments

  • ObjectivePGP - The awesome Swift PGP library that powers this app
  • The OpenPGP community for making encryption accessible
  • Coffee โ˜• - For making this possible

Remember: Keep your private keys safe, use strong passphrases, and encrypt all the things! ๐Ÿ”โœจ

P.S. - If you find a bug, it's a feature. If you find a feature, it's probably a happy accident. ๐Ÿ˜„

About

PGP.maCing encryption sexy again, one hotkey at a time! A beautiful, modern macOS menu bar app for PGP encryption. Because copying keys between apps shouldn't feel like performing surgery.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •