LM Studio Discord Bot
Security checks across malware telemetry and agentic risk
Overview
This appears to be a straightforward Discord-to-LM Studio bot template, but it requires a Discord bot token and can read and reply to messages across the configured server.
Before installing, create a dedicated Discord bot with minimal permissions, keep its token out of source control, test in a private channel, and tell server members that messages the bot can see may be sent to your local LM Studio model and logged.
VirusTotal
VirusTotal findings are pending for this skill version.
Risk analysis
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
If the token is leaked, someone else could control the bot account and post or read messages according to the bot's permissions.
The skill requires a Discord bot token to authenticate. This is expected for a Discord bot, but the token grants delegated control of the bot within its Discord permissions.
const DISCORD_TOKEN = 'YOUR_DISCORD_BOT_TOKEN';
Store the token in an environment variable or secret manager instead of committing it in bot.js, keep Discord permissions minimal, and rotate the token if it is shared.
The bot may respond to ordinary conversations in every accessible channel of the configured server.
The bot's reply behavior is broad within the configured Discord server. This is disclosed and purpose-aligned, but it can create unintended public replies or spam if deployed broadly.
The bot will log in and respond to messages in any channel of the configured guild.
Restrict the bot to a test channel first, add a mention/prefix/channel allowlist if needed, and review Discord permissions before inviting it.
Messages from Discord channels the bot can access will be processed by the local LM Studio model, and the template also logs received messages and replies to the console.
Discord message content is forwarded to the configured LM Studio API endpoint. The default endpoint is localhost, which is purpose-aligned, but it is still a data flow users should recognize.
const userMessage = message.content.trim(); ... axios.post(LM_STUDIO_URL, { model: MODEL, messages: [{ role: 'user', content: userMessage }], ... });Use this only in channels where participants understand the bot is processing messages, and avoid channels containing sensitive content unless logging and model access are acceptable.
Future installs could pull newer package versions with different behavior or vulnerabilities.
The setup asks the user to install npm dependencies without pinned versions or a lockfile. These packages are expected for the bot, but dependency versions and provenance are not fixed by the artifact.
npm install discord.js axios
Install from the official npm registry, generate and keep a package-lock.json, and consider pinning known-good dependency versions.
