A desktop chat application designed specifically for plural systems, featuring PluralKit integration and intelligent proxy detection.
- β¨ Features
- πΈ Screenshots
β οΈ Known Issues- π Project Documentation
- π Quick Start
- π― Proxy Detection
- π§ PluralKit Integration
- π File Structure
- π¨ Themes
- π€ Sharing Systems
- π οΈ Development
- π€ Contributing
- π License
- π Credits
- π Links
- π Local Desktop Chat - Private conversations between system members
- π PluralKit Integration - Import members, avatars, and proxy tags from your PK system
- π― Smart Proxy Detection - Automatic member switching based on proxy patterns
- πΎ SQLite Database - Fast, reliable local storage
- π¨ Modern Themes - 15+ beautiful themes via ttkbootstrap
- π€ Export/Import - Share system configurations with other plural folks
- πΌοΈ Avatar Support - Display member avatars in chat
- π Personal Diary - Private journal system for individual members
Main Chat Interface | Settings & Custom Themes | Personal Diary System |
---|---|---|
![]() |
![]() |
![]() |
Active Conversations | Help Documentation | Theme Showcase |
![]() |
![]() |
![]() |
- Private Members: Private members cannot have their avatars downloaded via API (this is expected behavior for privacy protection)
- Minor "FINAL STATUS" errors: Occasional minor errors during sync operations (under investigation)
- Sample Members: Sample members are not added upon developer cleanup (manual setup required for fresh installations)
- Installation Guide - Detailed installation instructions for all platforms
- Contributing Guide - How to contribute to the project
- Code of Conduct - Community guidelines and standards
- Security Policy - Security practices and vulnerability reporting
- Development Roadmap - Future features and development plans
- Community Disclaimer - Our inclusive ethos and stance on plural community drama
- Third-Party Notices - Licensing and attribution information
- Python 3.8 or higher
- pip (Python package installer)
- Clone or download this repository
https://github.com/Ktiseos-Nyx/plural_chat.git
- Install:
cd plural_chat pip install .
- Run the application:
plural-chat
git clone https://github.com/Ktiseos-Nyx/plural_chat.git
cd plural_chat
pip install -e .
plural-chat
- Add Members - Use the Settings β Members tab to add your system members
- Set Avatars - Add avatar images for visual identification
- PluralKit Sync (Optional) - Import your existing PK system data via PK's API or via Json export via pk;export on Discord.
- Choose Theme - Pick from 15+ modern themes in Settings
If you've imported from PluralKit or set up proxy tags, the app will automatically detect them:
- Type
member: hello there
β Auto-selects "member" and sends "hello there" - Visual feedback shows when proxy is detected
- Clean messages without proxy tags in chat history
Not everyone uses member: proxy - so being that this was developed in less than 12 hours, it'd be amazing if anyone would want to help out in robustish level fix this!
- Get your PK token from PluralKit Dashboard
- Click "PluralKit Sync" in the app
- Enter your token and test connection
- Choose "Sync Members" or "Full Import"
- β Member names and display names
- β Pronouns and descriptions
- β Proxy tags for auto-detection
- β Avatar images (downloaded locally)
- β Member colors and metadata
- β Chat history (if present in export)
app.db
- Application settings and preferencessystem.db
- Your system's members and chat historyavatars/
- Downloaded avatar images*.json
- Export files for sharing
Choose from these beautiful themes:
- superhero, darkly, solar, cyborg, vapor
- pulse, flatly, journal, litera, lumen
- minty, morph, sandstone, united, yeti
Export your system:
- Click "Export System" β Save as JSON
- Share file with other plural folks
- Includes members, chat history, and settings
Import a system:
- Click "Import System" β Select JSON file
- Supports PluralKit exports (auto-detects and converts)
- Our export format is compatible for re-importing
- Python 3.8+ - Core language
- ttkbootstrap - Modern UI framework
- SQLite - Local database
- Pillow - Image processing
- Requests - HTTP client for PluralKit API
- aiohttp - Asynchronous HTTP client
- aria2p - High-performance download manager
plural_chat/
βββ main.py # Main application
βββ database_manager.py # SQLite database handling
βββ pluralkit_api.py # PK API integration
βββ pluralkit_dialog.py # PK sync UI
βββ pk_export_parser.py # PK export file parser
βββ member_manager.py # Member management UI
βββ settings_manager.py # Settings UI
βββ about_dialog.py # About dialog
βββ requirements.txt # Python dependencies
βββ pyproject.toml # Project configuration
βββ LICENSE # MIT license
We welcome contributions from the plural community! Whether it's:
- π Bug reports
- π‘ Feature suggestions
- π§ Code improvements
- π Documentation updates
Please read our Contributing Guide and Code of Conduct before getting started.
Want to see what's coming next? Check out our Development Roadmap to see planned features and find areas where you can help!
This project is licensed under the MIT License - see the LICENSE file for details.
For third-party components and attributions, see NOTICES.md.
- Created by: Duskfall Portal Crew
- Inspired by: The amazing plural community
- Thanks to: PluralKit team for the fantastic API
- UI Framework: ttkbootstrap developers
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - Community discussions and Q&A
- PluralKit - The bot that inspired this project
- ttkbootstrap - Modern tkinter themes
- Support us - Help keep development going
- Ktiseos Nyx Discord - Development & AI Discord (Plural Friendly!)
- Earth & Dusk Media Discord - Our Twitch & Media Discord (PK enabled!)
Made with π by and for the plural community