Overview
Ergod is an AI agent you reach from Discord, Telegram, or your browser. It can read and write files, execute code, search the web, and perform other development tasks within isolated containers.
This policy covers all of those. Where a section applies only to one of them - Discord's message-content rules, for instance - it says so.
This page describes what data we collect when you use Ergod, where it goes, how long we keep it, and what control you have over it. Plain English first; the formal language follows.
Data we collect
When you interact with Ergod, we collect and process:
- An account identifier - from whichever service you signed in with: your Discord, Google, GitHub, or Telegram user ID. It is used to associate your workspace, memory, and preferences with you. If you link more than one, they all point at the same workspace.
- Display name - the display name from that service, used in conversation context. Signing in with Google also stores the name and profile picture Google returns.
- Message content - messages you send to the bot, whether by @-mention, DM, slash command, Telegram message, or the browser dashboard, used to process your requests.
- Workspace files - files you upload, files Ergod creates, and files generated by code it runs on your behalf.
- Persistent memory entries - facts, preferences, and project decisions Ergod records when you correct it or state a preference.
Ergod runs without Discord's Message Content intent. That is a platform-level restriction, not a promise we ask you to take on trust: Discord only delivers message text to us when you DM the bot, @-mention it directly, or run a slash command. Every other message in your server arrives with its text stripped out before it reaches us. We do not scrape channel history, member lists, or unrelated traffic.
Data sent to third parties
To produce AI responses, your message content is sent to large-language-model providers. The specific provider used depends on your tier, the model selected, and whether you have a personal API key configured (BYOK — bring your own key). Providers we may route requests through include:
- OpenRouter (openrouter.ai) - multi-model API gateway, and the default route for hosted turns
- Anthropic (anthropic.com) - Claude models
- OpenAI (openai.com) - GPT and o-series models
- Google (Gemini) (ai.google.dev) - Gemini models
- xAI (x.ai) - Grok models
- Custom endpoints - any OpenAI-compatible API configured by the operator
Those five are the providers we hold a direct connection to. When a request goes through OpenRouter, OpenRouter forwards it to whichever company owns the model you picked, under their privacy terms. The model owners reachable that way today are Anthropic, OpenAI, Google, xAI, DeepSeek, Qwen (Alibaba), MiniMax, Mistral, Moonshot, Black Forest Labs and Sourceful.
Free-tier users without a personal key are routed through OpenRouter by default. Every tier may select a model from a curated picker — a small lineup on Free since the 2026-08-30 free-roster deploy, the full shortlist on Pro / Pro+. Users on every tier can configure a personal API key (Anthropic / OpenAI / Google / xAI / OpenRouter) via /byok set or from the dashboard — when active, that user's message content routes through their own provider account using their key, and we charge compute-only against their Ergod usage cap. Provider keys are encrypted at rest with Fernet (AES-128-CBC + HMAC-SHA256) and only decrypted in bot-process memory for the duration of a single outbound API call.
Legal basis for sharing message content with these providers (per Discord's Developer Terms, which permit sharing API Data with a Service Provider, when required by law, or when a user expressly directs the sharing):
- Hosted turns (free-tier or Pro/Pro+ on our key): the model provider acts as our Service Provider for inference, bound by their own privacy policy and data-handling terms (linked above).
- BYOK turns (any tier with a personal key configured via
/byok set): the user has expressly directed the routing by saving their own provider key. The user's relationship is directly with that provider, governed by the provider's own terms.
Message content is sent to these providers solely to generate AI responses. We do not send your account identifiers - your Discord, Google, GitHub or Telegram user ID, or your display name - to LLM providers.
Workspace files are a different matter, and you should know how it works. Ergod is an agent: when it reads a file to answer you, the contents of that file become part of the next request to the model provider. That is how it is able to work on your code at all. So a file the agent opens on your behalf is shared with whichever provider is handling that turn, under the terms linked above. Files the agent never opens are never sent. Nothing scans or uploads your workspace in the background.
Each provider has its own privacy policy (linked above). We encourage you to review the policy of whichever provider is handling your requests.
Payments. If you subscribe through the Ergod website, Stripe processes the payment as our payment processor. Your card details go to Stripe directly and never touch our servers - we never see or store them. We send Stripe only your Discord User ID, so we can match the payment to your account, and we receive back only the subscription status and tier. If you subscribe through Discord instead, Discord handles the payment and we receive only the subscription status.
Advertising and measurement
We advertise Ergod on Google Search. To find out whether an ad actually led anywhere, both ergod.dev and app.ergod.dev load the Google Ads tag (gtag.js, tag ID AW-18413091901).
What it does. If you arrive from one of our ads, Google attaches a click identifier and stores it in a cookie on the ergod.dev domain. If you later create an account or subscribe, the browser tells Google that a conversion happened and which click it belonged to. That is the whole purpose: to know which keywords are worth paying for.
What we send. Two events, and nothing else:
- Sign-up — fired once when a brand-new account is created. No name, no email, no user ID.
- Subscription — fired once when a payment completes. It carries the Stripe checkout session ID, used only so a repeat page load is not counted twice.
What we do not send. We do not send your email address, your display name, your Discord / Google / GitHub / Telegram user ID, your message content, or anything from your workspace. We have not enabled Google's "enhanced conversions", which would involve sending a hashed email address.
Remarketing. Our Analytics property is linked to Google Ads, which lets us build audiences — groups such as "visited the site but never signed up" — and show those groups our ads elsewhere on Google. Membership lasts up to 540 days. The audiences are counts and segments, not lists of people: we cannot see who is in one, and we never upload your email address or any other identifier to build them. Google will not serve ads to an audience smaller than about 1,000 people, so small segments are never targetable in the first place.
Turning it off. Any browser-level ad or tracker blocker stops the tag loading, and nothing on the site depends on it — the product works exactly the same. You can also opt out of ad personalisation at My Ad Center, or install Google's opt-out browser add-on.
Site analytics. The same Google tag also feeds Google Analytics (property G-89RPWERQJS), which reports how pages are found and used — page views, referrers, approximate location by country or city, device and browser. It sets its own cookie to tell a returning visitor from a new one. We do not send it your name, email, account ID or anything from your workspace, and we have not enabled Google Signals, which would join this to a person's Google account. Opt out at My Ad Center, with the opt-out add-on, or with any tracker blocker.
Alongside it the marketing site uses Cloudflare Web Analytics, which is cookie-free and does not fingerprint or track individuals across sites.
What we do NOT do
- We do not sell your data.
- We do not share your data with third parties beyond what's necessary to operate the service (i.e., sending messages to LLM providers for AI processing).
- We do not use your data for advertising, marketing, or to train any model. There is no automated training-data export in the codebase — we previously had a CLI-era opt-in trajectory export feature (off by default, never wired into the multi-tenant Discord deployment) and we removed it entirely so this claim is strictly accurate at the code level.
- We do not read non-trigger messages in your Discord server. Without the Message Content intent we cannot - Discord strips the text before it reaches us.
- We do not store cross-server profiles, presence snapshots, member activity history, or aggregate channel traffic.
Message content
Ergod's primary interface is multi-turn natural-language conversation. It operates without Discord's privileged Message Content intent. Discord grants every bot the text of three kinds of message regardless of that intent: direct messages to the bot, messages that @-mention the bot directly, and slash-command arguments. Ergod uses only those three. Nothing else in your server is legible to it.
What we read: the text + attachments of messages that @-mention Ergod, messages sent in DMs to Ergod, and the arguments you pass to slash commands. To continue a conversation - "no, make it darker," "the error is now different," a follow-up code paste - you @-mention Ergod again, including inside a thread it opened.
What we don't read: everything else, including ordinary chatter in a thread Ergod is participating in. This is enforced by Discord, not by us. Server admins can restrict the bot further to specific channels via /ergod-config (uses Discord's existing Manage Channels permission).
Where it goes: message content is sent to the LLM provider routing your turn (see Data sent to third parties) to generate the response, and is retained as session history so the agent has multi-turn context for follow-ups. That history is stored on the bot host in a path scoped to your account, not inside your container. Both of those are strictly required for the product to function.
Where it does NOT go: we do not collect, export, or use message content for training, fine-tuning, or any form of dataset assembly. Operational logs surface the initial trigger message text alongside errors, latency, and cost metrics so the operator can correlate a specific request with a specific bug or error during debugging - those logs stay on the bot host, are not exported to any external system or third party, and are not assembled into any dataset. No telemetry pipeline exfiltrates user messages.
Your control: see Your rights below. Short version: /workspace reset wipes session state, /session reset erases the current conversation, /session new starts a fresh session but keeps the prior one, /memory clear wipes persistent memory entries, and full account deletion is available on email request.
User eligibility & age
You must be at least 13 years old to use Ergod, or the minimum age of digital consent in your jurisdiction if that is higher. We do not collect age information directly. Where you sign in through another service - Discord, Google, GitHub, or Telegram - we rely on that service's own account-creation age gate; Discord's, for example, sets the same 13-year minimum.
We do not knowingly process API Data of users under 13. If we become aware that a user under that age is using the service, we will deactivate the tenant and delete the associated data. If you are a parent or guardian who believes your child has used Ergod and want their data removed, contact ergod.developer@gmail.com.
Workspace data
Each user gets an isolated workspace container. Files in your workspace are private to you and any collaborators you explicitly authorize via /collab. Other users cannot access your workspace files. Code execution happens inside isolated Docker containers scoped to your workspace.
Security
We apply standard protections to data we handle:
- In transit: traffic between you and the bot is encrypted via Discord's gateway (TLS/WSS). Traffic to LLM providers uses HTTPS. Download links served via Cloudflare are TLS-encrypted.
- At rest — credentials: all stored credentials are encrypted with Fernet (AES-128-CBC + HMAC-SHA256) before being written to disk. This covers linked GitHub tokens, BYOK provider API keys (Anthropic / OpenAI / Google / xAI / OpenRouter / etc.), MCP server headers, and any linked third-party secrets. For BYOK provider keys and MCP server headers, plaintext only ever lives in bot-process memory for the duration of a single outbound API call, and never reaches your sandbox container. A linked GitHub token is the exception, and by necessity: git has to authenticate from inside the container, so the token is passed into individual commands as an environment variable for as long as that command runs. Commands the agent runs during your own turn can therefore read your own GitHub token. No other tenant can.
- At rest — workspace + history: workspace files, conversation history, and memory entries are stored on the host filesystem in per-user paths that no other tenant's container can reach. Separation is enforced by container isolation - each tenant's container is only given its own workspace - rather than by per-user filesystem ownership on the host. Other users, even in the same server, cannot read them.
- Tenant isolation: each user gets their own Docker container with a dedicated workspace and a separate memory scope. Containers run with reduced Linux capabilities, privilege escalation disabled, and per-tenant resource limits. An outbound network policy blocks private network ranges, common exfiltration channels, and rate-limits suspicious traffic patterns. Containers cannot reach the host or other tenants' containers.
- Token redaction: credentials are scrubbed from logs and from any text surfaced outside the user's own session by a set of pattern matchers covering common API key formats — defense for cases where a user pastes a credential by accident or a model echoes one back.
- Prompt-injection scanning: agent-written memory entries are scanned before they're committed, to defend against stored-injection attacks (hidden instructions in user-supplied text being baked into long-term memory).
- Input screening: commands are screened for abuse patterns (port scanning, crypto mining, mass-outbound loops) before execution.
Data retention
Why your data persists: the product's value depends on workspace continuity. You come back a week later and expect your project files, saved sessions, and the preferences you have taught the bot to still be there. So we keep them, and we give you an instant delete for every category instead of a timer.
- Workspace files are kept for as long as your account exists. We do not delete them on a schedule. You can delete them yourself at any time via
/workspace reset, or rebuild the container from scratch via/factory-reset. - Conversation history is retained for session continuity so the bot can reference earlier context.
/session resetand/session deleteerase it. Note that/session newdoes not - it starts a fresh session and keeps the previous one, so you can go back to it. - Memory and preferences persist across sessions to provide a consistent experience. You can inspect, edit, or delete individual memory entries at any time via
/memory list,/memory delete, or/memory clear. - Shared channel sessions are the one thing on a timer: a frozen channel session is removed automatically after 90 days.
- Aggregate usage metrics (daily command count, token totals, cost) are retained for billing and abuse-prevention for as long as your account exists.
If you want everything gone, ask us and we will delete the account and its workspace outright. See Your rights.
Data residency
The Ergod bot and its primary data store are currently hosted in Austin, Texas, United States. LLM sub-processors listed above may process data in their own regions according to each provider's data-residency policy.
Your rights
You can exercise the following rights over your data at any time:
- Right of access: use
/files,/usage, and memory-listing commands to see what's stored, or sign in to the dashboard at app.ergod.dev/dashboard to browse your workspace, sessions and usage in a browser. For a full export, contact us. - Right to erasure: use
/session resetto erase conversation history,/workspace resetto wipe workspace files, or/factory-resetto tear down and rebuild your container from scratch. These run in Discord and Telegram. If you use only the browser dashboard, email us and we will carry them out for you. For full account deletion, contact us either way. - Right to data portability: use
/exportin Discord or Telegram to download your whole workspace as a zip, or download individual files in their original formats from the dashboard file browser at app.ergod.dev/dashboard. Machine-readable exports of memory and conversation history are available on request. - Right to rectification: you can edit or delete individual memory entries, replace workspace files, or resend corrected messages at any time.
- Right to object / restrict processing: you can stop using the service at any time. Contact us if you need processing to stop without account deletion.
To exercise any of these rights, use the relevant command above or email us at ergod.developer@gmail.com. We will respond within 30 days.
Breach notification
In the event of a confirmed data breach affecting personal data, we will notify affected users within 72 hours of discovery via Discord direct message (where possible) and publish a public notice at ergod.dev. The notice will describe the nature of the breach, the data affected, likely consequences, and the remediation steps taken.
DPA & audit requests
For formal Data Processing Agreement requests, subject-access requests, third-party audits, or any GDPR-related inquiries, email ergod.developer@gmail.com. Please include the nature of the request and a contact for response.
Changes to this policy
We may update this privacy policy as the service evolves. The effective date at the top of this page will change when we do. Material changes will be announced in the Ergod community Discord.
Contact
For general privacy questions, reach out via our Discord community server or email ergod.developer@gmail.com.