DocsIn Discord
Install guide

How to add Ergod to Discord, Telegram or a browser

Four ways in, none of them an install. A Discord server: open the invite link with Manage Server, approve the permissions, pick the server. Your own Discord account: the same link offers Add to my apps; its commands then work in every server you are in and in DMs, no admin needed. Telegram: message @ErgodDev_bot and that message creates your workspace. A browser: sign in at app.ergod.dev with Discord, GitHub or Google and type. Below: every step, what you see at each one, every permission and why, and what to do when it does not answer.

Don't own a server you can install bots on? You don't need one — start in your browser, or add Ergod to your account — its commands work in every server you're in, and in DMs. No install, no admin rights.

How to add a bot to Discord

Adding any bot to a Discord server is the same three steps, and you need Manage Server permission on the server you are adding it to. You click an invite link, Discord shows you exactly which permissions the bot is asking for, and you pick the server. That is the whole flow — there is no install on your machine and nothing to host.

The part people get stuck on is the permission screen, because it is the one moment you are agreeing to something without being told why. The section below lists every permission Ergod asks for and what breaks if you decline it, which is the answer that link usually does not give you.

If you do not run a server, you do not need one. The same install link also offers Add to my apps — add Ergod to your own account and its commands work in every server you are in, even ones that do not have the bot, and in DMs. Ergod also works in a browser tab and in Telegram, with the same agent and the same files.

Each door, step by step

What you do, and what you see.

A Discord server
Needs Manage Server
  1. Open the invite link and pick the server. Discord lists every permission Ergod asks for (all of them explained below): nothing destructive, no kick or ban, no admin.
  2. Watch the first writable channel. Ergod posts one welcome there: a short opener, how to talk to it, the Shared room / Just me rule, and four buttons: Try one thing, Start a room here, Set me up, and Use my own agent by default. If no channel is writable, the same welcome goes as a DM to whoever added it.
  3. @-mention it with a task. The first time you have no saved choice in that channel, your request is held and Ergod asks one question first: Shared room (the channel’s own agent, history and workspace) or Just me. Press one and the held request runs. Nothing runs until you pick; the question expires after fifteen minutes.
  4. Say only “hi” instead. A greeting never reaches the agent. You get a card, Hey — I build things in Discord, with a themed opener and three starter buttons; pressing one sends it as your first request.
  5. Need the commands? /help says how to ask and what Ergod can do; type / and Discord’s own menu lists every command with a line each.
Your own Discord account
No server, no admin
  1. Open the same link and choose Add to my apps. Discord adds Ergod to your account. There is no welcome message for this: Discord does not tell a bot it was added to an account.
  2. DM it, or use / in any server you are in. Your first DM gets the same greet card: an opener and three starter buttons. Its slash commands work in every server you are in, even ones without the bot.
  3. Open the Activity from a DM or group DM. The card says Play here with a Start a table in this DM button. The first press makes that DM its own table; everyone who opens the Activity in the same DM is seated. Just you and Ergod, or the whole group chat.
Telegram
No account first
  1. Message @ErgodDev_bot. That message creates your workspace, on the free tier, no card. A first message that is only a greeting gets a text greet with a few try: lines; a real request just runs, and the reply is one message rewritten in place while it works.
  2. Already have an Ergod account? Link it first: dashboard → Account → Sign-in methods → Link Telegram opens the bot with a one-time code. A Telegram identity that has already made its own workspace cannot be merged later.
  3. Add it to a group. It posts one card saying what it is for and how to address it, then stays quiet until someone mentions it by name or replies to it. Usage is charged to whoever spoke.
  4. Send /play. A button per game. In a private chat the table opens right there; in a group the chat gets a table of its own, once the bot is set up for it.
A browser
Nothing installed
  1. Open app.ergod.dev and sign in with Discord, GitHub or Google. Signing in provisions nothing. The signed-out page offers starter asks; pick one and it runs as your first message once you are in.
  2. Type in the composer. Your first message creates the workspace. The reply rewrites itself in place with the tool it is running named on it, and the files it made are linked from the reply and listed in Files.
  3. Want other people in it? Play is the games with Ergod across the board; Rooms (under Shared) opens a web room and mints invite codes, one person each, a day long. Servers appears only if you administer a server Ergod is in.

