> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fabl.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Bitfocus Satellite Surface

> Use a Stream Deck, Loupedeck, or other control surface to drive Fabl rules and display live state, connected over the free Bitfocus Companion Satellite app.

The **Satellite Surface** device drives a control surface attached through Bitfocus Companion Satellite, letting Fabl paint its keys directly - a countdown for the floor, a clock, or a live reading from a clip player.

For controlling Companion itself, see [Bitfocus Companion](/devices/bitfocus-companion).

## Connection

This device works the other way round from every other one: **the agent listens and the surface connects to it**. So instead of a host, you configure:

* The **listen port** the Satellite connects to
* The **network interface** to listen on
* A **surface** filter, by product name - for example Loupedeck Live
* The **Satellite API version**

## Commands

| Command        | What it does                                                                 |
| -------------- | ---------------------------------------------------------------------------- |
| Paint key      | Paints a key with text, colours, and optionally a reading from a clip player |
| Show clock     | Shows a live wall clock on a key                                             |
| Count up       | Counts up on a key from the moment the action runs                           |
| Count down     | Counts down on a key over a duration                                         |
| Blank key      | Blanks a single key                                                          |
| Blank all      | Blanks every key on the surface                                              |
| Repaint        | Repaints every control from what it was last told to show                    |
| List controls  | Lists the surface's control ids                                              |
| Set brightness | Sets the surface brightness                                                  |

A key can carry a label above its value, an icon drawn in the text colour, or an image from the agent host.

<Tip>
  Run **Repaint** after a surface sleeps or reconnects. It restores every control from what it was last told to show, so the surface comes back with the show's state rather than blank.
</Tip>

**List controls** returns the control ids that every other command expects, which is the quickest way to find out what a surface exposes.

## State and triggers

The device reports its connection state and raises a trigger when the connection changes.
