# Does Discourse have custom plugin templates, and how do I write custom plugins?

**URL:** https://meta.discourse.org/t/discourse/378523
**Category:** Support
**Created:** [August 14, 2025, 3:30am UTC](https://meta.discourse.org/t/discourse/378523 "2025-08-14T03:30:10Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![sky-winter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sky-winter/32/517080_2.png) [@sky-winter](https://meta.discourse.org/u/sky-winter)
#### Post date: [August 14, 2025, 3:30am UTC](https://meta.discourse.org/t/discourse/378523/1 "2025-08-14T03:30:10Z")

</div>

> Does Discourse have custom plugin templates, and how do I write custom plugins?

---

<div class="post-metadata">

### Author: ![Lhc\_fl](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lhc_fl/32/268115_2.png) [@Lhc\_fl](https://meta.discourse.org/u/Lhc_fl)
#### Post date: [August 14, 2025, 3:41am UTC](https://meta.discourse.org/t/discourse/378523/2 "2025-08-14T03:41:14Z")

</div>

> [@Developing Discourse Plugins - Part 1 - Create a basic plugin](https://meta.discourse.org/t/developing-discourse-plugins-part-1-create-a-basic-plugin/30515):
>
> Building a plugin in Discourse can be really simple, once you learn a couple of quirks. The goal of this post is to create a skeleton plugin and introduce you to the basics. Your development environment Make sure you have a development environment of Discourse running on your computer. I recommend you use [the appropriate setup guide](https://meta.discourse.org/tag/dev-install) and come back when you’re done. plugin.rbtada Use [GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub](https://github.com/discourse/discourse-plugin-skeleton) to create a complete di…

You need to have a Discourse development install. For example, [Developing Discourse using a Dev Container](https://meta.discourse.org/t/developing-discourse-using-a-dev-container/336366?silent=true)

After install it, run

```plaintext
rake plugin:create[your-plugin-name]

```

It will pull [discourse/discourse-plugin-skeleton: Template for Discourse plugins](https://github.com/discourse/discourse-plugin-skeleton) to generate a plugin with the most modern and recommend starting template.

---

<div class="post-metadata">

### Author: ![sky-winter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sky-winter/32/517080_2.png) [@sky-winter](https://meta.discourse.org/u/sky-winter)
#### Post date: [August 14, 2025, 6:59am UTC](https://meta.discourse.org/t/discourse/378523/3 "2025-08-14T06:59:17Z")

</div>

Can dev containers be used as a development environment for Discourse?

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [August 14, 2025, 7:42am UTC](https://meta.discourse.org/t/discourse/378523/4 "2025-08-14T07:42:23Z")

</div>

Yes, as linked above:

> [@Developing Discourse using a Dev Container](https://meta.discourse.org/t/developing-discourse-using-a-dev-container/336366?silent=true):
>
> [Dev Containers](https://containers.dev/) is an open standard for configuring a development environment inside a container. This almost entirely eliminates the need to install/configure Discourse-specific tools/dependencies on your local machine, and makes it very easy to keep up-to-date as Discourse evolves over time. Dev Containers can be used in a number of different IDEs, or directly using their reference CLI. This guide will describe the setup process for VSCode. Getting started [Download and install](https://code.visualstudio.com/) VSCode Ins…

You can also run a dev env in Guthub Codespaces:

> [@Developing Discourse on GitHub Codespaces](https://meta.discourse.org/t/-/336131?silent=true):
>
> [GitHub Codespaces](https://github.com/features/codespaces) is a very fast way to get started with Discourse development. Their free tier is good for 30 hours per month of a 4-core machine. Getting Started Navigate to [the github repository](https://github.com/discourse/discourse) Press the , (comma) key on your keyboard, to open GitHub codespaces Use ‘change options’ to customize the machine. Technically, the 2-core machine will work, but we recommend using at least 4-core for a better experience. Click “Create Codespace” Wait for the contai…

---

<div class="post-metadata">

### Author: ![sky-winter](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sky-winter/32/517080_2.png) [@sky-winter](https://meta.discourse.org/u/sky-winter)
#### Post date: [August 14, 2025, 9:10am UTC](https://meta.discourse.org/t/discourse/378523/6 "2025-08-14T09:10:57Z")

</div>

![image](https://global.discourse-cdn.com/meta/original/4X/c/9/2/c92bfadbaf14cd369b2c02df51b6a120bfb17dc4.png) Using GitHub, the default shortcuts are not working. Where else can I operate?

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [August 14, 2025, 10:31am UTC](https://meta.discourse.org/t/discourse/378523/7 "2025-08-14T10:31:16Z")

</div>

Perhaps try selecting the terminal input and then pressing the keys?

If the shortcut keys still aren’t working, I think you may have to run the commands here:

> <https://github.com/discourse/discourse/blob/main/.vscode/tasks.json.sample>
