kwaroran 2df1cb7318 feat: Add 'divider' and 'group'/'groupEnd' type toggle (#856)
# PR Checklist
- [ ] Have you checked if it works normally in all models? *Ignore this
if it doesn't use models.*
- [x] Have you checked if it works normally in all web, local, and node
hosted versions? If it doesn't, have you blocked it in those versions?
- [x] Have you added type definitions?

# Description

## Dividers

| Before | After |
| --- | --- |

|![image](https://github.com/user-attachments/assets/9d6281fe-3be6-4b51-8ca1-dab20c666945)
|
![image](https://github.com/user-attachments/assets/3cec282c-29ed-4a9e-af03-9ee1f1ed4fab)|

Instead of pseudo-dividers with unwanted checkboxes, this allows
creators to define a "divider" *toggle*.


![image](https://github.com/user-attachments/assets/e22c9dda-673f-4981-9c5d-3810089e57b4)

Dividers are created by keyless `=name=divider`, or keyless valueless
`==divider`.

```
=My Module=divider
==divider
```

Multiple dividers with equal label will merge into one to prevent too
many dividers from multiple modules covering everything up.


![image](https://github.com/user-attachments/assets/7fc41a8f-02f2-4937-8d4c-ede0f41c8ac3)

```
// these won't merge
==divider
=K=divider
// these will merge
==divider
==divider
```

## Groups


![image](https://github.com/user-attachments/assets/fc3be4de-8e23-404e-b7f3-2b9d80ffc4de)

Groups are opened by keyless `=name=group` and closed by keyless
valueless `==groupEnd`. Nesting is not supported.

| Opened groups | MobileGUI |
|---|---|
|
![image](https://github.com/user-attachments/assets/8ec05169-07bd-4e20-bf04-47b1736059b5)
|
![image](https://github.com/user-attachments/assets/aa19be6c-0951-43a5-8175-4c96ade2913d)
|
2025-05-25 18:21:11 +09:00
2025-05-18 17:24:27 +09:00
2024-09-06 02:45:49 +09:00
2025-03-16 19:41:06 +09:00
2025-04-18 13:18:37 +09:00
2024-10-13 01:29:12 +09:00
2025-03-10 13:14:20 +09:00
2025-02-26 22:26:15 +09:00
2024-09-10 22:09:58 +09:00
2024-10-13 01:46:57 +09:00
2025-03-20 12:08:34 +09:00
2025-05-17 01:42:08 +09:00
2024-10-25 18:11:00 +09:00

RisuAI

text

Svelte Typescript Tauri

RisuAI, or Risu for short, is a cross platform AI chatting software / web application with powerful features such as multiple API support, assets in the chat, regex functions and much more.

Screenshots

Screenshot 1 Screenshot 2
Screenshot 1 Screenshot 2
Screenshot 3 Screenshot 4

Features

  • Multiple API Supports: Supports OAI, Claude, Ooba, OpenRouter... and More!
  • Emotion Images: Display the image of the current character, according to his/her expressions!
  • Group Chats: Multiple characters in one chat.
  • Plugins: Add your features and providers, and simply share.
  • Regex Script: Modify model's output by regex, to make a custom GUI and others
  • Powerful Translators: Automatically translate the input/output, so you can roleplay without knowing model's language.
  • Lorebook: Also known as world infos or memory book, which can make character memorize more.
  • Themes: Choose it from 3 themes, Classic, WaifuLike, WaifuCut.
  • Powerful Prompting: Change the prompting order easily, Impersonate inside prompts, Use conditions, variables... and more!
  • Customizable, Friendly UI: Great Accessibility and mobile friendly
  • TTS: Use TTS to make the output text into voice.
  • Additonal Assets: Embed your images, audios and videos to bot, and make it display at chat or background!
  • And More!

You can get detailed information on https://github.com/kwaroran/RisuAI/wiki (Work in Progress)

Discord

Installation

Docker Installation

You can also run RisuAI using Docker. This method is particularly useful for web hosting.

  1. Clone the repository:

    git clone https://github.com/kwaroran/RisuAI.git
    cd RisuAI
    
  2. Build and run the Docker container:

    docker-compose up -d
    
  3. Access RisuAI at http://localhost:6001 in your web browser.

Description
No description provided
Readme 62 MiB
Languages
TypeScript 58.9%
Svelte 35.1%
JavaScript 4.4%
Rust 0.5%
Lua 0.3%
Other 0.7%