# Discourse MiniMod

**URL:** https://meta.discourse.org/t/discourse-minimod/400019
**Category:** Plugin
**Created:** [April 6, 2026, 11:56am UTC](https://meta.discourse.org/t/discourse-minimod/400019 "2026-04-06T11:56:14Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [April 6, 2026, 11:56am UTC](https://meta.discourse.org/t/discourse-minimod/400019/1 "2026-04-06T11:56:14Z")

</div>

# discourse-mini-mod

This plugin solved an issue for our Discourse forum in which we needed “organizers”, but didn’t necessarily want to grant full moderator permissions.

Contributions more then welcome!

Please track any issues with GitHub issues.

[https://github.com/alltechdev/discourse-mini-mod](https://github.com/alltechdev/discourse-mini-mod)

> Mini-mods can rearrange the shelves. Moderators can kick people out of the store.

A Discourse plugin that gives regular users the power to manage categories, tags, and topics — without requiring moderator or admin status.

It builds on Discourse’s existing category group moderation feature by extending the permissions it grants.

## How it works

1. Create a group and add your users to it
2. Go to a category, press the wrench, then add the group to “In addition to staff, content in this category can also be reviewed by:”
3. Enable `mini_mod_enabled` in site settings
4. Those users can now manage categories they moderate

Optionally enable `mini_mod_manage_all_categories` to let them manage **all** categories and move topics between any categories. Enable `mini_mod_manage_tags` to let them create, edit, and delete tags.

**NOTE:** You must at least add one category to the group in order for `mini_mod_manage_all_categories` to function.

## Settings

| Setting | Default | Description |
| --- | --- | --- |
| `mini_mod_enabled` | `false` | Enable the plugin |
| `mini_mod_manage_all_categories` | `false` | Allow category group moderators to manage all categories and edit/move topics across all categories |
| `mini_mod_manage_tags` | `false` | Allow category group moderators to create, edit, and delete tags |
| `mini_mod_can_post_in_closed_topics` | `false` | Allow category group moderators to reply on closed topics in categories they moderate. Disabled by default — enable to grant; site staff are unaffected |
| `mini_mod_can_reopen_topics` | `false` | Allow category group moderators to reopen closed topics in categories they moderate. Disabled by default — enable to grant; site staff are unaffected |

All settings require Discourse core’s `enable_category_group_moderation` to also be enabled. Tag management also requires `tagging_enabled`.

## Permissions granted

| Action | Default (per-category) | With manage all categories | With manage tags |
| --- | --- | --- | --- |
| Create categories | Subcategories under moderated categories, or top-level | All categories | — |
| Edit categories | Only moderated categories | All categories | — |
| Delete categories | Only moderated categories (must be empty, no children) | All categories (same constraints) | — |
| Edit topics | Only in moderated categories (core feature) | All visible topics | — |
| Bulk change topic category | To/from moderated categories | Any visible category | — |
| Move posts | In moderated categories (core feature) | In moderated categories (core feature) | — |
| Create tags | — | — | Yes |
| Edit/rename tags | — | — | Yes |
| Delete tags | — | — | Yes |
| Manage tag synonyms | — | — | Yes |

Two additional capabilities are **off by default** but can be granted by enabling the corresponding site setting:

| Action | Default | Granted by |
| --- | --- | --- |
| Reply on closed topics in moderated categories | Off | `mini_mod_can_post_in_closed_topics: true` |
| Reopen closed topics in moderated categories | Off | `mini_mod_can_reopen_topics: true` |

Closing open topics, archiving, pinning, splitting/merging, and every other moderation action remain available to mini-mods in their categories regardless of these settings.

## Installation

Add the plugin’s repository URL to your `app.yml`:

```yaml
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/alltechdev/discourse-mini-mod.git

```

Then rebuild the container:

```plaintext
./launcher rebuild app

```

Updates thereafter can be done in the admin dashboard.

## Admin Dashboard

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/7/d/97dec8bf85b61708d18aaf67bf59a3a71c16843f.png)

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [April 6, 2026, 12:18pm UTC](https://meta.discourse.org/t/discourse-minimod/400019/2 "2026-04-06T12:18:22Z")

</div>

Reserved for future…

Note: I am not so active here, which is why GitHub issues is best. I will check back here periodically.

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [April 7, 2026, 10:14pm UTC](https://meta.discourse.org/t/discourse-minimod/400019/3 "2026-04-07T22:14:49Z")

</div>

Added two new settings:

 ![Screenshot_20260407-181408_org.chromium.webapk.ab2063385b4cbb150_v2](https://global.discourse-cdn.com/meta/original/4X/8/4/a/84a44c2554ddd465be39d695ba27ad921960d22d.png)

Don’t know why it’s hardcoded in core to allow Trust Level 4 to do these things, so I’m giving an option to change that.

They are disabled by default, check them and save if you want tl4 to have these permissions.

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [September 4, 2026, 12:01pm UTC](https://meta.discourse.org/t/discourse-minimod/400019/4 "2026-09-04T12:01:14Z")

</div>

I have been comparing this plugin with default category moderators in Discourse, and I can’t find the reason why MiniMod actually exists.

It’s very likely that I’m missing something, and I’d like to know what it is because it’s important for me to choose the best option for our community.

Does anyone share their experience with this plugin and/or their specific use case?

Anyways thanks for building it. The TL4 switches are a good to have.

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [September 7, 2026, 5:52am UTC](https://meta.discourse.org/t/discourse-minimod/400019/5 "2026-09-07T05:52:10Z")

</div>

More power granted, but still \< moderator

The people we granted this to ended up becoming moderators so the extra features sit unused by us at the moment.

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [September 7, 2026, 1:20pm UTC](https://meta.discourse.org/t/discourse-minimod/400019/6 "2026-09-07T13:20:39Z")

</div>

> [@ars18](#):
>
> The people we granted this to ended up becoming moderators so the extra features sit unused by us at the moment.

Understood, thanks. Now I ask you: is there a way to properly disable Minimod on the bundled plugin you shared on Meta?

I tried with the general selector in the admin settings, but it seems to still be loading in my instance. I ended up using the default Discourse behavior for mods and/or category mods, so I really want it disabled.

Perhaps I am missing something. I am here to try, test or share with you whatever you need about it.

---

<div class="post-metadata">

### Author: ![ars18](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ars18/32/541869_2.png) [@ars18](https://meta.discourse.org/u/ars18)
#### Post date: [September 7, 2026, 1:49pm UTC](https://meta.discourse.org/t/discourse-minimod/400019/7 "2026-09-07T13:49:42Z")

</div>

@TripleU a little help? I never really worked on the master plugin, my stuff was just merged there
