Open Source Data Science Agent for Discord and Slack
# Add to your Claude Code skills
git clone https://github.com/emrahaydemir960-ai/daimon-data-agentGuides for using ai agents skills like daimon-data-agent.
See how daimon-data-agent compares with popular alternatives.
daimon-data-agent is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by emrahaydemir960-ai. Open Source Data Science Agent for Discord and Slack. It has 58 GitHub stars.
daimon-data-agent's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/emrahaydemir960-ai/daimon-data-agent" and add it to your Claude Code skills directory (see the Installation section above).
daimon-data-agent is primarily written in HTML. It is open-source under emrahaydemir960-ai on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh daimon-data-agent against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.

daimon is an open source data science agent that joins your team's Discord, Slack, or Microsoft Teams workspace and answers analysis questions directly in the thread. Mention it in a channel and it writes and runs code, fits Bayesian models with PyMC, and replies with charts, an uncertainty read, and a runnable marimo notebook that reproduces the result. Unlike general-purpose chatbots, it runs on Anthropic's Managed Agents with one tenant per server or workspace, so a single self-hosted deployment on your own API key can serve many communities with isolated memory and data. Anyone in the thread can follow up, and scheduled routines let recurring analyses post themselves where you ask.
@mention the bot in a channel and it opens a thread, runs the analysis, and replies with a fitted model, a chart, a plain-English read on the uncertainty, and a marimo notebook that reproduces the result./github.| Platform | Status | Notes |
|---|---|---|
| Discord | Stable | Full thread support, slash commands, GitHub App |
| Slack | Early | Optional adapter |
| Microsoft Teams | Early | Optional adapter; one Microsoft 365 org per deployment |
| CLI | Stable | daimon admin CLI for provisioning and routing |
| MCP | Stable | Agent tools and MCP server adapter |
Conversation is the primary interface. Slash commands exist for people who prefer them:
/here /agent-setup /github
/routines /billing /privacy
/help
On Teams these are plain words (setup, routines, help) sent in a 1:1 chat with the bot.
Example prompts
daimon is built on Anthropic Managed Agents. Every adapter — Discord, Slack, Teams, the CLI, the MCP server and the routines scheduler — funnels into the same turn pipeline, so a conversation behaves the same regardless of where it started.
flowchart LR
subgraph adapters
direction TB
Discord
Slack
Teams
CLI
MCP
Scheduler
end
adapters --> core["daimon core<br>turn pipeline"]
core <--> ma["Anthropic Managed Agents<br>agents · sessions · skills"]
core --> pg[("Postgres<br>tenants · thread↔session map")]
A single turn moves through four stages:
daimon.core owns the schema, stores and turn pipeline. It imports no adapters.import-linter enforces both rules in CI, so a new adapter can't quietly couple to another.Managed Agents holds the agents, environments, sessions and skills. Postgres holds only metadata:
| Store | Contents |
|---|---|
| Managed Agents | Agent definitions, hosted environments, live sessions, skill bundles |
| Postgres | Tenant identity, thread↔session mappings, config, credentials, billing |
Because isolation is enforced at the database tenant_id layer, a single Anthropic API key can safely serve every install on a deployment — each community sees only its own agents, memory and data.
The packages/mux/ package defines a provider-agnostic managed-agent interface, so adapters and core code against an abstract provider rather than Anthropic specifics. Adding a new chat platform means implementing one adapter; adding a new model backend means implementing one mux provider.
daimon runs as a multi-service Docker Compose stack. Before you deploy, make sure the host and the accounts you connect satisfy the following.
| Requirement | Notes |
|---|---|
| Docker Engine with the Compose plugin | The Quickstart and self-hosting flows bring up Postgres, migrations, the MCP server, adapters and the scheduler through docker compose. |
| Network access to the Anthropic API | The agent runtime is Anthropic Managed Agents. A deployment that provisions OpenAI-backed agents instead needs egress to the OpenAI API. |
| A place to store chart and notebook artifacts | The self-hosting guide covers chart storage; plan for persistent storage if you want results to survive restarts. |
| Python 3.12+ (only for running from source) | Required if you run the packages directly rather than through Docker. See pyproject.toml for the exact floor. |
| Variable | Purpose |
|---|---|
DAIMON_ANTHROPIC__API_KEY |
Anthropic API key used by Managed Agents. Use a key from a workspace dedicated to this deployment. Leave unset only if you are provisioning OpenAI agents. |
DAIMON_MCP__JWT_SECRET |
Signing secret for the MCP server. Any random string. |
DAIMON_MCP__PUBLIC_URL |
Public URL the MCP server is reachable at, e.g. http://localhost:8765/mcp for local use. |
POSTGRES_PASSWORD |
Password for the bundled Postgres service. |
DAIMON_CRYPTO__KEYS |
Fernet key used to encrypt stored agent keys. Without it, agent keys cannot be saved. |
DAIMON_DISCORD__BOT_TOKEN |
Discord bot token, if you are running the Discord adapter. |
Slack and Microsoft Teams adapters are optional and have their own setup requirements, covered in the Slack setup and self-hosting guide.
One Discord guild, Slack workspace or Microsoft 365 organisation is one tenant. Tenant isolation is enforced at the database tenant_id layer, so a single Anthropic key can serve multiple installs, but each install should still be treated as its own deployment target.
daimon is configured through layered settings: .env / environment variables, a daimon.yaml defaults file, and per-tenant records stored in Postgres. Anything set at the tenant layer overrides the deployment-wide default, so one deployment can serve every install with the same key.
Every setting is namespaced under DAIMON_ and uses a double underscore to separate sections, e.g. DAIMON_DISCORD__BOT_TOKEN maps to discord.bot_token.
| Variable | Required | Purpose |
|---|---|---|
DAIMON_ANTHROPIC__API_KEY |
Yes (unless running on OpenAI) | Anthropic API key the deployment runs on |
DAIMON_MCP__JWT_SECRET |
Yes | Signing secret for MCP sessions; any random string |
DAIMON_MCP__PUBLIC_URL |
Yes | Public base URL of the MCP server |
DAIMON_CRYPTO__KEYS |
Yes | Fernet key used to encrypt stored agent credentials |
DAIMON_DISCORD__BOT_TOKEN |
For Discord | Bot token from the Developer Portal |
DAIMON_SLACK__BOT_TOKEN / DAIMON_SLACK__APP_TOKEN |
For Slack | Slack bot and app-level tokens |
DAIMON_TEAMS__APP_ID / DAIMON_TEAMS__APP_PASSWORD |
For Teams | Microsoft Entra app registration for the bot |
DAIMON_DATABASE__URL |
No | Postgres connection string; defaults to the compose service |
POSTGRES_PASSWORD |
No | Password for the bundled Postgres service |
Start from .env.example, which documents each key inline with placeholder values.
The YAML files in defaults/ seed the agents and skills that Managed Agents and the database receive on first boot. Each agent entry describes the model to use, the skills it can load, and the platform channels that route to it.
agents:
analyst:
model: <model-id>
skills:
- bayesian-modelling
- forecasting
channels:
discord: []
slack: []
Edit the defaults file, then re-run the init service so the new va