> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# Lab - Uploading a Theme

Plan: Stencil Developer

Lesson 16 of 18 · 15 min

## Introduction

BigCommerce provides two options for uploading a theme to your BigCommerce store.

1. Control Panel Upload
2. Command Line Upload (used in this course)

**In this lab, you will:**

* Upload a theme to the Storefront

**Prerequisites**

* Bundled the theme into a .zip file

## Step 1: Bundle and Push

1. **Enter** the following command in CLI:

```bash showLineNumbers={false}
stencil push
```

2. **Enter** *y* to apply the theme to your store
3. **Select** the theme variation you would like to apply
4. **Navigate** to the *URL of the store* to view the applied theme

**Command Line Upload (OAuth Required)** This stencil push command allows you to both bundle and upload your theme to the store with a single terminal command and in one continuous process. The *stencil push* command is available only for themes that you have successfully initialized using an **OAuth Token** (with *Themes: modify scope*).

Stencil CLI is designed to display the same notifications, prompts and selection options that you would receive when using the control panel's GUI.

### Successful Upload

Upon a successful upload, you will be prompted: *Would you like to apply your theme to your store at \<domain>? (y/n)* Any response except *y* or *Y* will be processed as "No." You can always apply the theme later through the control panel.

![Successful theme upload in terminal](/_fern-img/79b642f08fc876792324906e9c1a0166abefb02695b80c3b3b42cdef4b2a4343.webp)

### Apply Which Variation?

If you chose to apply the newly uploaded theme, you will be prompted with: "Which variation would you like to apply?"

Use your arrow keys to move the selection caret/highlight to the variation you want, and then press *Enter*.

Stencil CLI will then confirm which variation is active on the storefront.

> **Info**
>
> **Automatically Apply a Variation and Pushing a Theme to Selected Channels**
>
> * To push a theme and activate a particular variation without being prompted, use `stencil push -a VARIATION_NAME` with the name of the variation.
> * To push a theme and apply it to selected channels, use `stencil push -a -c 123 456`. To apply a theme to all available channels, use `stencil push -a -allc`.

## Resources

* [Bundling and Pushing a Theme](/developer/docs/storefront/stencil/deployment/upload)
* [Troubleshooting Theme Uploads](/developer/docs/storefront/stencil/deployment/upload-errors)
* [Theme Updates and Version Control](/developer/docs/storefront/stencil/deployment/updates-and-version-control)
* [Theme Metadata Images](/developer/docs/storefront/stencil/deployment/theme-images)