Skip to content

igugyj/Pelr

Pelr - Desktop Pet with Practical Tools

简体中文

GitHub Repo stars GitHub forks GitHub issues

Pelr is a Live2D-based smart desktop companion that integrates AI chat, text-to-speech, quick launch, TODO management, and a customizable virtual pet experience.

Note

This project is in development; functionality and stability may be limited.

Non-profit open source project, free for anyone to use. GitHub is the only release source. SourceForge and Gitee have been discontinued.

Warning

This project does NOT include Live2D Cubism Core. The Core DLL is prohibited from public distribution under Live2D's proprietary license. You must download the SDK from the Live2D website and place the Core directory in the project path yourself. Pelr qualifies as an "expandable application." If you distribute compiled binaries, you are responsible for obtaining any required Live2D publishing license.

Features

  • Live2D Character - Supports model3.json format for an expressive desktop companion
  • AI Chat - OpenAI-compatible API for natural language interaction
  • Expressions & Motions - Play built-in expressions and motions if supported by the model
  • Text-to-Speech - Built-in support for Edge TTS, iFlytek TTS, VOICEVOX, and OpenAI-Compatible TTS
  • TODO Manager - Add events and receive reminders
  • Launch Manager - Visually manage startup items; launch any file or link (forked from QuickTray)
  • Keyboard Monitor - Real-time display of key press states (forked from KeyMonitor)
  • Music Tray - Tray icon rotates with system audio volume (forked from Rotating Rhythm)
  • Weather Service - Real-time weather via OpenWeather integration
  • System Monitor - Real-time memory and disk usage monitoring with detailed breakdown
  • Highly Customizable - Rich settings to suit personal preferences

Roadmap

  • Lip sync
  • Hotkey support
  • Hot-reload user configuration
  • PMX model support (planning to integrate saba)
  • Multi-language UI (low priority)

Preview

Click to expand
preview1 preview2
preview2 preview2

System Requirements

  • OS: Windows 10/11 (Windows only)
  • CPU: Dual-core or better
  • RAM: 4GB or more
  • Storage: At least 500MB free
  • GPU: OpenGL 3.0+ support

Quick Start

Download & Install

See docs/index.md for usage instructions.

TTS Backends

  • Edge TTS / iFlytek TTS — rely on an external Python server: Pelr_tts_tr. Per open source license requirements, no pre-built package is provided.
  • VOICEVOX — local TTS engine (bundled)
  • OpenAI-Compatible TTS — uses any OpenAI-compatible API endpoint

Update

git fetch && git pull

Update dependencies according to CMakeLists.txt.

First-Time Setup

  1. Set Live2D model path (required)

    • Configure in Settings -> Basic Settings
    • Supports model3.json format
    • Find models at: Booth | Aplaybox
  2. Configure TTS (optional)

    • Edge TTS is recommended (free, no configuration needed)
    • VOICEVOX and OpenAI-Compatible TTS are also available
    • Register at iFlytek Open Platform if needed
    • Fill in API credentials in Settings -> TTS
  3. Set up AI service (optional)

    • Choose any OpenAI-compatible provider

Caution

Do not upload the contents of the user folder to any platform.

Project Structure

See docs/dev-structure.md for details.

Architecture overview
+---------------------------------------------------------------+
|                        Pelr Desktop App                       |
+---------------------------------------------------------------+
|                                                                 |
|  main.cpp (entry point)                                       |
|    |                                                            |
|    +-- core          (tray, window management, launcher)       |
|    +-- ui            (Qt widgets: settings, chat, TODO, system monitor, etc.)  |
|    +-- ai            (OpenAI-compatible chat API)              |
|    +-- tts           (TTS dispatch: voicevox/iflytek/Edge/openai-compatible)    |
|    +-- translation   (translation via Qt Network)              |
|    |       └── Tencent Translation (Qt -> Tencent Cloud API)   |
|    |       └── LibreTranslate etc. (same)                     |
|    +-- keyboard      (keyboard state monitoring)               |
|    +-- model         (Live2D model extensions, extra motions)  |
|    +-- utils         (logging, weather, network, spectrum, storage info, process memory...)  |
|    |       └── kissfft for AudioSpectrumDetector,             |
|    |            real-time system audio analysis -> tray icon   |
|    +-- compatLApp    (Live2D rendering wrapper)               |
|                                                                 |
+---------------------------------------------------------------+
                               |
                               | depends on
                               v
