# Get started with Theme Creator and the Theme CLI

**URL:** https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444
**Category:** Developer Guides
**Tags:** how-to, theme-creator, theme-guides
**Created:** [February 5, 2019, 6:40pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444 "2019-02-05T18:40:04Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [February 5, 2019, 6:40pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/1 "2019-02-05T18:40:04Z")

</div>

This topic will walk you through how to use the [Theme CLI](https://meta.discourse.org/t/discourse-theme-cli-console-app-to-help-you-build-themes/82950) with our [Theme Creator](https://meta.discourse.org/t/theme-creator-create-and-show-themes-without-installing-discourse/84942) site to develop a theme and preview your changes on a live Discourse site.

1. [Sign up for an account here on Meta](https://meta.discourse.org/signup) if you haven’t already

2. [Log in to Theme Creator](https://discourse.theme-creator.io/login)

3. Install the Theme CLI via the [instructions here](https://meta.discourse.org/t/discourse-theme-cli-console-app-to-help-you-build-themes/82950)

4. Create a new theme on Theme Creator by:

5. Click advanced, then edit locally, and retrieve API key.

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/0/7/707f15c4b072258fb9e33c3a4fe7f30b715b4277.png) ![image](https://global.discourse-cdn.com/meta/original/4X/9/c/4/9c42239c69b64b34dd077bd0cd714dd6fb599abd.png)

1. Go back to your command line and type `discourse_theme download example-folder`, where example-folder is where your theme will be stored locally. Follow the prompts.

2. Now your local theme folder is being watched for changes, which will be automatically uploaded to Theme Creator. You can open a preview of your theme by clicking preview in your theme’s settings on Theme Creator.

3. To stop watching for changes, hit ctrl + c in your command line window. To start watching for changes again type `discourse_theme watch example-theme`.

🎉 You now have a local theme directory you can edit and see your changes live!

For an in-depth look at how themes are structured and what you can do, check out our [Developing Discourse Themes & Theme Components](https://meta.discourse.org/t/developer-s-guide-to-discourse-themes/93648/1)

* * *

This document is version controlled - suggest changes [on github](https://github.com/discourse/discourse/blob/main/docs/developer-guides/docs/05-themes-components/04-theme-creator.md).

---

<div class="post-metadata">

### Author: ![kjs-fgx](https://avatars.discourse-cdn.com/v4/letter/k/a9adbd/32.png) [@kjs-fgx](https://meta.discourse.org/u/kjs-fgx)
#### Post date: [January 24, 2023, 5:11pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/20 "2023-01-24T17:11:16Z")

</div>

> [@awesomerobot](#):
>
> [https://discourse.theme-creator.io](https://discourse.theme-creator.io)

Hi. I’m trying to follow these instructions but I keep hitting a wall. After adding the API key I see the following:

```plaintext
/usr/local/lib/ruby/gems/3.2.0/gems/discourse_theme-0.7.3/lib/discourse_theme/cli.rb:100:in `run': undefined method `exists?' for Dir:Class (NoMethodError)

        FileUtils.mkdir_p dir unless Dir.exists?(dir)
                                        ^^^^^^^^
Did you mean? exist?
	from /usr/local/lib/ruby/gems/3.2.0/gems/discourse_theme-0.7.3/bin/discourse_theme:6:in `<top (required)>'
	from /usr/local/lib/ruby/gems/3.2.0/bin/discourse_theme:25:in `load'
	from /usr/local/lib/ruby/gems/3.2.0/bin/discourse_theme:25:in `<main>'

```

Any idea why?  
TIA

---

<div class="post-metadata">

### Author: ![leonardo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leonardo/32/228634_2.png) [@leonardo](https://meta.discourse.org/u/leonardo)
#### Post date: [January 24, 2023, 9:47pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/21 "2023-01-24T21:47:48Z")

</div>

Hi!  
This tool does not support Ruby 3.2 yet because of changes in the language. We have a fix in the works, but Ruby 3.1.x works in the meantime.

---

<div class="post-metadata">

### Author: ![kjs-fgx](https://avatars.discourse-cdn.com/v4/letter/k/a9adbd/32.png) [@kjs-fgx](https://meta.discourse.org/u/kjs-fgx)
#### Post date: [January 25, 2023, 8:09am UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/22 "2023-01-25T08:09:31Z")

</div>

Ah, that’ll be why then.  
Thanks 🙂

---

<div class="post-metadata">

### Author: ![leonardo](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leonardo/32/228634_2.png) [@leonardo](https://meta.discourse.org/u/leonardo)
#### Post date: [January 25, 2023, 8:03pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/23 "2023-01-25T20:03:38Z")

</div>

This is now fixed - `discourse_theme` should work under Ruby 3.2.x from gem version 0.7.4 and up 🙂

---

<div class="post-metadata">

### Author: ![kjs-fgx](https://avatars.discourse-cdn.com/v4/letter/k/a9adbd/32.png) [@kjs-fgx](https://meta.discourse.org/u/kjs-fgx)
#### Post date: [January 26, 2023, 8:51am UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/24 "2023-01-26T08:51:32Z")

</div>

Wow, that was quick 😮  
Thank you. I did manage to get it working with the help of my line manager who suggested:

rbenv install 3.1.3  
rbenv shell 3.1.3  
gem install discourse\_theme

Which didn’t actually work until I closed the terminal tab and re-opened it again.

---

<div class="post-metadata">

### Author: ![darkpixlz](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/darkpixlz/32/549896_2.png) [@darkpixlz](https://meta.discourse.org/u/darkpixlz)
#### Post date: [January 27, 2026, 5:08am UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/25 "2026-01-27T05:08:15Z")

</div>

Is `discourse_theme watch` no longer live-reloading? It used to refresh my theme when I saved it but now I have to manually refresh my tab. Nothing in the console that would point to why.

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/a/0/0a0f10d1e738f368f482833db287ff04b5b862e9.jpeg)

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [January 27, 2026, 8:38am UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/26 "2026-01-27T08:38:26Z")

</div>

There was a change a while ago

> [@Install the Discourse Theme CLI console app to help you build themes](https://meta.discourse.org/t/install-the-discourse-theme-cli-console-app-to-help-you-build-themes/82950/202):
>
> Live reloads of stylesheets have [been disabled for production instances](https://github.com/discourse/discourse/commit/351d3d4eb94390ef667b72e3d4ba9c740224c44c), because they were causing problems when updating themes and/or Discourse core. Fundamentally: stylesheet changes are often tied to changes in JS/HTML, so live-loading for only stylesheets is risky. Users end up running ‘new’ stylesheets against ‘old’ HTML, which can lead to some very strange experiences. Live-loading is still enabled for development-mode Discourse instances. Ideally, you’d use that for development rather …

You might be interested in [Live Reload in Production](https://meta.discourse.org/t/live-reload-in-production/392089)

---

<div class="post-metadata">

### Author: ![micke](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/micke/32/553682_2.png) [@micke](https://meta.discourse.org/u/micke)
#### Post date: [May 7, 2026, 2:04pm UTC](https://meta.discourse.org/t/get-started-with-theme-creator-and-the-theme-cli/108444/27 "2026-05-07T14:04:22Z")

</div>

I’m trying to understand how to properly preview my theme on [https://discourse.theme-creator.io/](https://discourse.theme-creator.io/).

`discourse_theme watch` is working and are syncing my changes to the preview URL. I have scaffolded a theme where I’ve added `color_schemes` to `about.json`. They are showing up in the select box for the theme under `/me/theme`. However, I can’t actually pick a scheme/palette and view it, instead I’m stuck with a default one called “Light” that I have not specified myself.

My named color schemes from my `about.json` is not showing up under `/me/preferences/interface` either.

What am I doing wrong?

Thanks!
