Similar to PluralKit on Discord, the Personas feature allows a single account to use multiple names and avatars and switch quickly between them on-the-fly. First requested in the earlier thread Plural accessibility in voice and text #339. We have a prototype implementation published at chiaracoetzee/fluxer-subprofiles/tree/features/subprofiles and a demo server up at https://chat-dev.hypersystem.xyz/ (feel free to come visit and try it out). Unlike proxy bot solutions like PluralKit or fishingbucket this is intended to be a first-class native feature in the main Fluxer distribution with both server-side and client-side changes.
Features supported so far:
- Switch between personas using either PluralKit-style prefix/suffix tags or the persona selection panel, accessed via a small icon in the composer bar.
- Active Persona Mode (similar to autoproxy mode in PluralKit) allows you to send all untagged messages from a selected active persona, or to automatically change active persona whenever a tag is used.
- Imports personas from PluralKit json export dumps, including importing all avatars into the Fluxer server's media storage.
- Click on a persona's avatar to see detailed info on that persona, and info on the root account that owns them. Click root account for detailed info on the root account.
- To switch the persona on a message, either edit it and add the persona tag of the new persona, or click "..." to the right of a message then click "Change persona".
- Things like replies, reactions, edits, etc. all work as expected.
- In the current implementation all persona data is stored in the synced preferences blob which has a 256KB limit which is less than ideal. Planning to migrate this to a real DB table with REST API.
- Need to sort out how our equivalent of system tags will work. We're thinking of some combination of text and icon, both optional. There's also been discussions of a server option to force on showing the icon of the owner account, for security/safety reasons.
- Will likely add an Export button and generalize the "Import from PluralKit" button to an "Import" button that recognizes both PluralKit json dumps and its own export format, as well as any other formats we want to support. These are important for data portability of persona collections. I'd ideally like the exported format to include a bundle of avatar images so that it's fully self-contained.
- Way of doing name color (in DMs or with opt-in from server)
- Group/tag systems for organizing subsystems (sub-groups of personas)
- Consider timeout for Active Persona Mode (e.g. switch to off after x minutes as with the mute channel feature)

649022919-56cc10c4-2663-443f-9a68-e9e88a37f067.png
553×456 | 51 kB

649023639-5d894fff-daea-4a1f-b370-a435a99d98de.png
674×753 | 87 kB

649023744-26b72a1d-05f8-45f8-b787-62f33ac1a0fa.png
1911×1480 | 237 kB

649024440-e5ef2c73-b596-45eb-9061-bbfe4fa1146f.png
1058×972 | 77 kB

649024589-16dc1908-9d27-424d-9659-6b0611d6475e.png
554×670 | 46 kB

649028818-2b5ead23-9115-4a47-94c8-9826cf551bcd.png
685×702 | 101 kB
16 comments
Comment by @chiaracoetzee
Comment by tempest:squll.fartcore.ai
Comment by @VanguardSys
Comment by tempest:squll.fartcore.ai
Comment by @j0lol
Comment by @j0lol
Comment by tempest:squll.fartcore.ai
Comment by Hailey
Comment by @chiaracoetzee
Comment by @j0lol
Comment by @chiaracoetzee
Comment by @chiaracoetzee
- Added personas to Flutter client for Android and iPhone and tested on both Android and iPhone devices
- system tag which I call display tag, attached to all personas owned by a user, includes text and icon
- internationalization and translations (for all supported Fluxer languages)
- shows persona name in "is typing" message
- ability to mention personas with @
- nightly rebase job that keeps my feature fork up-to-date with upstream Fluxer
Hailey's clean-room re-implementation for the server and web client has also been progressing well! REST API, persona selector, persona settings, rendering persona messages, etc. image image image {6A6CA62C-2866-4F14-A65F-90F79D20712A}654215039-e8b37914-055b-42bb-baa7-df71b2d2a6e7.png
1566×1599 | 270 kB
654215872-b371ea62-88ea-4212-980a-ce484f6b48a4.png
1080×2400 | 363 kB
654217373-8ae000be-4547-4a52-b419-f0e917526b2a.png
652×221 | 30 kB
654217087-6045a304-977d-4e20-a125-748b45f6def5.png
789×331 | 39 kB
Comment by Speykious
TEST SYSTEMsupposed to be the name of the main account? It should probably not look like it's a different kind of bot. I think that to indicate that this is someone talking through a persona, using a stack of two circles for the profile picture would potentially be better, with the main account's pfp largely hidden by the persona's pfp. image I'm thinking of these two cases. The left one is what's displayed when multiple people are typing, the second one is made up but seems more readable to me after trying it. It has slightly smaller circles with a bigger spacing to better see part of the circle in the background. Maybe with that kind of display you wouldn't need to directly show the system name? Either way a stack like this would be good I think654302335-6df27ae2-2d88-493e-8046-8a7561b41d0c.png
788×380 | 240 kB
Comment by Hailey
Comment by Speykious
Comment by @j0lol