Needlessly Promiscuous, Modularize!


    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




    npm i @hubspot/cms-cli

    DownloadsWeekly Downloads






    Unpacked Size

    153 kB

    Total Files


    Last publish


    • arota-hubspot
    • bbarbosa-hubspot
    • service-ccs
    • kemmerle
    • banderson
    • also
    • rberdeen-hubspot
    • harminder01
    • bkrainer-hs
    • friss
    • jhilker
    • miketalley
    • apizzurro
    • atanasiuk
    • ksvirkou-hubspot
    • kbreeman-hubspot
    • brodgers16