
# π Veskslop
### The headless, agentic, MCP-pilled Discord client.
**No window. No mouse. No human. Just tools, pipes, and a Discord account living its best digital life.**
[](#)
[](#-why-though)
[](#-mcp-the-brain)
[](#-audio-pipes)
[](#-video-streams)
[](https://github.com/Vencord/Vesktop)
[](LICENSE)
---
> β οΈ **Veskslop is NOT Vesktop.** They are separate projects with separate goals.
> [Vesktop](https://github.com/Vencord/Vesktop) makes Discord nicer for **humans**.
> Veskslop deletes the human entirely and installs a robot in their place.
## π What is Veskslop
Veskslop takes the beloved Vesktop base and surgically removes the part where a person has to click things. What remains is a **headless Discord client**: a daemon that speaks Discord natively, exposes itself as a **proxy**, and lets an **AI agent drive a real Discord account** over **MCP** β while you pipe **audio in**, pipe **audio out**, and shove **live video streams** down its throat.
It is Discord, but as infrastructure. It is the account you already have, plus `curl`, minus dignity.
Think of it as:
- π₯οΈ **A Discord client with the client removed.** Runs on a server, in a container, on a Raspberry Pi, in your weird home lab, wherever.
- π **A proxy.** Messages, events, voice state, attachments β everything is forwarded, interceptable, scriptable, and API-shaped.
- π§ **An agent body.** Your MCP-capable AI gets a real account with real permissions and real consequences.
- π **An audio router.** Play anything into voice. Capture anything out. TTS in, STT out, pipes for days.
- πΉ **A streaming endpoint.** Push files, cameras, generative visuals, or pure slop into a voice channel.
- π§ͺ **A science experiment that will absolutely not get your account banned** *(allegedly)*.
> **Status: pre-alpha.** The repo currently carries the Vesktop base + global shortcut work. The headless core is being carved out. Everything below is the target architecture β some of it works, some of it is a promise, all of it is the vision.
## πΏ Why though
Because clicking is for mortals. Because you want a Discord presence that never sleeps, never typos, and never says "brb". Because "can an AI run a Discord account" is the kind of question that deserves a yes and a README.
Real reasons people actually want this:
- Automate community management, moderation, and notifications without a desktop app running.
- Bridge Discord into other systems: chatops, dashboards, MCP agents, home automation, whatever.
- Route voice audio both ways: feed a bot ears and a mouth.
- Stream synthetic video into a voice channel for demos, testing, or entertainment.
- Run entirely headless on a VPS with no GUI stack whatsoever.
## π§ MCP: the brain
Veskslop ships an **MCP server** so any MCP-capable agent (Claude, GPT-based agents, your local Llama abomination, a cron job with delusions of grandeur) can operate the account through structured tool calls.
**Planned tool surface** (names may change, vibes will not):
| Tool | Description |
| --- | --- |
| `discord_send_message` | Send a message to a channel, thread, or DM. |
| `discord_read_messages` | Read recent messages, with filters, pagination, and search. |
| `discord_list_guilds` | List guilds, channels, threads, and their IDs. |
| `discord_react` | Add or remove reactions. |
| `discord_edit_message` | Edit a message the account sent. |
| `discord_delete_message` | Delete a message the account sent. |
| `discord_upload_file` | Upload attachments with optional captions. |
| `discord_join_voice` | Join a voice channel and stay there like a loyal appliance. |
| `discord_leave_voice` | Leave the voice channel. Deeply emotional. |
| `discord_play_audio` | Pipe an audio source into the voice channel. |
| `discord_capture_audio` | Capture per-user audio out of the voice channel. |
| `discord_start_stream` | Start a video stream in the current voice channel. |
| `discord_stop_stream` | Stop the stream. |
| `discord_set_presence` | Status, activity, custom status. Look busy. |
| `discord_set_voice_state` | Mute, deafen, self-mute, self-deafen. |
| `discord_get_state` | Snapshot of the account, gateway, and pipelines. |
Every tool is designed to be **safe by default**: explicit opt-in for destructive actions, rate-limit awareness, and a sandbox mode that logs instead of sends.
## π Proxy mode
Veskslop is also a **proxy layer** in front of Discord:
- **REST passthrough** with authentication handled once.
- **Gateway event bus** β every event is consumable by local code, webhooks, or other processes.
- **Inbound injection** β anything that can hit the proxy can act as the account, with policy checks in between.
- **Message middleware** β transform, filter, log, reroute, or mirror traffic.
- **Multi-account ready** (eventually) β one daemon, several identities, maximum chaos.
```txt
your app / agent / script βββΆ Veskslop proxy βββΆ Discord
β
ββ policy / rate limit / audit log
ββ event bus βββΆ subscribers
```
## π Audio pipes
Voice is a first-class citizen, not an afterthought duct-taped on at 3am.
- **Audio in:** play PCM, Opus, or arbitrary encoded media into a voice channel. Wire up TTS, a soundboard, a radio stream, or an entire DAW.
- **Audio out:** capture the mixed voice channel, individual speakers, or both. Feed it to STT, a recorder, or your stream.
- **Virtual devices:** capture from a virtual sink and monitor, so routing stays clean on Linux (PipeWire / PulseAudio).
- **Format plumbing:** resampling, channel mapping, gain, and opus encoding handled by the pipeline.
- **Backpressure aware:** buffers exist. They are bounded. We learned things.
```txt
mic / TTS / file βββΆ ffmpeg βββΆ opus βββΆ Veskslop βββΆ voice channel
β
voice channel βββΆ per-user decode βββΆ mix βββΆ PCM/file/STT βββΆ anywhere
```