# WMT Tool

{% hint style="info" %}
The WEM Design Templates tool is a **command line interface** (CLI) to manage and synchronize WEM Design Templates.

With this tool you can connect to the WEM Design Template Server, get available design templates, create copies and upload changes.

To change the contents of Design Template (html, css, less) you can use the Visual Studio Code editor,that allows you to access the local copies of your Design Templates, and provides a powerful tool to work with the files and make changes.
{% endhint %}

## Getting started with WMT

Download and run the WDT Installer from the following location:

| WINDOWS                                                                                                                                                        | MacOS                                                                                                                                                                                                                                                                                                                                                  |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [**WMT Setup Windows (exe)**](https://wmt.wem.io/download/WMT%20Design%20Tool%20Setup.exe)                                                                     | [**WMT App for MacOS**](https://wmt.wem.io/download/WMT-macOS.zip)                                                                                                                                                                                                                                                                                     |
| Type: installer                                                                                                                                                | Type: zip containing WMT (without extension)                                                                                                                                                                                                                                                                                                           |
| *The publisher is **not officially trusted** by Windows, so you will have to explicitly override the warning to allow download and installation of this file.* | <ul><li>Make sure to add the file <code>WMT</code> to your <code>usr/local/bin</code> folder (or create one if it does not exist) </li><li>Use <code>chmod +x WMT</code> to make sure the file is executable. </li><li>Configure the template folder path without relative paths. For example <code>/Users/MyUser/Documents/Templates</code></li></ul> |

{% hint style="danger" %}
**Uninstall old Windows version manually**

If you have a version from **before 2024-12-13**, you need to uninstall this version manually before installing the new version.&#x20;

If you have used the defaults when installing WMT, you should find the old version and its uninstaller in:&#x20;

**`C:\Program Files (x86)\Wem\Wmt`**&#x20;

This is the 32-bit version. In this folder, you'll find the **`unins000.exe`** file, which will remove this version.&#x20;

After installing the new WMT using the defaults, you will find it in:&#x20;

`C:\Program Files\Wem\Wmt`&#x20;

This is the 64-bit version.
{% endhint %}

{% hint style="info" %}
Following information is based on **Windows** usage.&#x20;

For MacOS-users, please use the appropriate corresponding commands and syntax.
{% endhint %}

​After installation, the **`wmt`** command is available from the **command prompt** (or PowerShell):

```powershell
C:\> wmt
```

The first time you run this command, it will ask for a few configuration settings:&#x20;

1. **Username** - this should be the e-mail address that you use to login to the WEM Modeler.&#x20;
2. **Template path** - the location where the design templates are stored locally. An example location could be `C:\WEM Design Templates` or `E:\Wem\DesignTemplates` as used in examples below.

```powershell
C:\> wmt
No configuration found.
​
Username: *************
Template path: E:\Wem\DesignTemplates
​
The configuration has been saved.
```

These settings can always be changed by running `wmt config set`:

```powershell
C:\> wmt config set -?

Description:
  Alters the current configuration

Usage:
  Wmt config set [options]

Options:
  -s, --server <server>  The hostname of the remote wmt server
  -u, --user <user>      The user which will be used to connect to the remote wmt server
  -p, --path <path>      The root directory in which all the master templates are stored
  -?, -h, --help         Show help and usage information
```

## WMT Login

Before working with the WMT tool, you need to login with the following command:

```powershell
C:\> wmt login
```

This will start the [**WEM Login Portal**](/platform/gettingstarted/wem-login.md) (single sign on) on login.wem.io - where you can use your WEM account and MFA settings for secure login. If you already have a valid WEM Login session in your standard browser (for modeler or mywem), this session will be used to authenticate your WMT access.

<figure><img src="/files/1Cm8QhMg1bpKP2HrA97p" alt="" width="375"><figcaption></figcaption></figure>

The WEM Login in the browser can be set aside, or browser can be closed, while you continue in the WMT Tool in your Command Prompt / Powershell window (where it should show login successful). You can also explicitly logout of the WMT Tool, using the **`wmt logout`** command. This will remove your local access token for the WMT tool only. This will NOT end your WEM Browser Session, so you can continue your Modeler or MyWEM sessions in the browser without interruption.

## WMT Features

{% hint style="info" %}
**Use -? with any command to show help and usage information**
{% endhint %}

```powershell
C:\> wmt -?
Description:
  WMT is a tool to manage WEM design templates

Usage:
  Wmt [command] [options]

Options:
  --version       Show version information
  -?, -h, --help  Show help and usage information

Commands:
  config
  login       Logs in to the remote wmt server
  logout      Logs out from the remote wmt server
  collection
  template
  version     Shows the version of this WMT command line interface
```

### Config

```powershell
C:\> wmt config -?
Description:

Usage:
  Wmt config [command] [options]

Options:
  -?, -h, --help  Show help and usage information

Commands:
  show  Shows the current configuration
  set   Alters the current configuration

C:\> wmt config show
Server:     https://wmt.wem.io
User:       ******************
Path:       E:\Wem\DesignTemplates
Logged in:  yes
```

### Collection level commands

{% hint style="info" %}
To get access to **already existing custom** Design Templates / Collections through the WMT Tool, WEM Support needs to explicitly link your account to the Design Template Collections.&#x20;

This is NOT necessary if you want to work with existing Global Templates as a base for new custom templates > read "[Create a new Design Template from a Source Template](#create-a-new-design-template-from-a-source-template)" further down this page.

Please create a Support Ticket in [MyWEM](https://my.wem.io), requesting access to specific Custom Design Template Collections, make sure you specifically indicate the Custom Design Templates you need access to.
{% endhint %}

A collection is used to group multiple Design Templates and can be linked to Workspaces, to make the Design Templates available in WEM Modeler Projects within those Workspaces. To make a certain Collection available to projects in your workspace, you need to use the `share` command to create a token, then use that token in WEM Modeler > Manage Workspaces > Add Design Template Collection.

```powershell
C:\> wmt collection -?
Description:

Usage:
  Wmt collection [command] [options]

Options:
  -?, -h, --help  Show help and usage information

Commands:
  list           Shows a list of existing template collections
  create <name>  Creates a new template collection
  share <name>   Creates a token to link the collection to workspace
```

### Template level commands

```powershell
C:\> wmt template -?
Description:
​
Usage:
  Wmt template [command] [options]
​
Options:
  -?, -h, --help  Show help and usage information
​
Commands:
  list             Shows a list of existing templates
  download <name>  Downloads an existing template from the server
  create           Create a new template
  pull             Pulls the latest version from the server
  push             Pushes the local changes to the server
  commit           Commit the changes on the server
  compare          Compares the local files with the version on the remote server
  autopush         Watches for file changes and automatically pushed the changes to the server
```

{% hint style="info" %}
The **`list`**, **`download`** and **`create`** commands can work **from any current folder**, because they use the root-folder from the configuration and fully-qualified Design Template Names ("Collection\Template") in case of download and create.&#x20;

**All other commands MUST be executed from within the local folder of a specific Design Template**, so make sure you use the Change Directory (cd) command to set your CLI into the correct Template Folder.
{% endhint %}

### Get List of Available Templates

```powershell
PS E:\WEM\Design Templates\> wmt template list /?
Description:
  Shows a list of existing templates

Usage:
  Wmt template list [options]

Options:
  -c, --collection <collection>  When provided, only shows the template of this collection
  -g, --global                   This flag shows the global design templates
  -?, -h, --help                 Show help and usage information
```

The available **Global Templates** can be used as source for your own new custom Templates. To get a list of all available Global Templates, use **`wmt template list --global`**:

```powershell
PS E:\Wem\DesignTemplates> wmt template list --global
NAME                              CREATED             MODIFIED
Global\Corcovado                  31-5-2022 06:53:08  31-5-2022 06:53:08
Global\Customizable - Main        31-5-2022 06:53:08  31-5-2022 06:53:08
Global\Dashboard - Basic blue     31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Dashboard - Basic grey     31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Dashboard - Basic purple   31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Dashboard - Basic red      31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Dashboard - Dark and blue  31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Dashboard - Light          31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Default                    31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Foodz.nl                   31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Grand Canyon               31-5-2022 06:53:09  31-5-2022 06:53:09
Global\Mobile - Android           31-5-2022 06:53:10  31-5-2022 06:53:10
Global\Mobile - iOS               31-5-2022 06:53:10  31-5-2022 06:53:10
Global\Mont Blanc                 31-5-2022 06:53:10  31-5-2022 06:53:10
Global\Mont Forel                 31-5-2022 06:53:10  31-5-2022 06:53:10
Global\Dashboard - Tokelau light  7-7-2022 16:21:10   7-7-2022 16:21:10
Global\Basic - Amethyst           7-8-2023 13:29:45   7-8-2023 13:29:45
Global\Basic - Graphite           7-8-2023 13:30:04   7-8-2023 13:30:04
Global\Customizable - Snowflake   2-12-2024 15:26:29  2-12-2024 15:26:29
```

### Create a new Design Template from a Source Template

```powershell
PS C:\> wmt template create -?
Description:
  Create a new template

Usage:
  Wmt template create [options]

Options:
  -n, --name <name> (REQUIRED)      The name of the new template
  -s, --source <source> (REQUIRED)  The name of the source template
  -?, -h, --help                    Show help and usage information
```

To create a **new** Design Template, you **always use an existing** Design Template **as source**. A copy of all files and folders will be made with the new Template's name.&#x20;

The Names of the source and new Template should contain Collection and Template names:

&#x20;`-n "My Collection Name\My Template Name" -s "Source Collection Name\Source Template Name"`&#x20;

### Download design template to local

After creating the new Design Template (which happens on the server) you need to **download** it in order to start editing the template locally.&#x20;

You need to have a local copy of the Design Template before you can push or pull changes.&#x20;

```powershell
PS E:\Wem\DesignTemplates> wmt template download "Collection Name\Template Name" 
...
```

{% hint style="warning" %}
**All following commands MUST be executed from within the local folder of a specific Design Template**, so make sure you use the Change Directory (cd) command to set your CLI into the correct Template Folder.

In the examples replace `\Collection` with the actual collection's name, and `\Template` with the actual template's name.
{% endhint %}

### Compare local with server

From within a local Design Template Folder, the WMT tool compares the local files to the server files and provides details on the files and lines which are different.&#x20;

```powershell
PS E:\Wem\DesignTemplates\Collection\Template> wmt template compare
...
Only on server: ...
Different version: ...
...
```

### Pull to update local version

To **pull the latest version** of a specific Design Template or push changes from your local folder to the WMT Server, you first need to go to the correct folder in your CLI tool, until you see a path like the WMT root directory + collection name + template name; and then use `wmt template pull`&#x20;

```powershell
PS E:\Wem\DesignTemplates\Collection\Template> wmt template pull
...
Added file ...
Updated ...
...
```

### Push to send local changes to server

The **`push`** command updates the remote files with the local changes you made. This action will also perform a **compile (LESS to css) and control step** to inform you of any issues that may be in the contents.&#x20;

```powershell
PS E:\Wem\DesignTemplates\Collection\Template> wmt template push
...
```

The **`push`** command will NOT update the Design Template in the WEM Modeler at this stage!

For that final step - to update the Modeler to use the changed template - you need to execute the **`commit`** command.&#x20;

### Commit to start using changes&#x20;

From within a local Design Template Folder, the commit action performs the final step to make your changes available to the WEM Modeler for Preview, and for the publish process to Staging and Live.&#x20;

```powershell
PS E:\Wem\DesignTemplates\Collection\Template> wmt template commit
...
...
```

Mind: only **after Publish** to Staging and Live, the changes in the Design Template will become available in those runtimes.

### Autopush&#x20;

When you use the autopush command in a specific local Design Template folder, it will automatically trigger the push command when a local file has been changed and saved during the session while the WMT is active

```powershell
PS E:\Wem\DesignTemplates\Collection\Template> wmt template autopush
...
Watching for file changes. Press "q" to stop watching...
```

### Delete Collection and Template

There is no option to delete a collection or a template.&#x20;

If you have created a template and/or collection, but you are definitely not using it and want to have it deleted, please create a WEM Support ticket with the details of the Collection and the Template, so we can check all relevant references and do the proper removal.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wem.io/platform/template-editor/wmt-tool.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
