A modern, AI-powered email client with integrated productivity features, built with Python and PyQt6.
- Modern Email Client: Full-featured email management with support for multiple accounts
- AI-Powered: Smart replies, email summarization, and intelligent search
- Cross-Platform: Works on Windows and Linux (macOS support coming soon)
- Themes: Light and dark themes with system preference detection
- Command Palette: Quick access to all features via
Ctrl+K - Smart Search: Find emails using natural language queries
- Responsive UI: Clean, modern interface that adapts to your workflow
- Outlook Import: Easily migrate emails from Outlook PST/OST files with folder mapping
- Python 3.9 or higher
- pip (Python package manager)
- Git (optional, for development)
-
Clone the repository:
git clone https://github.com/yourusername/email.git cd email -
Create and activate a virtual environment (recommended):
# Windows python -m venv venv venv\Scripts\activate # Linux/macOS python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python -m phoenix
- On first launch, Phoenix will create necessary configuration files in
~/.phoenix/ - Add your email account through the settings menu
- Use
Ctrl+Kto open the command palette and explore available features
- Unified inbox for all your email accounts
- Threaded conversations
- Rich text composition
- Email filtering and searching
- Custom folders and labels
- Outlook Import: Import emails from PST/OST files with folder mapping to categories/labels
- Smart Replies: Context-aware response suggestions
- Email Summarization: Get concise overviews of long threads
- Action Extraction: Automatically identify tasks and follow-ups
- Semantic Search: Find emails using natural language queries
- Built-in task management
- Calendar integration
- Contact management
- Custom keyboard shortcuts
| Shortcut | Action |
|---|---|
Ctrl+K |
Open command palette |
Ctrl+N |
New email |
Ctrl+R |
Reply to email |
Ctrl+Shift+R |
Reply all |
Ctrl+F |
Forward email |
Ctrl+E |
Archive email |
Del |
Delete email |
Ctrl+Shift+T |
Toggle theme |
Ctrl++/- |
Adjust UI zoom |
Ctrl+0 |
Reset zoom |
Ctrl+\ |
Toggle sidebar |
Ctrl+Shift+O |
Import from Outlook |
F5 |
Refresh email |
- Python 3.9+
- PyQt6
- SQLite 3.35+
- See
requirements.txtfor complete dependency list
phoenix/
├── application.py # Main application class
├── config.py # Configuration settings
├── database.py # Database models and operations
├── models/ # Data models
│ └── outlook_import.py # Outlook import models
├── ui/ # User interface components
│ ├── main_window.py # Main window implementation
│ ├── dialogs/ # Dialog windows
│ │ └── outlook_import_dialog.py # Outlook import dialog
│ └── widgets/ # Custom UI widgets
├── commands/ # Command implementations
│ └── outlook_import.py # Outlook import command
├── importers/ # Email importers
│ └── outlook.py # Outlook PST/OST importer
├── utils/ # Utility modules
│ ├── database.py # Database utilities
│ ├── logging.py # Logging configuration
│ └── theme.py # Theme management
└── ai/ # AI-related functionality
├── commands.py # AI command handlers
└── services.py # Core AI services
For detailed documentation on specific features, check out the docs directory:
- Outlook Import Feature - Guide to importing emails from Outlook
We welcome contributions! Please read our Contributing Guidelines for details on how to get started.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
For questions or support, please open an issue on GitHub.
- Built with ❤️ using Python and PyQt6
- Inspired by modern email clients like Spark and Mailspring
- Special thanks to all contributors
Made with ❤️ by the Project Phoenix Team
