# Raven: Chat That Lives Inside Your Frappe Site

> Raven is an AGPL-3.0 chat app built on the Frappe framework, so messages stay in your own database and any document from ERPNext, HR, CRM or Helpdesk can be part of a conversation. It suits teams already running Frappe who want chat and business records in one place.

**frappe/raven** — Simple, open source team messaging platform

- Repository: https://github.com/frappe/raven
- Website: https://www.frappe.io/product/raven
- Stars: 829 · Forks: 388
- Language: TypeScript
- License: AGPL-3.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/frappe-raven

## A chat app that runs on your own Frappe site

Raven is described as a simple chat app for teams, built on the Frappe Framework. The deployment model is the whole point: it runs on your own Frappe site, so your messages stay in your database and nobody charges you per user. That is a different bargain from the hosted messaging products most teams buy, and it is why Raven calls itself open source rather than merely free. The application lives alongside ERPNext, HR, CRM and Helpdesk in the same Frappe site, and the README is explicit that any document from any Frappe app can be part of the conversation. The technology underneath is TypeScript, with a React frontend and a Python backend, and the project homepage sits under the Frappe product family rather than on a separate domain.

## Channels, threads and the files drawer

The messaging model is conventional in the useful way. There are public and private channels for teams, projects and topics, grouped into workspaces, and direct messages for everything else. Threads exist so a side discussion does not drown out the channel, which is the single most common failure mode of team chat. Messages support formatting, mentions, code blocks, polls, emoji and custom reactions. Files are first class rather than an afterthought: you drop in photos, videos and documents, links show a preview, and every file shared in a channel is listed in a files drawer that you can search. Search spans messages, files, links and people across every channel you are in, which is the feature that separates a chat tool people keep from one they abandon once history grows.

## Where Raven differs from a generic chat product

The interesting capability is the connection between chat and business documents. Paste a link to any document on the site and Raven renders a card with its status and key fields, so a message carries context rather than a bare URL. You can post to a channel when a document is created, changed or submitted, and set the conditions and the message template without writing code, which is the part that makes it usable by people who do not write code. Approval actions are available from inside the conversation, so you can approve, reject or send a document back without leaving the thread. Frappe HR presence shows next to a person's name. There are also bots that post and reply, incoming webhooks that post into channels, and agents backed by your own OpenAI or compatible provider. The dependency list in the package manifest backs this up with libraries for OpenAI, the agents SDK, link previews, blurhash, markitdown, pandas and Google Cloud Document AI.

## Notifications, quiet hours and the mobile clients

Notification handling is more nuanced than a single toggle. Push notifications work on the web and on your phone, with quiet hours and per-channel settings so a busy channel does not become a reason to mute everything. Reminders bring a message back later, and scheduled messages go out at a set time rather than whenever you happen to write them. The mobile side is a single codebase with two native shells. The repository root shows a yarn workspace with `apps/web`, `apps/native` and `packages/*`, and the package scripts include the native build, sync, clean, iOS, Android, TestFlight and Play Store tasks. The mobile apps connect to any site running Raven v3 or later: you enter the site address, sign in, and every channel is there and in sync with the web app. An installable web app is offered as a third option, so a laptop-only user is not a second class citizen.

## Self hosting with Pilot, step by step

For self hosting, the recommended route is Pilot, which installs Frappe, manages sites and backups, and sets up production with nginx and TLS. Pilot needs Frappe v16 or later. Installing it is a one-liner.

```bash
curl -fsSL https://raw.githubusercontent.com/frappe/pilot/develop/install.sh | bash
```

Creating a bench and running the setup wizard follows. The first `start` prints the URL of the admin wizard.

```bash
pilot new main
pilot -b main start
```

Then you add Raven as an app and create a site for it.

```bash
pilot -b main get-app https://github.com/frappe/raven
pilot -b main new-site chat.example.com
pilot -b main install-app chat.example.com raven
```

Raven then opens at `https://chat.example.com/raven`. If you already have a bench, the ordinary route applies.

```bash
bench get-app https://github.com/frappe/raven
bench --site your-site install-app raven
```

There is also a hosted option: Raven is on the Frappe Cloud marketplace, where the platform handles hosting, upgrades, backups and support.

## Which branch matches which Frappe version

