streamdeck_write_page
Write or update a Stream Deck page by specifying buttons, page name, and layout. Requires quitting the Elgato app if running to prevent changes from being lost on app quit.
Instructions
Create a new page or replace/update an existing Stream Deck desktop page manifest. IMPORTANT: the Elgato desktop app overwrites profile manifests from its in-memory state on quit, so writes made while the app is running are lost. This tool refuses to write when the app is running unless auto_quit_app=True is passed. Call streamdeck_restart_app once your edits are complete to make the changes visible on the device.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| buttons | No | Buttons to write. Use streamdeck_create_action to build Open or script-backed actions. Accepts a JSON array or a JSON-encoded string — some MCP clients stringify nested arrays in transit. | |
| page_name | No | Optional page name stored in the page manifest. | |
| create_new | No | Create a new page instead of updating an existing one. | |
| page_index | No | Zero-based page index. Accepts int or string form. | |
| profile_id | No | ||
| directory_id | No | ||
| make_current | No | When true, make the page the active current page after writing. | |
| profile_name | No | ||
| auto_quit_app | No | If true and the Elgato Stream Deck desktop app is running, quit it (graceful AppleScript first, then killall) before writing. Required when the app is running or the write will raise an error. Defaults to false so callers must explicitly consent to quitting it. | |
| clear_existing | No | If true, replace the page contents with the provided buttons. Defaults to true. Accepts bool or string form. |