Ghost Writer is a desktop chat application that provides a clean interface for interacting with local AI models through Ollama. It features a modern, resizable interface with support for multiple chat sessions, theme customization, and comprehensive chat management features.
Ghost Writer's main interface in dark mode, showing the chat list, conversation area, and resizable input box
The same interface in light mode, demonstrating the clean, modern design
Settings window showing model selection, theme options, and auto-save configuration
- Resizable chat display and input areas
- Dark and light theme support
- Customizable font sizes
- Non-collapsible panels for consistent layout
- Modern Windows-style design
- Multiple simultaneous chat sessions
- Import/Export functionality for chats
- Auto-save capability
- Individual chat exports
- Chat renaming and deletion
- Seamless integration with Ollama's AI models
- Model switching capability
- Built-in model installation interface
- Model management tools
- Python 3.6 or higher
- Ollama installed and running
- Operating System: Windows, macOS, or Linux
All dependencies can be installed via pip:
pip install -r requirements.txt
Core dependencies include:
- PyQt5 (GUI framework)
- requests (API communication)
- typing (type hints)
- json5 (JSON handling)
-
Install Ollama:
- Visit ollama.ai
- Follow the installation instructions for your operating system
- Ensure Ollama is running before launching Ghost Writer
-
Clone the repository:
git clone https://github.com/CavemanTechandGamming/Ghost-Writer.git
-
Create and activate a virtual environment (recommended):
python -m venv venv # Windows .\venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Launch the application:
python Main.py
- Launch Ghost Writer
- Click "New Chat" to create a conversation
- Select your preferred AI model in Settings
- Begin typing in the input box
- Click "Send" or press Enter to send messages
- Chat List: Left panel showing all conversations
- Chat Display: Upper right panel showing current conversation
- Input Box: Lower right panel for message input
- Resizable between messages
- Maintains minimum/maximum heights
- Create: Click "New Chat" button
- Delete: Select chat and click "Delete Chat"
- Rename: Right-click chat and select "Rename"
- Export: Right-click chat and select "Export"
- Import: File menu → Import Chats
- Model Selection
- Font Size Adjustment
- Theme Selection (Dark/Light)
- Auto-save Configuration
- Save Directory Selection
ghost-writer/
├── Main.py # Application entry point and main window
├── APIManager.py # Ollama API integration
├── ChatManager.py # Chat session handling
├── SettingsManager.py# Settings and configuration
├── requirements.txt # Python dependencies
└── README.md # This file
-
Ollama Connection Error
- Ensure Ollama is running
- Check localhost:11434 is accessible
-
Model Not Found
- Visit Settings to install required model
- Check Ollama installation
-
Interface Issues
- Ensure minimum window size (600px width)
- Verify PyQt5 installation
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a Pull Request
This project is licensed under the GNU General Public License v3.0 (GPLv3) - see below for a summary.
- ✅ Commercial use
- ✅ Modification
- ✅ Distribution
- ✅ Patent use
- ✅ Private use
- ❌ Liability
- ❌ Warranty
- ❗ License and copyright notice must be included
- ❗ State changes
- ❗ Disclose source
- ❗ Same license
- ❗ Cannot be sold as proprietary software
This means:
- You can freely use and modify this software
- You must keep the source code open
- Any modifications must also be under GPLv3
- You cannot distribute closed source versions
- You cannot sell proprietary versions of this software
- Built with PyQt5
- Powered by Ollama
- [Additional acknowledgments]