Near 100-server temporary cap — Discord approval pending. Try Ergod in our community Discord →
For developers

Ergod is a real coding agent - just on Discord.

A frontier-model agentic loop, a per-user Docker sandbox, 50+ tools, MCP support, GitHub integration, and a hosted preview server - all behind a slash command. Here's how the inside works.

Architecture

One agent. One container per user. One conversation per session.

Every message you send gets routed through the same agentic loop you'd build with the Anthropic, OpenAI, or Vercel AI SDKs - except it's hosted, the tools are pre-wired, and the workspace persists across messages.

1. Discord

Slash command or @-mention

Your message hits Ergod's gateway. It checks rate limit, server config, role/channel allowlists, then routes to your container.

2. Session

Conversation state

Your active /session is loaded - full message history, system prompt, tool schemas, MCP-discovered tools merged in.

3. Container

Per-user Docker sandbox

A Linux container with your /workspace volume mounted. Cold-start <20s, warm <5s. Code, files, installed packages - all yours.

4. Loop

Plan → tool → observe → repeat

The model writes code, runs commands, reads files, fetches the web, fixes its own errors. Until it's done.

5. Output

Files, links, hosted artifacts

Finished files attached in the channel. HTML/web outputs hosted at a preview URL. Tool calls and reasoning streamed back as they happen.

Sandbox

Per-user Docker, persistent volume, full Linux.

Each Discord user gets their own container. Not a shared notebook, not an emulated REPL - a real Linux box with disk, network, and an apt of installed tooling.

  • Isolation. Files in your workspace aren't visible to anyone else, even in the same server. Channel sessions are an explicit opt-in.
  • Persistence. The /workspace volume survives across messages, sessions, and restarts. Pip installs stick. Generated files stick. Reset with /workspace reset.
  • Network. Outbound HTTP works - npm, pip, GitHub, web search, MCP servers, the wider internet.
  • Cold start. <20s on a fresh container. <5s when warm. Idle containers hibernate; resume on demand.
  • Storage. 1 GB on Free, 5 GB on Pro, 10 GB on Pro+. Channel sessions get their own quota.
your container
$ uname -a
Linux ergod-u-487a 6.1 #1 SMP x86_64 GNU/Linux

$ which python node go cargo
/usr/local/bin/python
/usr/local/bin/node
/usr/local/go/bin/go
/root/.cargo/bin/cargo

$ ls /workspace
README.md  site/  scripts/  game_state.json

$ pip install pandas
Successfully installed pandas-2.2.3
# (still installed next message)

$ curl https://api.github.com/zen
Anything added dilutes everything else.
Built-in tools

50+ tools already wired in.

Every tool is exposed as a structured tool call to the model - same schema as the Anthropic API, same patterns as Claude Code or aisdk.dev. You don't configure any of it.

Filesystem

read_file

Read up to 2000 lines, with offset/limit pagination.

write_file

Create or overwrite files. Supports binary via base64.

str_replace_edit

Surgical find-and-replace edits with unique-string anchoring.

list_files

Directory listing with recursive depth and regex filter.

grep

Regex search over file contents with context lines.

copy_files

Move, copy, or rename across the workspace.

Code execution

run_bash

Arbitrary shell - pipes, env, subshells, all of it.

run_python

Inline Python with persistent venv. pandas, requests, BeautifulSoup pre-installed.

run_node

Node.js with npm available. Top-level await supported.

run_script

Async sandboxed JS - Canvas, image processing, file I/O helpers.

Web

web_search

Live search via partner API. Returns titles, snippets, URLs.

web_fetch

Fetch HTML, JSON, PDF - extracted to text the model can reason over.

screenshot_url

Headless Chromium screenshot of any URL, returned as image input.

Hosted preview

show_html

Publish an HTML file to a unique preview URL. Live, shareable, no deploy step.

show_to_user

Drop an artifact into the channel for the user to click.

get_public_file_url

Short-lived public URL for any workspace file. Useful for handing off binaries.

Git & GitHub

git_status / commit / push

Standard git operations against any repo cloned into your workspace.

github_open_pr

Open a PR against a linked repo with description + diff.

github_clone

Clone any repo your linked token can access.

github_read_file

Read a single file from a repo without cloning.

Memory

save_memory

Persist a fact about you across sessions and conversations.

search_memory

Recall stored facts when the conversation starts. Auto-injected into context.

