The HOOBS™ command line interface is the software that manages bridges. Below is a list of commands and actions available in the HOOBS™ CLI.

Hub (Daemon)

This starts the hub service. This is needed to manage the bridges. It is also the default command when no other command is defined.

sudo hoobsd hub

Available options

Flag Description
-d, –debug Turn on debug level logging
-v, –verbose Turn on insane verbose logging
-p, –port Override the defined hub port
-o, –orphans Keep cached accessories for orphaned plugins
-c, –container This changes the paths needed for Docker containers

Bridge (Daemon)

This starts bridges.

sudo hoobsd bridge -b 'my-bridge'

Available options

Flag Description
-d, –debug Turn on debug level logging
-v, –verbose Turn on insane verbose logging
-b, –bridge Define the bridge to start, can be the name or id
-p, –port Override the port defined on the bridge
-o, –orphans Keep cached accessories for orphaned plugins
-c, –container This changes the paths needed for Docker containers

If an bridge name is not included the default is default

Service (Daemon)

This controls the service installed on the system. To create the service use the HOOBS™ CLI.

sudo hoobsd service start

Available actions

Action Description
start This will start the defined bridge
stop This will stop the defined bridge
restart This will restart the defined bridge

Available options

Flag Description
-d, –debug Turn on debug level logging

Install

This initializes the system. It creates the special hub bridge. The hub bridge is a control hub for all other bridges.

sudo hbs install

Available options

Flag Description
-p, –port Sets the port for the hub, if not set the CLI will ask you
-s, –skip This will skip the systemd or launchd service create
-c, –container This changes the paths needed for Docker containers

Bridge

This controls bridges on the system. It can be used to list, create and remove bridges.

This also creates and starts systemd and launchd services. If your system doesn’t have either of these systems, the CLI will not attempt this.

Add
alias create

This will create an bridge.

sudo hbs bridge create

Available options

Flag Description
-b, –bridge Defines a name for the bridge
-p, –port Sets the port for the bridge
-a, –advertiser Sets the bridge advertiser

If the bridge name, port or advertiser is not set the CLI will ask for this information.

Cache
This will display cached accessories for a bridge.

sudo hbs bridge cache

Available options

Flag Description
-b, –bridge Selects a bridge

If the bridge name or port is not set the CLI will ask for this information.

Purge
This will purge all persisted and cache files for a bridge.

sudo hbs bridge purge

Available options

Flag Description
-b, –bridge Selects a bridge
-u, –uuid Remove a specific accessory from the cache

If the bridge name or port is not set the CLI will ask for this information.
This will require you to re-pair with Apple Home.

Remove
alias rm

This will remove an bridge.

sudo hbs bridge remove

This will remove all configs and plugins.

Available options

Flag Description
-b, –bridge Defines bridge to be removed
-s, –skip This will skip the systemd or launchd service create
-c, –container This changes the paths needed for Docker containers

If the bridge name is not set the CLI will ask for this information.

Export
This will export an bridge to your current working directory.

cd ~/backups
sudo hbs bridge export

This will need to be ran with elevated permissions. You will need to chmod the file if you want to work with it.

Available options

Flag Description
-b, –bridge Defines bridge to export
-c, –container This changes the paths needed for Docker containers

If the bridge name is not set the CLI will ask for this information.

List
alias ls

This will show a list of bridges on the system including the hub. It will also show you if the bridge is running.

sudo hbs bridge list

Plugin

This allows you to install, remove and list plugins from any bridge.

This will manage the plugin locations, logging and configs. This important because HOOBS™ encrypts your config files.

Even though you can install plugins using npm or yarn, this handles everything that those tools don’t This plugin command is a more secure way of installing plugins.

Add
alias install

This will install a plugin into an bridge.

sudo hbs plugin add my-plugin

You can also define a version using the standard syntax [email protected].

Available options

Flag Description
-b, –bridge Defines bridge to install this plugin
-c, –container This changes the paths needed for Docker containers

If the bridge name is not set the CLI will ask for this information.

Remove
alias uninstall
alias rm

This will uninstall a plugin from an bridge.

sudo hbs plugin remove my-plugin

Available options

