Skip to content

zendesk/zcli

Repository files navigation

Zendesk Logo

ZCLI

npm version Test

ZCLI is a Zendesk CLI which helps you build and manage your Zendesk apps and themes from the command line. ZCLI is currently available in beta and is built using the oclif framework.

Zendesk Logo

For more about ZCLI see the full documentation.

Getting started

This is a Node.js module available through the npm registry.

Before installing, download and install Node.js. Node.js v20.17.0 or higher is required. Installation is done using the yarn install command:

$ yarn global add @zendesk/zcli

Installation prerequisites for Linux

Currently ZCLI has a dependency on libsecret to save authentication information securely in the operating system's keychain.

Depending on your distribution, you will need to run one of the following commands prior to installing ZCLI:

  • Debian/Ubuntu: sudo apt install libsecret-1-dev
  • Red Hat-based: sudo yum install libsecret-devel
  • Arch Linux: sudo pacman -S libsecret

Note for environments without Linux window manager (X11) support

ZCLI's credential manager has a dependency on Linux's windowing manager (X11) which will cause some commands to fail to run on an environment without window manager support. These commands include: zcli login, zcli logout and zcli profiles.

For headless Linux in a Docker container

  • Install gnome-keyring, dbus-x11 and the corresponding libsecret package listed above
  • Launch dbus
export $(dbus-launch)
  • Unlock the Gnome keyring daemon with a dummy password
echo "123456" | gnome-keyring-daemon  -r --unlock --components=secrets

Refer to this sample Dockerfile to see how you can run ZCLI on a headless installation of Ubuntu.

For Windows users running Linux on WSL

WSL2 now supports running Linux GUI application. For users unable to upgrade to WSL2, there are a number of workarounds available:

  • Manually starting a DBus session and unlocking the Gnome keyring with a password supplied via STDIN(similar to headless docker above)
  • Using X11 forwarding to be able to enable the Gnome keyring prompt to display

Commands

ZCLI supports numerous commands. Further documentation on available commands can be found here.

Local development

To run your development copy of ZCLI locally, execute yarn link:bin.

Under macOS if you are using a version manager like asdf, it can additionally set up the global /usr/local/bin/zcli. Note you need global Node.js and ts-node for this as well.

brew install --formula node yarn
yarn global add ts-node

Under Windows this can only be used in WSL2 or Cygwin.

Contributing


Note: While ZCLI is in beta, we are not routinely reviewing issues and merging community-submitted pull requests. We hope to begin reviewing these again soon, but for the moment we appreciate your patience.


Thanks for your interest in ZCLI! Community involvement helps improve the experience for all developers using the Zendesk platform.

Got issues with what you find here? You can create an issue on Github, report the issue in the Zendesk Developers Slack group, or for other problems, contact Zendesk Customer Support.

If you'd like to take a crack at making some changes, please refer to our contributing guide.

ZAF App Scaffolding

Some useful app scaffolds for build ZAF apps that incorporate the ZCLI tool are avaliable at zendesk/app_scaffolds

Releasing

Running the following command will create release tags, generate change logs docs and publish to npm.

$ ./scripts/release.sh

License

Copyright 2022 Zendesk, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.