Skip to content

Ktiseos-Nyx/plural_chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ—¨οΈ Plural Chat

A desktop chat application designed specifically for plural systems, featuring PluralKit integration and intelligent proxy detection.

πŸ“‘ Table of Contents

✨ Features

  • 🏠 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

πŸ“Έ Screenshots

Main Chat Interface Settings & Custom Themes Personal Diary System
Main chat interface with member list and conversation history Settings dialog with theme selection and personalized greeting options Personal diary system for individual member thoughts and memories
Active Conversations Help Documentation Theme Showcase
Live conversation showing multiple system members chatting Comprehensive help system with detailed feature documentation Beautiful ttkbootstrap themes including Criss's custom vapor-dark theme

⚠️ Known Issues

  • 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)

πŸ“‹ Project Documentation

πŸš€ Quick Start

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Installation

  1. Clone or download this repository
    https://github.com/Ktiseos-Nyx/plural_chat.git
  2. Install:
      cd plural_chat
      pip install .
  3. Run the application:
    plural-chat

Developer Mode Options

git clone https://github.com/Ktiseos-Nyx/plural_chat.git
cd plural_chat
pip install -e .
plural-chat

First Time Setup

  1. Add Members - Use the Settings β†’ Members tab to add your system members
  2. Set Avatars - Add avatar images for visual identification
  3. PluralKit Sync (Optional) - Import your existing PK system data via PK's API or via Json export via pk;export on Discord.
  4. Choose Theme - Pick from 15+ modern themes in Settings

🎯 Proxy Detection

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

Future Foward Issue

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!

πŸ”§ PluralKit Integration

API Token Setup

  1. Get your PK token from PluralKit Dashboard
  2. Click "PluralKit Sync" in the app
  3. Enter your token and test connection
  4. Choose "Sync Members" or "Full Import"

What Gets Imported

  • βœ… 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)

πŸ“ File Structure

  • app.db - Application settings and preferences
  • system.db - Your system's members and chat history
  • avatars/ - Downloaded avatar images
  • *.json - Export files for sharing

🎨 Themes

Choose from these beautiful themes:

  • superhero, darkly, solar, cyborg, vapor
  • pulse, flatly, journal, litera, lumen
  • minty, morph, sandstone, united, yeti

πŸ“€ Sharing Systems

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

πŸ› οΈ Development

Tech Stack

  • 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

Project Structure

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

🀝 Contributing

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!

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

For third-party components and attributions, see NOTICES.md.

πŸ’ Credits

  • Created by: Duskfall Portal Crew
  • Inspired by: The amazing plural community
  • Thanks to: PluralKit team for the fantastic API
  • UI Framework: ttkbootstrap developers

πŸ”— Links


Made with πŸ’œ by and for the plural community

Releases

No releases published

Packages

No packages published

Languages