Ready to install?

Discord OAuth flow. You'll need Manage Server on the server you're adding it to.

Add to your server
  1. 01

    Open the install link

    Click Add to your server above. Discord will ask you to pick a server you have Manage Server on. If you're inviting Ergod for someone else, send them this page - only a server admin can complete a server install (anyone can still add Ergod to their own account instead - its commands then work in every server they're in).

  2. 02

    Review the requested permissions

    Discord shows the exact permission set Ergod is asking for. The defaults cover replies, public reply threads, polls, and creating Ergod's own events - nothing destructive, no kick/ban, no admin. Full breakdown below. You can tighten further by limiting the bot's role to specific channels.

  3. 03

    Drop Ergod into the channels you want

    By default Ergod responds anywhere it can see an @-mention. Most servers want to scope it tighter. Two options:

    • Right-click the channel → Edit Channel → Permissions → add the Ergod role and only enable View Channel + Send Messages in the channels you want.
    • Or run /ergod-config channel action:allow channel:#dev-help from any text channel - explicit allowlist, stacks across multiple channels, persists across role edits.
    Pro tip: for high-traffic servers, use /ergod-config threads mode:always. Ergod will reply in a thread off the trigger message instead of cluttering the channel. Keep @-mentioning it inside the thread - Ergod runs without the Message Content intent, so an un-mentioned message is invisible to it.
  4. 04

    Ask for something

    In one of the allowed channels, mention it with a task: @Ergod make me a one-page countdown to Friday. The first response after install will take up to ~20s while your container provisions. Warm replies land in 10-15s. Free gives every user in the server a full day's usage that refills every day, plus a usage bonus to start that never expires. What happens between the mention and the file.

  5. 05

    Optional - gate by role or upgrade to Pro

    Some teams want to restrict who can use the bot, or unlock the Pro tier (2.5× Free's usage, pooled over a rolling week so a big night can spend it; sub-agent dispatch; containers that stay warm 60 minutes instead of 10; channel-shaped personas; hosting several shared channel sessions at once — every tier hosts one, free, on its own storage). Any tier — Free included — can plug in a Claude / GPT / Gemini / OpenRouter key with /byok set to make the same usage go about 5× further.

    • /ergod-config role action:block role:@Read-Only - block a role from invoking Ergod. Use action:unblock to reverse.
    • To restrict Ergod to a specific role, use Discord's native channel permissions instead - the bot's role-gating is a blocklist, not an allowlist.
    • For Pro / Pro+ subscriptions: open Ergod's profile in Discord → Subscribe. Discord handles billing; we never touch your card.
From the first message to a file

What happens when a member asks for something.

01 · Mention it, with something you want doneErgod runs without Discord’s Message Content intent, so the only messages that reach it are an @Ergod mention, a DM, or a slash command’s arguments. Open with the task: @Ergod make me a one-page countdown to Friday. A first message that is only “hi” or “what can you do?” never reaches the agent; it gets a card instead - Hey — I build things in Discord, Try one of these: and a few concrete asks - because half of all first turns used to be exactly that and none of them came back.
02 · SeenA 👀 reaction lands on your message the moment it is received. In a server channel, the first time you have no saved choice, the request is held while Ergod asks one question: use a shared room here - its own agent, history, memory and workspace - or your own? Pick Shared room or Just me and the held request runs; the answer is remembered for that channel.
03 · One card, rewritten while it worksThe reply is a single message that Ergod edits in place as it goes, with the tool it is running named on it, rather than a stream of progress posts. The first reply after install takes longest while your workspace is created - there is no account step; the first message is what provisions it - and warm replies land in seconds.
04 · The file, in the channelWhen it is done the files it made are attached to the reply as real files - an .html you can open, a script you can run - and the 👀 becomes a ✅. In a channel the reply and the files are visible to the channel; whose workspace they went into is the choice from step two. Whatever it built stays put: come back tomorrow, mention it again, and tell it what to change.

One such run, from the public showcase: a member asked “make us a wordle that only uses words from our server's inside jokes: BONK, YEET, SUSSY, GRIND, VIBED. give me a playable page”, Ergod made 5 tool calls in 32.8 seconds, and 3 files came back into the channel, among them inside-joke-wordle.html at 11,227 bytes of standalone HTML. It spent 2.08% of one day’s free usage. The recorded runs, with every step and the reviewed result.

Discord AI assistant bot

Add it once; every member gets their own.

Multi-user

Every member gets their own

Add the bot once. Everyone in the server can use it, and each person has a private workspace unless they choose the channel’s shared room — nobody sees anyone else’s personal files. You are not sharing one chat history with forty people unless the channel decides to.

Work, not replies

It builds things, it does not only chat

Ask for a website, a game, a script or a summary. It writes the files, runs the commands, and posts the result back into the channel as real files you can download. That is the difference between an agent and a chatbot.

No API key

Nothing to bring

You do not need your own key — though any tier can add one with /byok. The free tier includes real usage that refills every day at midnight UTC, with 1 GB of workspace, and no card.

Memory

It remembers

Preferences, corrections and project decisions carry across sessions. Ask for the same thing next week and you do not start from nothing.

Three doors

Also on Telegram and in a browser

The same agent, reachable three ways — and the same files across all three once you link the accounts in the dashboard. Start something in Discord on your phone, pick it up in the browser dashboard at a desk.

Manage Channels

Admins keep control

Channel rules, blocked roles, thread mode, mention scrubbing, the room recommendation and each channel’s room policy: set them by slash command or from the dashboard. Every switch on the Servers page.

Is this a Discord AI bot, or something else?

Both, depending on what you mean. Most things sold as a Discord AI bot are chat bots: you say something, they say something back, and that is the whole loop. Useful, and genuinely fun in a server, but the conversation is the product. Ergod answers the same request and then keeps going: it writes the files, runs the commands, and posts the result into the channel as something you can download. That is the line between a chat bot and an agent — one produces replies, the other produces work — and it installs the same way, lives in the same channels, and every member of your server can use it.

What your members see

A room in every voice channel.

Once Ergod is in, any member can open the Activity in a voice channel: start a round, pick a game, or play what the room already made. Nobody needs to be an admin for that part. How the Activity works.

The lobby: start a round, pick Trivia, or play what the room already made.
On a phone, in a channel nobody has claimed: the first turn is a button.
Permissions Ergod requests

Exactly what it asks for, and why.

Discord groups permissions into a single OAuth grant. Below is every individual permission inside the install URL, explained one by one. Notably absent: Manage Server, Manage Channels, Kick, Ban, Mention Everyone, Administrator.

View ChannelsSee channels in the channel list. Required to know where it can be summoned.
Send MessagesThe core capability - replying in channels Ergod is allowed in.
Send Messages in ThreadsReply inside threads when @-mentioned there, or when threads mode is set to always.
Create Public ThreadsSpawn a thread off the trigger message when threads mode is set to always. Cannot create private threads.
Embed LinksRender rich link previews and inline tool output cards.
Attach FilesUpload files Ergod creates in your workspace back into Discord.
Read Message HistoryResolve the message you used Discord's Reply button on, when it is one of your own. Ergod runs without the Message Content intent, so other people's messages stay unreadable.
Use Application CommandsShow Ergod's slash commands and context-menu actions.
Add ReactionsReact to your message to confirm the request was received before the response is ready.
Create EventsCreate a scheduled event and edit or delete only events Ergod created. It cannot manage other people's events.
Send PollsPost Discord-native polls from /poll create or when you ask Ergod to make one.
Admin commands

Commands for server admins.

These are gated behind the Discord Manage Channels permission - the same bit Ergod checks before it will show you anything about a server. Members without it won't see these in the slash-command picker. The full command list (including end-user commands) lives on the commands page.

/ergod-configchannelaction:allow|blockchannel:#channel

Allowlist or blocklist a specific channel. Once any channel is allow-listed, all others are off by default. Stacks.

/ergod-configroleaction:block|unblockrole:@role

Block a role from invoking Ergod, or unblock a previously-blocked one. Blocklist only - no role allowlist.

/ergod-configthreadsmode:always|never

Whether Ergod creates a thread for each reply across the whole server.

/ergod-configthreads-heremode:always|never|default

Override thread mode for the current channel. default returns to the server-wide setting.

/ergod-configmentionsmode:on|off

Toggle scrubbing of @everyone, @here, and role pings in Ergod's replies.

/ergod-configdeny-replymode:ephemeral|silent

How Ergod tells users they're blocked - a private notice or no reply at all. Applies to slash commands only: Discord cannot answer an @mention privately, so a blocked @mention is always dropped in silence.

/ergod-configshow

Print the current server-wide config (allowed channels, blocked channels, blocked roles, thread mode, mention scrub).

/ergod-configchannel-session opensponsor:@user (optional)

Open a shared channel session — host it yourself or nominate a sponsor. Sponsor: who'll host the shared workspace (defaults to you; Free hosts up to three across servers). A nominee accepts before the room starts. /share-session is the same thing without the argument.

/ergod-configchannel-session close

End this shared room; retained files are cleaned up after 90 days.

/ergod-configchannel-session status

Show whether this channel has a shared session.

/ergod-configchannel-session blockuser:@user

Block a user from engaging with this channel's session — they still get normal bot access in DMs and other channels.

/ergod-configchannel-session unblockuser:@user

Remove a user from this channel session's blocklist.

/ergod-configchannel-session blocklist

Show the current blocklist for this channel's session.

Servers, in the browser

Read and change your server's settings without typing a command.

Sign in at app.ergod.dev/dashboard and a Servers tab lists the servers Ergod is in where you hold Manage Channels. Pick one and its whole configuration is on the page, grouped the way the bot applies it, and every setting is a control you can change right there. The groups and rows, in the page’s own words:

Server-wide reply access · Channel rulesThe channels Ergod never replies in and the channels it only replies in, in the order the bot applies them (blocks first). Add a channel rule: Never reply here or Only reply here; undo with Allow again or Remove from the list. A server with neither is told Ergod replies in every channel it can see. Command: /ergod-config channel.
Server-wide reply format · Server thread defaultA thread for each message, or replies inline with no thread per message. Command: /ergod-config threads.
Server-wide reply format · Channel thread overridesPer channel: Threads here or Inline here, and Use the default to drop the override. Listed as the channels they apply to. Command: /ergod-config threads-here.
Server-wide reply format · Server mention safetyOn: replies cannot ping @everyone, @here or roles. Off: they may. Command: /ergod-config mentions.
Server-wide member access · Blocked rolesThe roles whose members cannot use Ergod here, with Block a role and Unblock; or a plain statement that every member can. Command: /ergod-config role.
Server-wide member access · Blocked-member responseA private notice to whoever asked, or no reply at all. Command: /ergod-config deny-reply.
First choice for members · Server recommendationShared room, or Just me (each member’s own agent). A saved choice for the channel wins, then the member’s own default from Account; with neither, Ergod offers the choice before starting and leads with this. Command: /session server-default.
Channel agent policy · Per-channel room policyFor each channel: Follow server behavior, Personal agents only (overrides a member’s saved Shared room choice), or Shared rooms allowed (still asks a member with no saved choice, Shared room first). Command: /session channel-policy.
Read-only rows · HistoryThe Discord user ID of whoever last changed the config and the day they did - or, for a server nobody has configured, a note that everything above is Ergod’s default.
Read-only rows · Shared channel sessionsEvery shared room in the server: its channel, host, the day it opened, when its next renewal check falls, how many members are blocked from it, and - once a room has closed - the date retention started and that the shared workspace is deleted 90 days after it. A server admin can Claim as host from here. Command: /ergod-config channel-session status.
Same code, either door. A control on the page writes through exactly the store method the slash command writes through and clears the same cache, so a setting cannot mean one thing in Discord and another on the web. A channel or role you pick is checked against what the server actually contains before anything is written, and your Manage Channels permission is re-derived against Discord on the write as well as the read.
You only see it if you administer something. Servers you administer that Ergod is not in do not appear - Ergod cannot see them. And if you hold Manage Channels in no server Ergod is in, there is no Servers item and no Servers page at all, rather than an empty one. Your permission is re-checked against Discord on every single request, including on the reads, so losing the permission closes the page on the next click.
Security & data

What we do and don't touch.

The short version. Full detail lives in privacy and how it thinks.

Container isolation

One sandbox per user

Each user gets a Docker container scoped to their workspace. No cross-tenant access; ALL caps dropped, no-new-privileges enforced, RFC1918 + cloud metadata blocked at egress.

Workspace files

You own them - export anytime

/export ships your workspace as a zip, or download individual files from the dashboard file browser at app.ergod.dev/dashboard. /session reset clears history; /factory-reset rebuilds the container from scratch.

Server data

We can't read non-trigger messages

Ergod runs without Discord's Message Content intent. It only ever sees messages that @-mention it, DM it, or pass slash-command arguments - everything else arrives with the text already stripped by Discord.

Credentials

GitHub auth is encrypted at rest

Linked GitHub tokens are encrypted with Fernet (AES-128-CBC + HMAC-SHA256), scoped per-owner, and never written to your workspace filesystem.

Troubleshooting

When it does not do what you expected.

It does not answer in the channelIt only receives messages that @Ergod-mention it, DM it, or are slash-command arguments; Discord strips everything else before it arrives, because Ergod runs without the Message Content intent. Mention it, including inside a thread it opened. If a mention still gets nothing, an admin has either blocked the channel or your role with /ergod-config: a blocked @mention is dropped in silence, since Discord cannot answer a mention privately. /ergod-config show prints the rules.
It asked me Shared room or Just me and then nothing happenedYour request is held until you press one. Pick Shared room for the channel’s own agent, history and workspace, or Just me for yours; the held request then runs and the choice is remembered for that channel. The question expires after fifteen minutes; mention it again and it asks once more.
I said hi and got a card instead of an answerA greeting or “what can you do?” never reaches the agent; the card’s starter buttons are the fastest way in. Press one, or open with the task itself: @Ergod make me a one-page countdown to Friday.
The Activity says No room here yetNobody has started this channel’s room. The card under it is the first turn: press Start a room here. Nobody has to be an admin. In a DM the card says Play here with Start a table in this DM; if it says No table here, Discord gave the Activity no channel, which happens when the other person has blocked or removed Ergod.
It says my usage is up/usage shows what is left as a percentage and when it refills: every day on Free, a rolling seven-day pool on Pro and Pro+. Credits bought once, or earned with /vote on top.gg, are spent after the included usage and never expire. Your own provider key via /byok set makes the same usage go about 5× further on any tier. Slash commands like /help and /vote never cost anything.
The first reply is slowThe first message after install, or after a long idle, creates or wakes your container: budget up to ~20 seconds. Warm replies land in seconds. Containers idle out after 10 minutes on Free and 60 on Pro; files survive an idle-out, running processes do not.
Telegram is a different workspace from my Discord oneA Telegram identity that sent its first message before being linked has a workspace of its own, and the two cannot be merged afterwards. Link first next time: dashboard → Account → Sign-in methods → Link Telegram. The same rule applies to Google, GitHub and Discord sign-ins.
Asked in search

The install questions people type.

How do I add Ergod to my Discord server?

Open the invite link on this page with Manage Server on the server, review the permissions Discord lists (replies, threads, files, polls, events; no kick, ban or admin), and pick the server. Ergod posts one welcome in the first writable channel with four buttons: Try one thing, Start a room here, Set me up, and Use my own agent by default. Then @-mention it with a task; the first time, it asks Shared room or Just me before it runs.

Can I use Ergod without a Discord server?

Yes, three ways. Add it to your own Discord account (the same link offers Add to my apps) and its commands work in every server you are in and in DMs, where the Activity opens a table for just you and Ergod or a group DM. Message @ErgodDev_bot on Telegram and that message creates your workspace. Or sign in at app.ergod.dev with Discord, GitHub or Google and type in a browser tab. Nothing is installed in any of them.

How do I add Ergod to Telegram?

Send @ErgodDev_bot a message; there is no account to make first. If you already use Ergod elsewhere, link the chat before that first message: dashboard, Account, Sign-in methods, Link Telegram, which opens the bot with a one-time code. In a group, add the bot and it posts one card saying how to address it; then mention it by name or reply to it. /play answers with a button per game.

Why is Ergod not answering in my Discord server?

Usually because the message did not mention it: Ergod runs without the Message Content intent, so it only receives @-mentions, DMs and slash-command arguments. Otherwise an admin has blocked the channel or your role with /ergod-config, and a blocked mention is dropped in silence; /ergod-config show prints the rules. If it asked Shared room or Just me, your request is held until you press one.

One link, five minutes.

No server of your own? Start in the browser instead - same agent, same workspace, nothing to install.