@hubspot/cms-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
Installation
Using yarn
yarn add @hubspot/cms-cli --dev
Using npm
npm install @hubspot/cms-cli
Configuring
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.
Commands
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 --portal=DEV [src] [dest]
Fetch a file or directory by path from the Design Manager
hs fetch --portal=DEV [path] [dest]
hs fetch --portal=DEV --overwrite [path] [dest]
Watch a directory of files and automatically upload changes to the Design Manager
hs watch --portal=DEV [src] [dest]
Create a new asset locally
hs create [type] [dest]
Delete a file or directory from the Design Manager
hs remove --portal=DEV [path]
Authenticate against a portal using either personalaccesskey
or oauth2
hs auth personalaccesskey
File Manager Commands
Upload a file or directory to the File Manager
hs filemanager upload --portal=DEV [src] [dest]
Fetch a file or directory from the File Manager
hs filemanager fetch --portal=DEV [src] [dest]
hs filemanager fetch --portal=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>
Authentication
There are three ways that the tools can authenticate with HubSpot.
Personal CMS Access Key (recommended)
- Run
hs init
or hs auth personalaccesskey
and follow the instructions
OAuth2
- Create a developer app
- Run
hs auth oauth2
- Select
OAuth2
and follow the steps
Note: The Portal ID used should be the CMS Portal ID (not the developer app ID). Client ID and Client Secret are from the developer app.
HubSpot API Key
- Set up an API Key for the CMS Portal
- Edit the
hubspot.config.yml
file to set the authType
for the portal to apikey
and add apiKey
as shown below:
defaultPortal: DEV
portals:
- name: DEV
portalId: 123
authType: apikey
apiKey: d1234567-123e-7890-b123-aaa80164b4cb