Discord
Last updated:
Discord integration lets your main agent answer Discord messages through a bot account.
Note
A Discord bot is a separate Discord application account. Oscova signs in as that bot and only accepts messages from the numeric Authorized User ID saved on this page.
What you need first
Before the page can start the bot, save its token in the built-in Discord Bot credential slot. The Discord settings page does not ask for the token directly.
You also need your Discord user ID. It is a long number such as 123456789012345678, not your username, display name, or email address. Use the help link on the page if you need Discord's steps for copying IDs.
Enable the Discord application's Message Content Intent. For server-channel use, invite the bot to the server and give it permission to view the chosen channel, read messages, and send replies. Direct-message use requires the user and bot to be able to open a DM channel.
Configure the page
- Open Settings > Connections > Discord.
- Turn on Enable Discord bot at startup only if you want the bot to connect when Oscova starts.
- Enter your numeric Authorized User ID.
- Select Save Settings.
- Select Start Bot when you want to connect immediately.
The startup toggle saves as soon as you change it. Authorized User ID changes require Save Settings. Saving a different authorized user stops the bot. Select Start Bot to reconnect with the new authorization. If startup is enabled without a saved user ID, the page turns the toggle off and shows a warning.
Runtime behavior
When the bot is running, messages from the authorized user are routed to the main agent in any direct or server channel the bot can receive. Messages from every other user and from the bot itself are ignored. Tool approval prompts can be answered through the same Discord channel when a tool needs confirmation.
Before downloading an attachment, Oscova gives UserPromptSubmit hooks its Discord-supplied file name, media type, and size. A denied prompt therefore downloads and stages nothing. Accepted attachments are staged through the same attachment path used by the web chat. Unsupported file extensions, oversized files, or attachment-only messages with no usable content are skipped.
Hooks and tool policies still apply. For example, a UserPromptSubmit hook can block a Discord message before it reaches the agent, and a tool approval policy can require confirmation before a Discord-triggered tool call runs.
Discord attachment limits match web chat: up to 50 usable attachments per message and 10 MB per attachment. Supported files include images, PDFs, and common text formats such as Markdown, TXT, JSON, CSV, XML, YAML, and logs.
Discord runs use the main agent and its current provider, tools, skills, memory, privacy, and file access. If the main agent or user is local-only, Oscova does not download message attachments. The Discord gateway and outbound replies still use an external network service. Agent replies longer than Discord's 2,000-character message limit are split into multiple messages.
When a tool or MCP server asks a follow-up question through text elicitation, the next matching Discord reply from the same channel and authorized user is consumed as that answer instead of starting a new agent run.
Discord runs are saved into the current main-agent chat thread and recorded in metrics. Outbound replies appear in the run's egress audit. Inbound gateway traffic and attachment downloads remain outside that ledger. If a new session starts from Discord, the thread title is set to Discord.
Troubleshooting
- Start Bot says the token is not configured: create or update the built-in Discord Bot credential.
- Start Bot warns about the user ID: save a numeric Authorized User ID first.
- The bot connects but does not answer: confirm the author ID, Message Content Intent, and the bot's access to that direct or server channel.
- A reply answered a tool prompt instead of starting a new chat: finish the pending approval or elicitation first, then send a new message.
- The wrong person can talk to the bot: recheck the numeric authorized ID. The page does not use display names.
- Startup does not connect: confirm both the startup toggle and authorized ID were saved, then restart Oscova Agents.