A sleek menu bar utility that uses AI models to proofread and correct text anywhere on your Mac with a global keyboard shortcut.
Supports multiple AI providers:
- π¦ Ollama - Run models locally on your Mac
- π» LM Studio - Local models with a friendly interface
- βοΈ DeepSeek - Cloud API, no installation needed
- β¨ Global Keyboard Shortcut - Proofread text anywhere (default:
β+.). Uses native macOS Carbon HotKeys for zero-latency, beep-free operation. - π Multiple AI Providers - Choose between Ollama (local), LM Studio (local), or DeepSeek (cloud)
- π― Menu Bar Utility - Lightweight, always accessible from your menu bar
- β‘ Real-time Processing - Instant proofreading with streaming output and visual feedback
- π¨ macOS Native - Built with SwiftUI following Apple's HIG
- π§ Customizable - Change providers, models, prompts, and keyboard shortcuts
- π Usage Statistics - Track corrections, time saved, and session history
- π Connection Health Monitoring - Auto-reconnect and real-time status indicators
- π Guided Onboarding - Interactive setup wizard for first-time users
- π Multiple Input Methods - Proofread selected text or clipboard content
- macOS 14.0 or later (Sonoma and newer)
- One of the following AI providers:
- Ollama: Install with
brew install ollamaand pull a model - LM Studio: Download from lmstudio.ai
- DeepSeek: Get API key from platform.deepseek.com
- Ollama: Install with
- Select text anywhere on your Mac
- Press
β+.(or your custom shortcut) - Wait for processing - the menu bar icon shows progress
- Review results - corrected text appears in a dialog
- Copy and close - clicking "Copy Corrected" automatically copies to clipboard and closes the dialog
- Copy Corrected: Copies the proofread text to clipboard and closes the dialog
- Show Differences: Toggle to view side-by-side comparison of original vs corrected text
- Done: Close the dialog without copying
- Provider Selection: Choose between Ollama, LM Studio, or DeepSeek
- Provider URL/API Key: Configure connection settings for your chosen provider
- Ollama:
http://127.0.0.1:11434(default) - LM Studio:
http://127.0.0.1:1234/v1(default) - DeepSeek: Enter your API key
- Ollama:
- Model Selection: Choose from available models for your selected provider
- Keyboard Shortcut: Customize the global hotkey
- Test Connection: Verify provider connectivity
You are a text proofreader. Your task is to correct typos and grammar errors in the provided text while strictly preserving the original meaning, formatting, and style.
- Xcode 14.0 or later
- Swift 5.9 or later
- Ollama running locally
# Clone and build
git clone https://github.com/genequ/Proofreader.git
cd Proofreader
# Build release version
./build-app.sh
# The app will be created as Proofreader.appProofreader/
βββ Sources/
β βββ AppState.swift # Main state management
β βββ ProofreaderApp.swift # App entry point
β βββ LLMProvider.swift # Provider protocol
β βββ OllamaService.swift # Ollama API integration
β βββ LMStudioService.swift # LM Studio API integration
β βββ DeepSeekService.swift # DeepSeek API integration
β βββ SettingsView.swift # Configuration UI
β βββ ProofreadingDialog.swift # Results display
β βββ OnboardingView.swift # First-run setup wizard
β βββ ProviderStatusView.swift # Connection status indicator
β βββ StatisticsView.swift # Usage analytics display
β βββ ShortcutManager.swift # Keyboard shortcut handling
β βββ ClipboardManager.swift # Clipboard operations
β βββ ... other views
βββ Resources/
β βββ AppIcon.icns # Application icon
βββ Package.swift # Swift package configuration
βββ build-app.sh # Build script
"No models available"
- Ollama: Ensure Ollama is running (
ollama serve) and pull a model (ollama pull gemma3:1b) - LM Studio: Open LM Studio, load a model, and ensure the API server is enabled
- DeepSeek: Verify your API key is valid and check your internet connection
Connection errors
- Check that your selected provider is running/configured correctly
- Verify the URL or API key in Settings
- For Ollama:
curl http://127.0.0.1:11434/api/tags - For LM Studio: Ensure "Enable Server" is on in settings
- For DeepSeek: Check that your API key is valid at platform.deepseek.com
Keyboard shortcut not working
- The app uses native Carbon HotKeys, which are very robust.
- If it still fails, check
System Settings β Privacy & Security β Accessibilityand ensure Proofreader is enabled.
On first run, macOS may require:
- Accessibility Access: For global keyboard shortcuts
- Input Monitoring: To detect key presses
- Automation: For clipboard access
Grant these in: System Settings β Privacy & Security β Accessibility
- Click menu bar icon β "Change Prompt"
- Edit the instructions as needed
- Click "OK" to save
Ollama:
- Pull the model:
ollama pull <model-name> - Click "Refresh" in model selection
- Select the new model from Settings
LM Studio:
- Open LM Studio and go to the AI Models tab
- Search and download your desired model
- Load the model for chatting
- The model will appear in Proofreader's model dropdown
DeepSeek:
- Models are fetched automatically from the API
- Available models:
deepseek-chat,deepseek-coder - Select from the dropdown in Settings
Supported formats:
command+.(default)control+shift+poption+spacef1throughf12
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with SwiftUI
- Uses native URLSession for HTTP requests (no external dependencies)
- Inspired by the need for quick, AI-powered proofreading
- Icons from SF Symbols
If you encounter any issues or have questions:
- Check the Troubleshooting section
- Search existing issues
- Create a new issue with details
β Star this repo if you find Proofreader useful!