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.
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.
Your message hits Ergod's gateway. It checks rate limit, server config, role/channel allowlists, then routes to your container.
Your active /session is loaded - full message history, system prompt, tool schemas, MCP-discovered tools merged in.
A Linux container with your /workspace volume mounted. Cold-start <20s, warm <5s. Code, files, installed packages - all yours.
The model writes code, runs commands, reads files, fetches the web, fixes its own errors. Until it's done.
Finished files attached in the channel. HTML/web outputs hosted at a preview URL. Tool calls and reasoning streamed back as they happen.
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.
/workspace volume survives across messages, sessions, and restarts. Pip installs stick. Generated files stick. Reset with /workspace reset.$ 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.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.
read_fileRead up to 2000 lines, with offset/limit pagination.
write_fileCreate or overwrite files. Supports binary via base64.
str_replace_editSurgical find-and-replace edits with unique-string anchoring.
list_filesDirectory listing with recursive depth and regex filter.
grepRegex search over file contents with context lines.
copy_filesMove, copy, or rename across the workspace.
run_bashArbitrary shell - pipes, env, subshells, all of it.
run_pythonInline Python with persistent venv. pandas, requests, BeautifulSoup pre-installed.
run_nodeNode.js with npm available. Top-level await supported.
run_scriptAsync sandboxed JS - Canvas, image processing, file I/O helpers.
web_searchLive search via partner API. Returns titles, snippets, URLs.
web_fetchFetch HTML, JSON, PDF - extracted to text the model can reason over.
screenshot_urlHeadless Chromium screenshot of any URL, returned as image input.
show_htmlPublish an HTML file to a unique preview URL. Live, shareable, no deploy step.
show_to_userDrop an artifact into the channel for the user to click.
get_public_file_urlShort-lived public URL for any workspace file. Useful for handing off binaries.
git_status / commit / pushStandard git operations against any repo cloned into your workspace.
github_open_prOpen a PR against a linked repo with description + diff.
github_cloneClone any repo your linked token can access.
github_read_fileRead a single file from a repo without cloning.
save_memoryPersist a fact about you across sessions and conversations.
search_memoryRecall stored facts when the conversation starts. Auto-injected into context.
forget_memoryDrop one or all stored memories.
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.
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.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.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.
One-time. /github link with a Personal Access Token. Validated against GitHub's API, then encrypted at rest. Per-user - never shared.
Just say it. “Clone vercel/next.js, find the App Router code, and explain the dynamic-route resolver.”
Ergod edits files in the cloned repo, runs tests, and shows you the diff before committing.
Commit, push to a feature branch, open a PR with a real description, and drop the PR link in chat.
Reply to redirect: “rename the variable, update the test, repush.” Same conversation, same workspace, same branch.
Your workspace is a Docker container only your Discord user can address. No shared volumes. Channel sessions are an explicit, sponsor-confirmed exception.
GitHub PATs, MCP bearer tokens, OAuth access tokens - encrypted at rest with per-tenant keys. Never logged, never returned to the model in plaintext.
@everyone, @here, and role pings are stripped from Ergod's replies by default. Toggleable per-server.
Admins can allowlist/blocklist channels and roles. Combine with Discord's native permission system for fine-grained control.
We don't train on your messages. Conversation history is yours; delete a session to wipe it.
Every release, every limit, every bug - discussed openly in the Discord. Tell us what to harden.
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.
| Free | Pro | Pro+ | |
|---|---|---|---|
| Daily usage | baseline + welcome boost | 5× Free | 10× Free |
| Cap window | daily | rolling 7-day | rolling 7-day |
| Workspace storage | 1 GB | 5 GB | 10 GB |
| Concurrent sessions | 3 | 20 | Unlimited |
| 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 out | Priority on new models |
| Priority queue | - | ✓ | Top priority |
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:
Open-source agents exist - but you'll be on the hook
Free in 30 seconds
Free tier covers everything technical - sandbox, GitHub, MCP, memory, hosted previews. Drop in, ship something, decide later.