Keys
FreshOverview
Keys are your plugin's actions located on a Stream Deck canvas. They provide visual feedback through titles and images.
States
Actions require at least one state, with support for up to two states. Multi-state keys toggle between states automatically unless disabled in the manifest.
Multi-Actions
When used in multi-actions, each state should have a descriptive name so users understand what each toggle represents.
Titles
Titles render on top of key images. Display precedence:
Update titles at runtime:
typescript
await ev.action.setTitle("New Title");Images
Supported formats: SVG (recommended), JPG, PNG, WEBP.
Images can be set from:
typescript
// SVG string (base64 encoded)
await ev.action.setImage("data:image/svg+xml;base64,...");
// Data URL with base64 content
await ev.action.setImage("data:image/png;base64,...");
// File path on disk
await ev.action.setImage("/path/to/image.png");Optional parameters:
target: Hardware display, software display, or bothstate: Which state to update (0 or 1)
Events
| Event | Trigger |
|---|---|
onKeyDown | User presses a key |
onKeyUp | User releases a pressed key |
Commands Reference
| Command | Description |
|---|---|
setImage(image?, options?) | Display image on action |
setTitle(title, options?) | Display title on action |
setSettings(settings) | Persist action configuration |
getSettings() | Retrieve action settings |
setState(state) | Toggle between states (0 or 1) |
showOk() | Display success feedback (green checkmark) |
showAlert() | Display warning feedback (yellow triangle) |
Display Feedback
Temporary visual indicators:
typescript
// Success - shows green checkmark momentarily
await ev.action.showOk();
// Failure - shows yellow triangle with exclamation
await ev.action.showAlert();