All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.0 (2026-04-28)
- icons: bundle Material Design Icons for offline glyph rendering (#19) (459d410)
- profile: preserve encoder controller + Stream Deck + XL layout (#15) (f4a8402)
- profile: refuse writes while Elgato app is running + restart_app path fix (#16) (e1cb4e3)
- skill: streamdeck-designer Agent Skill + MCP transport hardening (#22) (fd3ec6f)
- touchstrip: expose $X1/$A0/$A1/$B1/$B2/$C1 encoder layouts (#21) (efa66e4)
- touchstrip: per-segment icon and background on Stream Deck + / + XL (#20) (a41a31c)
- add Stream Deck XL and missing device layouts (#10) (c89435b)
- profile: correct Stream Deck + XL keypad layout to 9x4 (#18) (d6da4b2)
- profile: map 20GBD9901 to Stream Deck + (4 dials + 4x2 keypad) (#25) (da0ada5)
0.2.0 (2026-03-23)
- New
profile_server.pyMCP server that writes directly to Stream Deck desktop profiles profile_manager.pywith ProfilesV3-first support and ProfilesV2 fallback- New tools:
streamdeck_read_profiles,streamdeck_read_page,streamdeck_write_page streamdeck_create_iconfor generating 72x72 PNG iconsstreamdeck_create_actionfor generating script-backed Open action blocksstreamdeck_restart_appfor macOS desktop app reloads after profile writes- New package entrypoints:
streamdeck-mcpfor profile writing andstreamdeck-mcp-usbfor legacy USB control - Profile writer skill documentation for agents without MCP access
- PR title and Dependabot workflows for alignment with the shared MCP ecosystem standards
- The default packaged server direction now targets desktop profile writing instead of exclusive USB control
- Registry metadata and package configuration now describe the profile writer as the default experience
- Security workflow now scans this repo structure instead of a non-existent
src/directory
- Initial release of Stream Deck MCP server
streamdeck_connect- Connect to first available Stream Deckstreamdeck_info- Get deck model, key count, current pagestreamdeck_set_button- Set text, image, colors, and shell actionstreamdeck_clear_button- Clear a single buttonstreamdeck_set_brightness- Adjust brightness (0-100%)streamdeck_create_page- Create new button profile/pagestreamdeck_switch_page- Switch active pagestreamdeck_list_pages- List all configured pagesstreamdeck_delete_page- Delete a page (except "main")streamdeck_disconnect- Clean USB disconnect- Multi-page state persistence at
~/.streamdeck-mcp/ - Support for Stream Deck, Mini, XL, MK.2, and Plus models
- Custom icon support (PNG/JPG auto-scaled to button size)
- Shell command actions triggered on button press
- CI/CD with GitHub Actions
- Requires exclusive USB access (quit Elgato Stream Deck software first)
- Requires
hidapilibrary on macOS (brew install hidapi) - Linux users need udev rules for non-root USB access