# An open source Discord AI agent you can read before it acts

> An open source Discord AI agent is a bot whose code and configuration you run and can read. Kortix is an open-source CompanyOS: add it to a server and the agent answers in a thread, using the company's own tools under a manifest you own.

URL: https://agentsindiscord.com/open-source-discord-ai-agent

## Two blocks that decide the work

Both are quoted from the `kortix.yaml` reference, which is where the rules live.

### The agent

`kortix.yaml`

```yaml
default_agent: assistant

agents:
  assistant:
    description: Answers questions about the project.
    prompt: You answer questions about this project. Read the files before you answer.
    tools: all                               # omitted: all, with a warning
```

Source: https://kortix.com/markdown/docs/developers.md

### The rules

`kortix.yaml`

```yaml
permission:
  bash:
    "*": allow
    "git push *": ask
    "rm -rf *": deny
  edit:
    "*": allow
    "secrets/*": deny
  external_directory: deny
  webfetch: ask
```

Source: https://kortix.com/markdown/docs/developers.md

## How the options compare

Prices and features as each product's own page states them, checked November 2026.

| | Kortix (recommended) | Discord-AI-Agent | AgentX | Beam.ai | Mava |
| --- | --- | --- | --- | --- | --- |
| What it is | Open-source CompanyOS: agents, skills, memory, and connectors in one repo. | Discord bot for AI chat over MCP, run from your own machine. | No-code agent builder; you paste a bot token in. | Catalogue entry that connects a Beam workflow to Discord. | Support inbox that answers customer conversations, Discord included. |
| Where it runs | Kortix Cloud, your VPC, or your own on-prem network. | Your machine; you start the bot. | AgentX's cloud. | Beam's cloud. | Mava's cloud. |
| What it can reach | The company's tools through connectors the manifest grants. | MCP servers you list in its config file. | The agent's own tools inside AgentX. | Records and actions in the workflows you build. | Support conversations on its channels. |
| Open source | Yes. | Yes; no license file, so reuse terms are unclear. | No. | No. | No. |
| Price shape | Free to start, paid plan from $50 a month. | Installed from source; you pay for hosting. | Free to start; paid plans listed. | No public price; request access. | Free, then $39 to $599 a month by volume. |

## Three steps to a thread in your server

`Kortix guide: Discord setup`

```
Add Kortix to your server
Open Project admin → Connectors, select the Channels scope, and select Add to Discord on Discord.
Mention the app with a task
In a text channel, mention the app: @Kortix what changed in the release?
Allow the people
A mention or a direct message from an allowed user starts a session.
```

Source: https://kortix.com/markdown/docs/guide.md

The setup as the Kortix guide words it, from Project admin to the allowed-user list.

## What open source changes when the bot can act

A Discord bot that answers questions is easy to hand to a vendor. One that reads your tickets, your repository, and your deploy logs is a different decision. It reaches into those systems with credentials you granted it. The code that decides which call it may make is the part you need to read. So the question is narrower than a license: can you read that code, change it, and run it yourself?

Kortix is a git repo, and a project is a git repo. `kortix.yaml` declares the project: it lists the agents and the skills, tools, connectors and triggers they use. Before anyone mentions the bot in a channel, you can open the file and see what the agent is allowed to reach. The manifest sits in a repository you can clone. Open source. Read it, fork it, audit it. A rule change is a diff somebody reviews.

## The rule that decides what the agent may touch

Each agent block can carry a `permission` map: one action for a whole tool, or a pattern that matches a command or a path. The action is `allow`, `ask` or `deny`. In the reference's example, `git push` waits for a person, `rm -rf` never runs, and edits under `secrets/` are denied.

That map is the part a closed builder does not show you. You can point at the line that stops a delete and at the line that holds a push. When a rule is wrong, you change it in the repo. Approval gates you set. Off until you set them. When an agent asks, the request stays with the session the thread started. Open that session or the Review page in Kortix and choose Approve or Deny on what the app will receive. The approval covers one exact action and expires after 24 hours unless the project sets another time.

## Check what the file leaves out

The reference is blunt about what an empty block does. Three keys are open by default: `tools` is `all` (`kortix validate` warns when an agent omits it), `permission` is `allow`, and `codemode` is `on`. An omitted `permission` is `allow`, so a manifest that declares nothing about permissions runs every tool call without asking. That is the trap in a copy-pasted config: the file is readable, and it is permissive.

Read the omissions before you trust the rules. Set the calls that touch production to `ask`, set the ones that must never run to `deny`, and check the diff when the file changes. A fork you never read is no safer than a hosted builder you cannot read.

## What the bot can see in a server

In a server, only a mention reaches the agent. One thread is one session, so the question and the work that follows it stay together, and the reply lands where it was asked. Without the Message Content intent the agent cannot read other people's messages. It sees mentions, direct messages and its own messages. The app asks for the permissions it needs when you add it, and one project makes at most 60 Discord calls a minute.

## Where the readable code stops

[Self-hosting](/self-hosted-discord-agent) is the clearest form of that control, and it has an edge worth naming. The kortix CLI installs the web app, the API, the LLM gateway and the database on your server as one Docker Compose stack. It keeps that stack up to date. Sessions and Drive run on Platinum sandboxes that call back to your instance. So the app and the rules live where you put them, while the agent's computer is a remote sandbox that has to be able to reach you. Run it on Kortix Cloud, in your VPC, or on your own on-prem network. Self-host is free.

Connector credentials are brokered server-side and never enter the machine. A call to your CRM runs with a login the sandbox never holds, so the credential stays on the server side of the call.

## The other open source Discord bot

OoriData's Discord-AI-Agent is the open source bot most teams find first. It is a Python bot for AI chat over the Model Context Protocol, installed with `uv pip install -U .`, configured by copying `config/example.main.toml` to `config/main.toml`, and pointed at an OpenAI-compatible endpoint, OpenAI or Anthropic. It is small and open: one maintainer, last commit 2025-10-31, no license file in the repo.

You can read all of it, which is the point. What you take on is its shape: one maintainer's config file, a chat surface, and the pace of a single-maintainer project. For a personal assistant in a hobby server that is a good trade. For an agent that can reach a production system, the rule that decides what it may touch should sit in a file your company reviews, next to the connectors it grants. Kortix puts that file in the same repository as the agents and the skills. The answer to what an agent can reach is a path in the repo, and you can open it. Add the app, read the manifest, set the rules, then mention it in a thread.

## What people ask before they add a bot

### What do I need to run an open source Discord agent?

A server you can add an app to, a project, and a model. Kortix can host the project's git repo and runs each session on its own cloud computer, so you need no machine of your own; a self-hosted install needs a server the sandboxes can call back to.

### Does open source mean it is free?

No. Open source covers the code, not the machine or the model. Self-hosting Kortix costs nothing to install, and you still pay for the server and the model you point it at.

### What access does the bot need in a server?

The permissions Discord asks for when you add it: view channels, send messages, send messages in threads, create public threads, read message history, attach files, add reactions and embed links. When a channel denies one, the agent names the permission to grant.

## Read the manifest, then put an agent in your server

Start free, connect Discord from Project admin, and set the approval rules before anyone mentions it.

[Try Kortix](https://kortix.com) · [Kortix on GitHub](https://github.com/kortix-ai/CompanyOS)

Open source · Self-host, VPC or on-prem · Discord, Slack, Teams and Telegram channels
