PHPackages                             ramon/chat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. ramon/chat

ActiveFlarum-extension

ramon/chat
==========

Discourse-style realtime chat for Flarum v2 — category-scoped public channels, threads, direct and group messages, reactions, mentions, uploads and search, natively integrated with discussions, notifications and search.

v0.0.1(today)01↑2900%MITPHPPHP ^8.3CI passing

Since Jul 30Pushed todayCompare

[ Source](https://github.com/ram0ng1/chat)[ Packagist](https://packagist.org/packages/ramon/chat)[ RSS](/packages/ramon-chat/feed)WikiDiscussions main Synced today

READMEChangelog (4)Dependencies (8)Versions (3)Used By (0)

 [![Chat](icon.svg)](icon.svg)

Chat
====

[](#chat)

 [![CI](https://camo.githubusercontent.com/eb839fc22654854bf1e8299907d84ace58d4d20b71c14e92e35f34a50e14dd28/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f72616d306e67312f636861742f63692e796d6c3f6272616e63683d6d61696e267374796c653d666c61742d737175617265266c6162656c3d6369)](https://github.com/ram0ng1/chat/actions/workflows/ci.yml) [![Packagist](https://camo.githubusercontent.com/4af7cbd8afe2055bc5fa4568677ecce85b03b39484dd0222e3b5860d133fa878/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72616d6f6e2f636861743f7374796c653d666c61742d737175617265266c6162656c3d7061636b6167697374)](https://packagist.org/packages/ramon/chat) [![Downloads](https://camo.githubusercontent.com/527105feddc304106d4ec4bf7acb6748eddd86ea51f057e635dab59929dd7d70/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f72616d6f6e2f636861743f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ramon/chat) [![Flarum](https://camo.githubusercontent.com/a132223aa88aa88b24ad5a6117fada567e8f9ce7e6423e24fbe2d77c9b1b9c64/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f666c6172756d2d322e782d6537363732653f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/a132223aa88aa88b24ad5a6117fada567e8f9ce7e6423e24fbe2d77c9b1b9c64/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f666c6172756d2d322e782d6537363732653f7374796c653d666c61742d737175617265) [![License](https://camo.githubusercontent.com/ac049ef4e7a0b7196b09add6ac2d4f180e544c0ac779c2b2ac2fd2723a209579/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75653f7374796c653d666c61742d737175617265)](LICENSE) [![Donate](https://camo.githubusercontent.com/26680fc470ae1a7cdffd5e21e44f49eadfd6b9f9358a874c44405609d35ac325/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f6e6174652d7374726970652d3637373245353f7374796c653d666c61742d737175617265)](https://donate.stripe.com/fZe5o66nebkf39S28a)

Discourse-style realtime chat for Flarum 2.

Chat adds public channels, threads and direct messages to a Flarum forum, wired into the parts of Flarum you already run: a channel bound to a category inherits that category's permissions, mentions arrive through Flarum's notifications, and messages are searchable alongside everything else.

I started it because every chat extension I tried sat *beside* the forum rather than inside it — a second permission system to keep in sync, a second notification inbox, and a second place for conversations to go missing.

What it does
------------

[](#what-it-does)

- Public channels scoped to a category, so category permissions govern who reads and posts — there is no parallel permission surface to keep in sync
- Threads on any message, each with its own reply tracking and notification level
- Direct and group messages, with the invite delivered through Flarum's notifications
- Private channels an admin adds people to, and removes people from
- Realtime delivery through `flarum/realtime`, falling back to polling when it is not installed
- Reactions, `@` mentions including `@here` and `@all`, image and file uploads, and full-text search across every channel you can read
- Announces new discussions from a bound category into the channel, posted by the chat's bot or by a member you nominate
- Pinned messages, edit history, and moderation with attribution — a removed message names the moderator who removed it
- A drawer that follows you around the forum and a full-screen page, sharing one conversation state

Installation
------------

[](#installation)

```
composer require ramon/chat
php flarum migrate
php flarum cache:clear
```

Then enable Chat on the Extensions page of the admin panel.

Permissions start with moderators only, mirroring how Discourse ships chat staff-first. Grant `ramon-chat.use` to Members in **Admin → Permissions** once you are ready to open it up.

Permissions
-----------

[](#permissions)

Channels inherit the `viewForum` permission of the tag they are bound to, so a private category produces a private channel with no extra configuration. On top of that, Chat registers the permissions a category cannot express:

PermissionGrants`ramon-chat.use`Open the chat at all`ramon-chat.createChannel`Create channels`ramon-chat.editChannel`Rename and reconfigure channels`ramon-chat.createThread`Start a thread from a message`ramon-chat.pinMessage`Pin and unpin messages`ramon-chat.startDirect`Start direct and group messages`ramon-chat.upload`Attach images and files`ramon-chat.react`React to messages`ramon-chat.mentionChannelWide`Use `@here` and `@all``ramon-chat.moderate`Delete anyone's message, manage members, join unseenEach channel additionally chooses who may post: everyone, or moderators only.

The announcer
-------------

[](#the-announcer)

When a channel is bound to a category, new discussions in that category are posted into the channel. Admin chooses who posts them:

- **The bot**, by default — an ordinary message with no account behind it. Its name and picture are settings, so there is nothing to log into and nothing to impersonate.
- **A member you nominate**, in which case announcements become ordinary messages from that account and no bot appears at all.

Requirements
------------

[](#requirements)

- PHP 8.3+
- Flarum ^2.0
- `flarum/tags` — for category-scoped channels *(optional; forum-wide channels work without it)*
- `flarum/realtime` — for live delivery, typing and presence *(optional; polls otherwise)*
- `flarum/mentions` — for `@user` parity with discussions *(optional)*
- `flarum/emoji` — for `:shortcode:` rendering *(optional)*

`flarum/gdpr` and `flarum/audit` are supported when present, through conditional extenders, so neither is a dependency.

Development
-----------

[](#development)

```
cd js && npm install && npm run build
```

The PHP suite runs with `vendor/bin/phpunit --testsuite unit`; CI runs it across PHP 8.3, 8.4 and 8.5.

License
-------

[](#license)

[MIT](LICENSE). Found a bug or have an idea? [Open an issue](https://github.com/ram0ng1/chat/issues).

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 61.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13917322?v=4)[Ramon Guilherme](/maintainers/ram0ng1)[@ram0ng1](https://github.com/ram0ng1)

---

Top Contributors

[![ram0ng1](https://avatars.githubusercontent.com/u/13917322?v=4)](https://github.com/ram0ng1 "ram0ng1 (11 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

realtimechatthreadsdiscourseflarumchannels

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ramon-chat/health.svg)

```
[![Health](https://phpackages.com/badges/ramon-chat/health.svg)](https://phpackages.com/packages/ramon-chat)
```

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

12128.3k](/packages/flarum-lang-russian)[fof/upload

The file upload extension for the Flarum forum with insane intelligence.

191192.5k20](/packages/fof-upload)[flarum-lang/french

French language pack to localize the Flarum forum software plus its official and third-party extensions.

1938.7k](/packages/flarum-lang-french)[fof/byobu

Well integrated, advanced private discussions.

59120.6k15](/packages/fof-byobu)[fof/discussion-language

Specify the language a discussion is written in &amp; sort by language

1034.8k7](/packages/fof-discussion-language)[fof/masquerade

User profile builder extension for your Flarum forum.

2025.4k6](/packages/fof-masquerade)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