Flag Description
-b, –bridge Defines bridge to install this plugin
-c, –container This changes the paths needed for Docker containers

If the bridge name is not set the CLI will ask for this information.

Update
alias upgrade

This will upgrade a single plugin or all plugins from an bridge.

sudo hbs plugin update

or

sudo hbs plugin update my-plugin

You can also define a version using the standard syntax [email protected].

Available options

Flag Description
-b, –bridge Defines bridge to upgrade
-c, –container This changes the paths needed for Docker containers

If the bridge name is not set the CLI will ask for this information.

List
alias ls

This will list plugins for all or a single bridge.

sudo hbs plugin list

Available options

Flag Description
-b, –bridge Defines the bridge to list
-c, –container This changes the paths needed for Docker containers

If an bridge is not defined, the CLI will include the bridge in the list.

Create
This command is used by developers to quickly create a new plugin project. It will create a new folder for your project and add example files depending on the options you choose.

cd ~/projects
hbs plugin create

This supports many options.

  • JavaScript
  • Typescript
  • Eslint
  • Jest
  • Nodemon
  • GUI plugin
  • Config Schemas

Config

This allows you to manually configure HOOBS™. This is the only way other then the GUI to configure HOOBS™. HOOBS™ encrypts config files to project sensitive information.

sudo hbs config

This command can configure the hub as well as bridges.

This uses nano, you may need to install it on your system.

Available options

Flag Description
-b, –bridge Defines the bridge to configure
-c, –container This changes the paths needed for Docker containers

If the bridge name is not set the CLI will ask for this information.

Log

This will display the log from all bridges. You can also use this command to show the log from a single bridge.

sudo hbs log

You can also display debug information after the fact. This comes in handy if you can’t tuen on debug mode.

Available options

Flag Description
-b, –bridge Show the log from a single bridge
-t, –tail Set the number of lines to show, default 50
-d, –debug Show debug messages
-c, –container This changes the paths needed for Docker containers

Extension

This manages HOOBS™ extensions (features). It can be used to enable system level dependencies, like FFMPEG, and the official GUI.

Extensions are not the same as plugins. A plugin runs on a bridge, where an extension runs on the system, or modifies the hub.

Add
alias install

This enables an extension.

sudo hbs extension add ffmpeg

Available options

Flag Description
-c, –container This changes the paths needed for Docker containers

Remove
alias uninstall
alias rm

This disables an extension.

sudo hbs extension remove ffmpeg

Available options

Flag Description
-c, –container This changes the paths needed for Docker containers

List
alias ls

This will list all available extensions and if they are enabled.

sudo hbs extension list

Available options

Flag Description
-c, –container This changes the paths needed for Docker containers

System

This command manages the system. You can upgrade HOOBS™, backup and restore the system. You can also clean the caches or completely reset the system.

Versions
alias version

This shows system information and version information. This is useful for checking for Node, HOOBSD and the CLI for updates.

sudo hbs system versions

Available options

Flag Description
-beta This compares installed versions against available beta versions

Stable
This will switch to the stable updates branch.

sudo hbs system stable

Edge
This will switch to the beta updates branch.

sudo hbs system edge

Updates from this branch may include bugs

It not recommended to use the edge branch for production devices.

Hostname
This shows or sets the hostname.

sudo hbs system hostname

To set the hostname, <name> is the hostname you wish to use.

sudo hbs system hostname '<name>'

Hostnames should not include spaces or special characters other then dashes.

Upgrade
alias update

This will upgrade HOOBS™ to the latest version. This includes HOOBSD, the CLI and Node.

sudo hbs system upgrade

Available options

Flag Description
-t, -test Dry run an upgrade and test network connectivity
-beta Install available beta versions

Backup
This will backup your current setup to the current working directory.

cd ~/backups
sudo hbs system backup

This will need to be ran with elevated permissions. You will need to chmod the file if you want to work with it.

Restore
This will restore the system with the file you select

sudo hbs system restore ~/backups/my-backup.zip

Reset
This will remove all configurations, plugins and bridges from the system. Use this with caution.

sudo hbs system reset

This will keep you backup folder, so it is wise to create a backup before running this command.

Still need Help?

The HOOBS Support Team
is here for you!