The compatibility table is short and worth reading before you pick a branch. The main branch pairs with Frappe version-15 from 15.111 onwards, and with version-16, and is marked stable. The develop branch pairs with version-15 from 15.111 onwards, version-16 and Frappe's own develop branch, and is marked as development. In practice that means a team on a current stable Frappe release can take the stable Raven branch, while a team who wants the newest Raven work has to accept that it is tracking moving Frappe versions. The Python package manifest states the constraint in the same terms, requiring frappe at 15.111.0 or later and up to 17.0.0-dev, and requiring Python 3.10 or newer. The repository's default branch is develop, so a clone gives you the development line unless you switch.

## Working on the React frontend locally

Development follows the same path as deployment, then adds two settings and a local env file. You set up a bench, get the app and create a site, then turn on developer mode and skip CSRF checks for the site. The documentation is clear that the second setting is for local development only, because the Vite dev server has no CSRF token.

```bash
bench set-config -g developer_mode 1
bench --site raven.localhost set-config ignore_csrf 1
```

The web app is a React single page app living in `apps/web`, and hot reloading needs an env file there.

```bash
VITE_SITE_NAME='raven.localhost'
VITE_SOCKET_PORT=9000
```

`VITE_SOCKET_PORT` is the socket.io port of your bench, which the documentation says is usually the web port plus 1000. Then the dev server starts from the app folder.

```bash
cd apps/raven
yarn
yarn dev
```

The app then runs at `http://raven.localhost:80`. Node 22.12.0 or newer is required by the package manifest, and the build uses turbo, with the assets output configured to land in the Raven app's public directory.

## AGPL-3.0 and what it means for an internal chat tool

Raven is released under AGPL-3.0, with the package manifest spelling it AGPL-3.0-only. For a tool that runs inside your own infrastructure and is not offered to users over a network as a service, the practical effect is limited, and it is not the permissive licence many teams expect when they read open source. It also means the project sits inside the Frappe ecosystem rather than standing alone, which has a practical consequence for the release cadence. The version 3.0.0 tag is dated 2026-09-18, and there are separate asset builds for main and develop dated 2026-10-13 and 2026-10-08, showing that the frontend assets ship on their own schedule alongside the app release. The last push was on 2026-10-22, so the codebase is actively worked on. This is a statement of the licence terms the project states, not advice on how to apply them to your situation.

## Conclusion

Raven fits a company that already runs Frappe apps and wants messaging, document approvals and notifications sharing one database and one login, without a per-user pricing model. It is the wrong choice for a team without a Frappe site, because the whole product depends on the framework, and Pilot requires Frappe v16 or later. Before deploying, confirm your site runs Frappe version-15 from 15.111 onward or version-16, then decide deliberately whether to take the stable main branch or the develop branch.

## FAQ

### What does Raven add over a regular chat app?

Raven runs on your own Frappe site so messages stay in your database with no per-user charge, and it links messages to documents from any Frappe app such as ERPNext, HR, CRM or Helpdesk, including cards, document notifications and approvals from inside the conversation.

### How do I self host Raven?

Pilot is the recommended route and needs Frappe v16 or later. Install Pilot, run pilot new main and pilot -b main start, then add the app with pilot -b main get-app and create and install the site with pilot -b main new-site and install-app.

### Which Frappe version does Raven require?

The compatibility table lists the stable main branch against Frappe version-15 from 15.111 onwards and version-16, and the develop branch against those plus Frappe develop. The Python manifest requires frappe 15.111.0 or later, up to 17.0.0-dev, and Python 3.10 or newer.

### Do the Raven mobile apps work with a self hosted site?

Yes. The iOS and Android apps connect to any site running Raven v3 or later: you enter the site address, sign in, and the channels are in sync with the web app.

### Can Raven post automated messages into channels?

Yes. The feature list covers bots that post and reply, incoming webhooks that post into channels, and agents backed by your own OpenAI or compatible provider. Document notifications can be configured with conditions and a message template without writing code.

## Sources

- [frappe/raven on GitHub](https://github.com/frappe/raven)
- [License: AGPL-3.0](https://github.com/frappe/raven/blob/develop/LICENSE)
- [Project website](https://www.frappe.io/product/raven)
- [README](https://github.com/frappe/raven/blob/develop/README.md)
- [Releases](https://github.com/frappe/raven/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/frappe-raven