+---------------------------------------------------------------+
|                    Third-Party Libraries                       |
+---------------------------------------------------------------+
|                                                                 |
|  Qt 6.10.1          (GUI, network, multimedia, serial...)       |
|  Live2D Cubism Native Framework                               |
|  Live2D Cubism Core (DLL)      (not distributable)            |
|  GLEW / GLFW       (OpenGL environment)                        |
|  kissfft           (lightweight FFT for audio spectrum)        |
|  voicevox_core     (C API, local TTS engine)                  |
|  ONNX Runtime      (bundled with voicevox_core)               |
|  stb               (image loading)                             |
|                                                                 |
+---------------------------------------------------------------+
                               |
                               | network calls (some modules)
                               v
+---------------------------------------------------------------+
|                   External Services / Helper Processes         |
+---------------------------------------------------------------+
|                                                                 |
|   OpenAI-compatible API   (AI chat)                           |
|   OpenAI-compatible TTS   (optional TTS backend)              |
|   iFlytek Cloud TTS API  (optional TTS backend)               |
|   OpenWeather API        (weather data)                       |
|   Tencent Cloud Translation API (via Qt Network)              |
|   LibreTranslate etc.    (same)                                |
|                                                                 |
|   Python TTS server (separate process, Edge TTS & some iFlytek)|
|      ├── Edge TTS (OpenAI-compatible audio interface)          |
|      └── iFlytek TTS HTTP wrapper (some scenarios)            |
|                                                                 |
+---------------------------------------------------------------+

Tech Stack

See NOTICE for third-party notices.

C++ Core

  • Qt 6.10.1 - Cross-platform application framework
  • OpenGL - Graphics rendering (GLEW + GLFW)
  • Live2D Cubism - 2D animation engine (model3.json)
  • STB - Image processing
  • VOICEVOX - Free, medium-quality TTS engine
  • kissfft - Real-time spectrum analysis and audio detection

Python Toolchain (optional)

Dependencies listed at Pelr_tts_tr/requirements.txt

Usage Guide

  • Main navigation: Use the left sidebar to switch between modules
  • Chat: Send messages in the chat panel or double-click the character to open the dialog
  • Launch Manager: Manage custom launcher entries

See docs/index.md for detailed instructions.

Development & Build

Quick development guide at docs/dev-dev.md

Contributing

License

Different components use different licenses:

  • Live2D Cubism SDK uses a proprietary license
  • Qt framework uses LGPL/GPL
  • Other third-party libraries: see NOTICE
  • Code written by the project author in src is licensed under MIT
  • thirdParty/LAppLive2D and src/compatLApp are derived from CubismNativeSamples, licensed under Live2D Open Software License
  • This project is governed by all of the above licenses

Acknowledgments

  • Live2D Cubism - Cubism Native Framework & Core for 2D animation
  • Qt Framework - Cross-platform C++ framework
  • GLEW - OpenGL extension loading
  • GLFW - Window and OpenGL context management
  • kissfft - Fast Fourier transform library
  • stb - Single-header image processing library
  • VOICEVOX CORE - Free TTS engine
  • ONNX Runtime - Cross-platform ML inference engine
  • llama.cpp - Local AI model deployment
  • openai-edge-tts - OpenAI-compatible Edge TTS interface
  • iFlytek Open Platform - High-quality TTS service
  • Hiroshiba Kazuyuki - VOICEVOX founder
  • Live2D Inc. - Cubism technology
  • All contributors and users for their support

Packages

 
 
 

Contributors