
# π 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 deletes the part where a person has to click things. What remains is a **headless Discord client** driven through a **validated capability layer**, so an **AI agent can run a real Discord account over MCP**. Text automation works today. Audio pipes and video streams are the next descent into madness.
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.
- π§ **An agent body (text tools live).** Your MCP-capable AI gets a real account with real permissions and real consequences.
- π **A proxy (planned).** Messages, events, voice state, attachments β everything forwarded, interceptable, scriptable, and API-shaped.
- π **An audio router (planned).** Play anything into voice. Capture anything out. TTS in, STT out, pipes for days.
- πΉ **A streaming endpoint (planned).** 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: text layer works.** The real Vesktop client runs headless and is driven through a validated capability layer. Triggers, trust tiers, conversation context, response policy, persistent logging, MCP tools, user search, voice state reads, and the Nocturne-style debug web UI are live. Reaction polls are paused. Voice actions, audio, and video are still the vision. The design docs live in [docs/INDEX.md](docs/INDEX.md).
## πΏ 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.
**Live tool surface** (names may change, vibes will not):
| Tool | Description |
| --- | --- |
| `get_state` | User, guilds, and channels. Cache-only, zero queries. |
| `get_voice_state` | Which voice channel a user is in and who else is suffering there. |
| `get_voice_overview` | Occupied voice channels in a guild and their members. |
| `search_users` | Find a user ID from a username, nickname, or cached profile. |
| `send_message` | Send a message as the account. Send-paced. |
| `read_messages` | Read the client's message cache. |
| `send_dm` | Slide into someone's DMs. |
| `get_context` | Recent conversation context for a channel. Fetches new messages only. |
| `get_message_log` | Trigger log: trusted entries and a reserved untrusted buffer. |
| `get_action_log` | Durable audit trail: triggers, commands, replies, errors. |
| `get_puppet_config` / `set_puppet_config` | Response policy, context limits, poll duration. |
| `whitelist_list` / `whitelist_add` / `whitelist_remove` | Trust tiers: user, trusted, admin. |
| `run_commands` | Run several read-only tools in one call. |
There is also a small web control UI on `http://