A modern DID/OSDD proxy bot for Discord — slash commands, interactive setup, SQLite by default.
Please keep in mind that this will be updated while I have time — I work full time and this is side stuff for me right now <3
Built for plural systems, with love.
git clone https://github.com/pathomaniaexe/Plurality.git
cd Plurality
./setup.shThen open .env and paste your Discord bot token:
DISCORD_TOKEN=your_token_here
Run the bot:
python3 -m pluralityIn Discord, type /setup to get started.
- Discord Developer Portal → New Application → Bot
- Copy the token into
.env - Enable Message Content Intent + Server Members Intent
- Invite the bot with: Send Messages, Manage Messages, Manage Webhooks, Read Message History
You can use either .env or plurality.toml (env vars win if both are set).
| File | Purpose |
|---|---|
.env.example → .env |
Token (simplest) |
plurality.toml.example → plurality.toml |
Full config file |
Database is SQLite — a single file (plurality.db) created automatically. No extra install.
DATABASE_URL=sqlite+aiosqlite:///plurality.db
| Prefix | Slash |
|---|---|
pl!system new |
/system new |
pl!member new Luna |
/member new |
pl!member proxy Luna add [text] |
/member proxy |
pl!switch Luna |
/switch register |
pl!autoproxy front |
/autoproxy |
pl!help |
/help |
Type [hello] in chat after setting proxy tags to test proxying.
pl!member proxy Luna add [text]
[Hello everyone!] → proxies as Luna
Supported formats: [text], {text}, prefix|suffix, :: text ::
Prefix \ to skip autoproxy: \this won't autoproxy
cp .env.example .env # add your token
docker compose up -dSQLite data is stored in ./data/plurality.db.
plurality/ ← the bot (all Python code)
tests/ ← tests
setup.sh ← one-command local setup
.env.example ← copy to .env
plurality.toml.example ← copy to plurality.toml (optional)
pip install -r requirements.txt pytest
pytest tests/Fork-inspired by PluralKit (AGPL-3.0). Built for the plural community.