LM Studio Discord Bot

v1.0.0

Connect a local LM Studio model directly to Discord as a lightweight chat bot. Use when you want to expose a local LLM (running via LM Studio on CPU) to Disc...

0· 51·0 current·0 all-time
bydan@dq-stack
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description, SKILL.md, and the included bot-template.js consistently implement a Discord bot that sends messages to LM Studio's local /v1/chat/completions endpoint. Required packages (discord.js, axios) and the localhost LM Studio URL align with the stated purpose.
Instruction Scope
Instructions are narrowly scoped to creating an npm project, installing discord.js and axios, editing the provided bot.js template, and running it. One operational note: the template expects you to edit hardcoded constants in the file (DISCORD_TOKEN, LM_STUDIO_URL, MODEL, GUILD_ID) rather than using environment variables, which is functional but increases risk of accidentally committing secrets or exposing tokens.
Install Mechanism
No install spec; skill is instruction-only and includes a local JS template. The only install commands the README suggests are 'npm install discord.js axios' from public registries — a low-risk, expected approach.
Credentials
The skill does not request additional credentials or environment variables beyond what is necessary for a Discord bot and LM Studio (a bot token and local LM Studio URL). There are no unexpected credential requests or config-path accesses. The template uses in-file constants rather than env vars; this is not disproportionate but is a security hygiene concern (see guidance).
Persistence & Privilege
The skill does not request always:true or any elevated/persistent platform privileges and does not modify other skills or system-wide settings. It runs as a normal user process when started.
Assessment
This skill appears to do what it says, but follow secure practices before running: (1) do not paste your real Discord token into files that may be committed — prefer environment variables or a secrets store; (2) only run LM Studio on localhost or otherwise secure the service if binding to a network interface; (3) give the bot the minimum Discord permissions it needs and consider adding rate-limiting or command filters so it doesn't reply to every message; (4) be aware the template replies with raw error messages to users (could leak internal info) — sanitize or log errors privately; and (5) review and test locally before deploying to any public-facing machine.

Like a lobster shell, security has layers — review code before you run it.

botvk977p66kq0r1mjm31qhhx68n4s83q2p8discordvk977p66kq0r1mjm31qhhx68n4s83q2p8latestvk977p66kq0r1mjm31qhhx68n4s83q2p8lm-studiovk977p66kq0r1mjm31qhhx68n4s83q2p8openclawvk977p66kq0r1mjm31qhhx68n4s83q2p8qwenvk977p66kq0r1mjm31qhhx68n4s83q2p8

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

LM Studio Discord Bot

A minimal Discord bot that routes messages directly to LM Studio — no OpenClaw gateway in the path.

When to Use

  • LM Studio model is fast in direct chat but slow through OpenClaw
  • CPU-only setup where OpenClaw's tool system adds too much latency
  • You want a simple Discord bot without the full OpenClaw feature set

How It Works

Discord → bot.js → LM Studio API → bot.js → Discord

The bot uses Discord.js to receive messages and axios to call LM Studio's /v1/chat/completions endpoint directly. No tools, no workspace files, no system prompt overhead.

Setup

1. Create the bot project

mkdir lm-studio-discord-bot
cd lm-studio-discord-bot
npm init -y
npm install discord.js axios

2. Create bot.js

See scripts/bot-template.js for the ready-to-use template.

3. Configure

Edit these constants in bot.js:

const DISCORD_TOKEN = 'YOUR_DISCORD_BOT_TOKEN';
const LM_STUDIO_URL = 'http://127.0.0.1:1234/v1/chat/completions';
const MODEL = 'qwen2-0.5b-instruct';  // Must match loaded model in LM Studio
const GUILD_ID = 'YOUR_DISCORD_SERVER_ID';

To get your bot token: https://discord.com/developers/applications

To get the Guild ID: Enable Developer Mode in Discord → Right-click your server → Copy ID

4. Add bot to your server

https://discord.com/oauth2/authorize?client_id=BOT_CLIENT_ID&permissions=1024&scope=bot

Replace BOT_CLIENT_ID with your bot's Application ID from the Discord Developer Portal.

5. Run

node bot.js

The bot will log in and respond to messages in any channel of the configured guild.

Configuration Tips

ParameterDefaultNotes
max_tokens512Lower = faster, less verbose
timeout60000msIncrease if slow on CPU
streamfalseSet true for streaming replies

Known Limitations

  • No tool access (file read/write, web search, etc.)
  • No conversation memory — each message is stateless
  • No slash commands
  • Single model per bot instance

Extending

To add conversation history, modify the messages array in the axios call to include prior exchanges. Note: this increases token usage and context window pressure.

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…