Commands, settings, SDK functions, anything in the docs.

Use the CLI

Install and sign in

Install the ledable command and sign in to your LEDABLE account.

On this page

The ledable command does what the LEDABLE phone app does: it signs in, sets up a display over Bluetooth, installs apps from the store, arranges the playlist and changes settings. Its commands run the app's own pages, so they decide and refuse exactly what the app would. It is also the tool for building and publishing apps.

Install

The CLI needs Node.js 24.18 or later. It runs on macOS, Windows and Linux, each on x64 and Arm64.

Terminal
npm install -g @ledable/cli
ledable --version

ledable --help lists every command, and ledable <group> <command> --help shows one command's arguments and options. The command reference has the same text.

When a newer version is out, the CLI says so on stderr after a command, at most once a day. Run the same npm install -g @ledable/cli to update.

Bluetooth

Only setting up a display uses Bluetooth: the ble and wifi commands. Everything else goes through LEDABLE's servers, so it works wherever your computer is online. Before you set up a display, check that Bluetooth works on your system:

  • macOS. npm installs the Bluetooth module for your Mac with the CLI. The first time a command uses Bluetooth, macOS asks whether your terminal app may use it. If you declined, the command fails with Bluetooth adapter is unauthorized; allow your terminal app under System Settings → Privacy & Security → Bluetooth.
  • Windows. npm installs the Bluetooth module for your PC with the CLI. Turn Bluetooth on in Settings.
  • Linux. The CLI talks to BlueZ, the Linux Bluetooth service, over the system D-Bus, so it needs no native module. The bluetooth service must be running with an adapter powered on.

A command that finds the radio switched off fails with Bluetooth adapter is poweredOff.

Sign in

Sign in with your email address. An address that has no account yet gets one.

Terminal
ledable auth login you@example.com

The CLI emails you a sign-in link, shows a short code and waits:

Output
Sent a sign-in link to you@example.com
Open it and pick the code  K7
Waiting for the pick. Or type the one-time code from that page.
Code:

Open the link on any device. The page names the LEDABLE CLI as what wants to sign in and offers three codes: pick the one your terminal shows. A wrong pick, or "I didn't ask to sign in", cancels the request; run auth login again to start over. Once you pick the right code, the terminal carries on by itself and prints the account it signed in to:

JSON
{
  "user_id": "…",
  "email": "you@example.com"
}

With the one-time code

If the terminal keeps waiting after you picked the code, the page offers a one-time code under "Device still waiting?". Type it at the Code: prompt; spaces, dashes and case do not matter. A wrong code is said and the prompt asks again.

Where no one is at a terminal, pass --code-stdin and pipe the code in: the command reads it from one line of stdin. It writes Sent a sign-in link… to stderr in either mode, so a script knows when the mail has gone out. Without a terminal and without --code-stdin, the command waits for the pick alone.

Check who you are

Terminal
ledable auth whoami

auth whoami prints your profile: your nickname, email address and when the account was created. A command that needs an account while you are signed out stops with Sign in with ledable auth login first.

You can be signed in to several accounts on one computer and switch between them; see Several accounts.

Sign out

Terminal
ledable auth logout

auth logout signs this computer out of the current account, ends the session on LEDABLE's servers and removes the account's credentials and cached displays from this computer. It prints the account it signed out of:

JSON
{
  "signed_out": "…"
}

Other accounts signed in here stay signed in. Next, set up a display.