Ventriloquist
A proxy tag parsing and webhook egressing bot for plural communities on Discord
Install / Use
/learn @withinsoft/VentriloquistREADME
Ventriloquist
In many online communities, there has been a need for there to be more than more "voice" per chat connection. Sometimes for roleplay, sometimes to multiplex several "people" over a single chat connection. This bot seeks to help people wishing to (for whatever reason) multiplex several voices over a single Discord connection.
Requirements
Server
Ventriloquist is currently only tested on GOOS=linux GOARCH=amd64. Other
architectures should work, but may not. If you run into any issues, please
file a bug report. The Docker images are only for GOOS=linux GOARCH=amd64.
- Docker + Docker Compose (or a swarm)
OR
- Some server that Go can target binaries for
- Persistent disk storage for its database file (and backups!)
- InfluxDB or another Graphite protocol compatible metrics server
- Runtime metrics, completely anonymous and aggregated data
OPTIONAL
- Grafana
- To make pretty graphs
Runtime
Ventriloquist is configured by environment variables. For convenience, you can
define these with a file named .env containing key->value environment variables
as such:
ADMIN_ROLE=442518271057592330
<... etc>
These are all required for any deployment of Ventriloquist.
| Environment Variable | Description |
|:-------------------- |:----------- |
| ADMIN_ROLE | Users with this Discord guild role will be able to use the moderator commands to impersonate user commands. It is not possible to proxy with these commands. |
| DISCORD_TOKEN | The Discord bot token for this bot. This bot should be joined to a Discord guild with the permissions "Manage Messages", "Manage Webhooks", and "Use Cross-Server Emoji". |
| GRAPHITE_SERVER | The Graphite server that Ventriloquist sends its anonymous aggregated runtime metrics to, TCP host:port. |
| LOGGING_WEBHOOK | If set, log the message ID, systemmate name, username + discriminator, user ID, channel ID and proxied message to this webhook after the message being proxied is deleted. This is for moderator accountability of messages being proxied. |
Using
To start Ventriloquist for yourself, fill out a .env file into a checkout of
this repository and then run the following docker-compose command:
$ docker-compose up --build -d
The database will be located in /var/lib/docker/volumes/ventriloquist_data/_data/tulpas.db.
Please configure an automated backup somehow.
To see more about using Ventriloquist as a user, see the User section of the usage doc.
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
