TypeScript icon, indicating that this package has built-in type declarations

2.0.8 • Public • Published

ZapWorks CLI

This is a command line utility that helps you perform a range of augmented reality tasks, including:

  • training images for use as image targets with Zappar's Universal AR SDKs
  • serve the contents of a directory on your computer to let you preview on your computer or a device on your local network
  • initialize new projects with templates for a variety of tools and technologies
  • upload and publish web-based Universal AR projects through ZapWorks

Getting Started

To install and use the ZapWorks CLI, first make sure you have Node.js installed, then just run the following command in a terminal on your computer:

npm i -g @zappar/zapworks-cli

Please note that the ZapWorks CLI is designed to work with Node.js version 16 or lower. If you are using Node.js above version 16, it is recommended to use the beta branch of the ZapWorks CLI.

To install the beta version, you can use the following command: sh npm i -g @zappar/zapworks-cli@beta

Once installed you can use the CLI on your command line with thusly:

zapworks ...


Training Image Files

Zappar's set of Universal SDKs let you track and attach content to images in 3D space. To do so, the SDKs need a file that contains an optimized description of the image, called a target file. To generate a target file from an image, use the CLI's train command:

zapworks train myImage.png

The CLI can train PNG or JPEG images, and they should be at least 300px in each dimension to be effective. The command will output a new file, in this case myImage.zpt, in the current directory. You can sent the output to a different location if you like:

zapworks train myImage.png -o myFolder/target.zpt

Cylindrical targets

You may train images for cylindrical targets. To do so, provide the radius of the cylinder:

zapworks train myImage.png --radius 55mm
zapworks train myImage.png --radius 500px --dpi 110

The following units are accepted: target, mm, cm, m, in, px.

To wrap the image all the way around, simply pass in --curved when training:

zapworks train myImage.png --curved

You might like to check out the following ZapWorks Docs article: What Makes a Good Tracking Image?

Serving Directories

Due to browser restrictions, web pages that use the camera must be served over HTTPS. To help with local development of your web-based AR experiences, the CLI includes a tool that will serve a directory of your choice for access from your computer, or from a device on your local network.

To serve your current folder from a terminal, run the following command:

zapworks serve

That will start a server and give you URL that you can use to access the current folder over HTTPS. If you'd like to serve a different folder, that's easy too:

zapworks serve myDistFolder/

If you'd like to access the site from other devices on your local network, e.g. your mobile phone, pass the --lan parameter:

zapworks serve --lan

With this parameter, the CLI will output a link that should work for devices on your local network, and a QR code containing the same URL that you may like to scan on a mobile device to get up and running quickly.

Note - if you're using webpack to bundle your project (which we do recommend), you may not need this tool :-) The webpack-dev-server package can serve your content on your local network over HTTPS if you set the following options in your webpack configuration:

module.exports = {
  devServer: {
    host: '',
    https: true

Clean ZapWorks Studio Symbols

You may clean .zpp files using:

zapworks zppclean mySymbol.zpp

This command takes a ZPP file (the file format of ZapWorks Studio) and produces a new file without unnecessary or redundant data.



Package Sidebar


npm i @zappar/zapworks-cli

Weekly Downloads






Unpacked Size

93.8 kB

Total Files


Last publish


  • david.szucs
  • seenevz
  • cgauld
  • deim
  • simon_zappar
  • jordan-zappar
  • george.martin
  • squeral
  • francesca.may
  • justin_zappar