A screenshot of a terminal using the CLI

Hey look, a Mux CLI

08/13/2020August 13, 2020(over 2 years ago)
2 min read
08/13/2020August 13, 2020(over 2 years ago)
2 min read

Hey look, a Mux CLI

At the end of last year I wrote a small CLI to make my life a little easier. I kept finding myself doing the same manual things over and over, so like any lazy procrastinating good dev I spent a few hours writing code to knock off a minute or two each time I need to do one of these tasks.

I should stress, this tool should be considered beta. I've been using it myself for a few months along with a few other folks internally (they claim), as well as the occasional friendly customer. The last friendly customer seemed offended that this wasn't more accessible, so we decided to go ahead and make it public.

Getting StartedLink to Getting Started

First you need to install the CLI however you normally install global packages. I personally use Volta so I'm biased, but you can pick your poison.

shell
$ volta install @mux/cli
$ npm install -g @mux/cli
$ yarn global add @mux/cli

From there you'll need to initialize the CLI so it has the right credentials set up. If you haven't already, create a Mux Access Token in your dashboard and give it the appropriate access (you probably want read/write access for Video at least or it's not going to be terribly useful). Save the newly created access token locally when asked. For this example, we'll save it to ~/Downloads/MuxToken.env.

Now use that .env file to initialize the CLI!

shell
$ mux init ~/Downloads/MuxToken.env
  Loaded your Mux .env file! Using token with id: 5a12be37-73a9-4283-a070-02f5e1f9adb5?
Do you want to go ahead and set up a Signing Key? This is used to create tokens for signed playback policies. Yes
  Configuration written to: /home/janedoe/.config/@mux/cli/config.json

You can also call init without specifying an environment file and the CLI will prompt you for your token ID and secret. The CLI will also ask if you want to go ahead and set up a signing key. This is optional, but you might want to do it if you want to use the signed playback policy tools.

From here, you can go wild! You can upload a handful of files from a directory if you'd like:

shell
$ mux assets:upload -f .mp4 ~/Videos
  ? We found a few files! Do all of these look good? (Press <space> to select, <a> to toggle all, <i> to invert selection)
  ❯◉ ColorSpaces.mp4
   ◉ MuxLonger.mp4
   ◉ mux-video-intro.mp4
   ◉ mux-video-live-background.mp4
   ◉ roll.mp4
   ◉ sfvideo_talk_2020_06.mp4
  (Move up and down to reveal more choices)

What's next?Link to What's next?

We've got big plans for the CLI long term! Standalone binaries, easier initialization, and a laundry list of features are just a few of the things we've got planned right now. We'd love to hear how you'd like to use it, though, so feel free to let us know via an issue on the Github repo!

Happy hacking!

Create an account

No credit card to start. $20 in free credits when you're ready.

Get started free

Subscribe to the Mux newsletter