Introducing Seam CLI

Today we’re thrilled to announce the release of our brand new seam-cli client. This command line utility lets you control Seam resources (devices, workspaces, and more) directly inside your terminal or a web browser. We’re also making the CLI available inside a web browser with a ready-to-go environment inside console.seam.co.
Using Seam CLI
You can head over to console.seam.co and click “Online CLI” in the left navigation to try the Seam CLI entirely inside your browser. Alternatively, you can install it on your system via npm:
Note that you will also need a Personal Access Token (”PAT”) to access all the various workspaces and resources available to your user. You can read on how to generate a PAT in the Seam Console here.
Control Any Resource
The Seam CLI lets you create connect webviews, retrieve devices, program access codes, set thermostat temperature, and pretty much anything else already supported via the Seam API.

Ease of Use
Importantly, this CLI is intended to be dead simple to use. It comes with an awesome action discovery UI and bakes in sensible defaults to quickly execute any commands. Of course, you can always specify arguments if you need to, and it will, at times, automatically surface options for you such as your list of devices and their device_id if ever that’s an argument you need to pass to a specific endpoint. No more having to look up the device id in the console and then having to paste it in.

Exploring Available Commands
The Seam CLI supports all the functions of the Seam API. For example, after login in and selecting a workspace, you can simply invoke seam to get a list of all the available commands. Use your keyboard arrows to then select a command.
You can then press enter to select one. You’ll then be prompted for additional info or can simply select default parameters. Next, we present a few examples of functions you can perform.
Connecting a Device
To connect a device, you can run seam connect-webviews create (or select it from the list of options when invoking just seam), and you can then just run the command with default arguments. This will return a connect webview you can use to link a new device account with your selected workspace.
List Devices
Once you’ve connected devices, you can immediate list them in order to view the device information such as their device_id, properties, and more.
Unlocking a Door
To control a specific device, the CLI will ask you which device you wish to control, which is much easier than having to look up the device_id.
Motivations for a Seam CLI
We’ve recently had a number of new Seamstresses & Seamates join us. Part of their onboarding consists of completing a set of challenges that require making use of the Seam API. During a recent onboarding session, we saw one of our new teammate struggle with setting up their development environment. This got us to think that there should be an easier way; that ideally you should be able to go from 0 to controlling an IoT device in less than 5 minutes. When we took a look at what it took to make this happen, it became fairly obvious that setting up an environment, writing queries, and learning the Seam API added way too much overhead.
So we thought to ourselves, “hey, why not just build a dead simple CLI that just handles everything for you. It will list the commands you can run; it will surface the parameters you can use; and it will make all the calls for you and show you the outputs.”
Launching the Seam CLI
After a solid weekend of hacking at this, we had an initial version ready to go. It’s packaged as an npm utility that you can install globally in your dev environment by just running npm install -g seam-cli. Pretty cool!

Except we thought that having to install npm still consumed too much time and would suck precious seconds away. Hence came the idea to go a step further and provide a fully ready-to-go environment directly in a web browser. You can access it from console.seam.co in the left nav menu.

What’s Next
The entire project is available on Github. It’s still a beta project and we very much appreciate any bug report, feature request, and anything you think can make the Seam CLI awesome!