2.2.3 • Public • Published

This package has been renamed

The @hubspot/cms-cli is now @hubspot/cli. This package will receive patches and bug fixes, but we encourage you to upgrade to the new, actively maintained HubSpot CLI. To upgrade, run:

npm uninstall -g @hubspot/cms-cli and npm install -g @hubspot/cli


Provides an hs command for interacting with the HubSpot CMS. Learn more about building on the HubSpot CMS.

Getting started

For more information on using these tools, see Local Development Tooling: Getting Started


Using yarn

yarn add @hubspot/cms-cli --dev

Using npm

npm install @hubspot/cms-cli


Once the @hubspot/cms-cli has been added to a project, a config file named hubspot.config.yml will also be needed. It is recommended that the config file is kept in your $HOME directory.

cd ~
hs init

Auto Completion

You can set up command autocompletion by running

hs completion

and copying the output to either your .bashrc or .zshrc, and then sourcing that file source ~/.bashrc source ~/.zshrc or restarting your terminal.


A full breakdown of the commands can be found on the local development tools reference page.

Note: When @hubspot/cms-cli is installed local to a project, the commands need to be prefixed with either yarn if using yarn or npx if using npm.

Initialize the CLI and create a config file

hs init

Show all commands

hs help

Upload a file or directory to the Design Manager

hs upload --account=DEV [src] [dest]

Fetch a file or directory by path from the Design Manager

hs fetch --account=DEV [path] [dest]

# Overwrite existing files
hs fetch --account=DEV --overwrite [path] [dest]

Watch a directory of files and automatically upload changes to the Design Manager

hs watch --account=DEV [src] [dest]

Create a new asset locally

hs create [type] [dest]

Delete a file or directory from the Design Manager

hs remove --account=DEV [path]

Authenticate against an account using either personalaccesskey or oauth2

hs auth personalaccesskey

File Manager Commands

Upload a file or directory to the File Manager

hs filemanager upload --account=DEV [src] [dest]

Fetch a file or directory from the File Manager

hs filemanager fetch --account=DEV [src] [dest]

# Overwrite existing files
hs filemanager fetch --account=DEV --overwrite [path] [dest]

HubDB Commands

Create a new HubDB table

hs hubdb create <src>

Fetch a HubDB table

hs hubdb fetch <id or name> <src>

Clear all rows in a HubDB table

hs hubdb clear <id or name>

Delete a HubDB table

hs hubdb delete <id or name>


There are three ways that the tools can authenticate with HubSpot.

Personal CMS Access Key (recommended)

  1. Run hs init or hs auth personalaccesskey and follow the instructions


  1. Create a developer app
  2. Run hs auth oauth2
  3. Select OAuth2 and follow the steps

Note: The Account ID used should be the CMS Account ID (not the developer app ID). Client ID and Client Secret are from the developer app.

HubSpot API Key

  1. Set up an API Key for the CMS Account
  2. Edit the hubspot.config.yml file to set the authType for the account to apikey and add apiKey as shown below:
defaultPortal: DEV
  - name: DEV
    portalId: 123
    authType: apikey




Package Sidebar


npm i @hubspot/cms-cli

Weekly Downloads






Unpacked Size

153 kB

Total Files


Last publish


  • jonmiller_hs
  • tscales
  • rsegura
  • hemangthakkar
  • tamarayu
  • jyeager_hubspot
  • camdenphalen
  • bmatto_hs
  • elingyr
  • alonso-cadenas
  • jsines
  • tfinley_hs
  • mshannon_hs
  • arota-hubspot
  • bbarbosa-hubspot
  • service-ccs
  • kemmerle
  • banderson
  • also
  • rberdeen-hubspot
  • harminder01
  • bkrainer-hs
  • friss
  • jhilker
  • atanasiuk
  • ksvirkou-hubspot
  • kbreeman-hubspot
  • brodgers16