forget_memory

Drop one or all stored memories.

MCP - bring your own tools

Anthropic's Model Context Protocol, fully supported.

Connect remote HTTP MCP servers (Linear, Sentry, Supabase, Notion, Stripe, your own) - or run stdio MCP servers directly inside your sandbox. Discovered tools merge into the model's tool list on the next turn.

Remote MCP (HTTP)

Streamable-HTTP transport. OAuth or bearer-token auth. Ideal for SaaS connectors with managed servers.

/mcp add
  name: linear
  url:  https://mcp.linear.app/sse

→ Connected linear.
→ Discovered 7 tools, 2 resources.
→ Available on next turn.

Stdio MCP (in-container)

The server runs as a child process inside your sandbox. Talks JSON-RPC over stdin/stdout. Perfect for npx/uvx servers.

/mcp add-stdio
  name:    fs
  command: npx -y @modelcontextprotocol/server-filesystem /workspace

→ Launched fs.
→ 11 tools available.

Share an MCP server with a whole channel

In a channel session, run /mcp share name: linear as the sponsor and every collaborator in that channel gets access to your Linear connector - without sharing the token. Revoke any time with /mcp unshare. Tokens, headers, and URLs are never visible to other users.

GitHub

Link once. Commit, push, PR from a chat message.

01

Link a PAT

One-time. /github link with a Personal Access Token. Validated against GitHub's API, then encrypted at rest. Per-user - never shared.

02

Reference a repo

Just say it. “Clone vercel/next.js, find the App Router code, and explain the dynamic-route resolver.”

03

Make changes

Ergod edits files in the cloned repo, runs tests, and shows you the diff before committing.

04

Push or PR

Commit, push to a feature branch, open a PR with a real description, and drop the PR link in chat.

05

Iterate

Reply to redirect: “rename the variable, update the test, repush.” Same conversation, same workspace, same branch.

Security model

Isolation by user. Encryption at rest. Audit by design.

Per-user containers

Your workspace is a Docker container only your Discord user can address. No shared volumes. Channel sessions are an explicit, sponsor-confirmed exception.

Encrypted credentials

GitHub PATs, MCP bearer tokens, OAuth access tokens - encrypted at rest with per-tenant keys. Never logged, never returned to the model in plaintext.

Mention scrubbing

@everyone, @here, and role pings are stripped from Ergod's replies by default. Toggleable per-server.

Role & channel gating

Admins can allowlist/blocklist channels and roles. Combine with Discord's native permission system for fine-grained control.

No model retention

We don't train on your messages. Conversation history is yours; delete a session to wipe it.

Open feedback loop

Every release, every limit, every bug - discussed openly in the Discord. Tell us what to harden.

Limits & quotas

What you get on each tier.

Quotas are per Discord user. A user's tier travels with them across every server that has Ergod. Daily usage is denominated as a percentage of each tier's budget — heavier tasks consume more, casual chat barely registers. New accounts get a one-time welcome boost worth 3 days of Free's daily usage on top of any tier — persistent, used last, never expires.

FreeProPro+
Daily usagebaseline + welcome boost5× Free10× Free
Cap windowdailyrolling 7-dayrolling 7-day
Workspace storage1 GB5 GB10 GB
Concurrent sessions320Unlimited
Image input
GitHub integration
MCP (remote + stdio)
Hosted preview URLs
Persistent memory
Direct DMs to Ergod
/collab personal workspace-
Sponsor channel sessions-
Premium model selection-Rolling outPriority on new models
Priority queue-Top priority
Why not roll your own?

You can - we did, so you don't have to.

Building this in-house means a Discord bot, a queue, a sandbox runtime, GitHub OAuth, MCP plumbing, a hosted preview server, model routing, billing, and a year of iteration. Or:

Roll your own

Open-source agents exist - but you'll be on the hook

  • Install and configure it locally
  • Maintain your own codebase as agents evolve
  • Debug your own quirks and edge cases
  • Pay for model API directly - agentic loops add up fast
  • Host the bot on your own hardware, 24/7
  • Set up your own GitHub OAuth, MCP plumbing
  • No sandbox isolation - runs on your machine
  • Hard to share with friends safely or securely

Try the agent. In 30 seconds.

Free tier covers everything technical - sandbox, GitHub, MCP, memory, hosted previews. Drop in, ship something, decide later.