Devices
FreshDevice Types
| Type ID | Device | Keys/Features |
|---|---|---|
| 0 | Stream Deck / Scissor Keys | Standard keys |
| 1 | Stream Deck Mini | 6 keys |
| 2 | Stream Deck XL | 32 keys |
| 3 | Stream Deck Mobile | Mobile app |
| 4 | Corsair G-Keys | Keyboard integration |
| 5 | Stream Deck Pedal | 3 foot pedals |
| 6 | Corsair Voyager | Laptop keys |
| 7 | Stream Deck + | 8 keys + 4 dials |
| 8 | SCUF Controller | Gaming controller |
| 9 | Stream Deck Neo | Compact |
| 10 | Stream Deck Studio | Professional |
| 11 | Virtual Stream Deck | Software-only |
| 12 | Galleon 100 SD | Extended |
| 13 | Stream Deck + XL | 36 keys + dials |
Accessing Devices
typescript
streamDeck.devices.forEach((device) => {
const { id, isConnected, name, size, type } = device;
streamDeck.logger.info(`Device: ${name} (${size.columns}x${size.rows})`);
});Connection Events
| Event | Trigger | Min Version |
|---|---|---|
onDeviceDidConnect | Hardware connects | - |
onDeviceDidChange | Device changes | SD 7.0+ |
onDeviceDidDisconnect | Hardware disconnects | - |
typescript
streamDeck.devices.onDeviceDidConnect((ev) => {
streamDeck.logger.info(`Connected: ${ev.device.name}`);
});
streamDeck.devices.onDeviceDidDisconnect((ev) => {
streamDeck.logger.info(`Disconnected: ${ev.device.id}`);
});