keyboard Keyboard Shortcuts
Ctrl + D Download
Ctrl + L Copy Link
Ctrl + R Reset
Alt + 1/2/3 Switch Tabs

Key/Button Designer — Stream Deck-compatible (unofficial)

info
folder_special My Saved Templates 0
warning Templates are stored in your browser's local storage. They may be lost if you clear site data. Use the link button to create a bookmarkable, shareable URL.
No saved templates yet. Save your current design above!
auto_awesome Starter Templates
text_fields Text
tune Advanced Options
0px
0.9
category Icon
Supports: PNG, JPEG, SVG, GIF (inc. animated), WebP lock Your images stay private — processed in your browser, never uploaded
open_in_new Discover more icons on my Toolkit!
Enter a direct link to an image (PNG, JPEG, GIF, WebP)
tune Icon Effects
100%
search
Skip icon list
Loading icons...

Icons from Google Material Symbols (Apache 2.0 License)

format_paint Background
Supports: PNG, JPEG, SVG, GIF, WebP lock Your images stay private — processed in your browser, never uploaded
Darken the background to improve text readability
crop_square Border
auto_awesome Extras
volunteer_activism Tip Jar (Ko-fi)

Built with ❤️ and ☕ by a solo dev. If this tool saved you time or money on button packs, please consider leaving a tip — you can even suggest a feature!

My Button

Button Designer — Stream Deck-compatible key icon creator

Use this free online tool to design consistent, personalised icons for Stream Deck-compatible keys. Pick from thousands of icons, add text, and customise colours, backgrounds, and overlays to match your style.

Recommended icon dimensions (Stream Deck-compatible)

Icons you create here are ready to import into the Stream Deck software right away.

How to assign custom icons in Stream Deck

Screenshot showing how to add a custom icon in Stream Deck

When you've created a key on your Stream Deck and downloaded your custom key from this creator, select the key you would like to customise the icon for and then you can either:

Can I save my design for later?

Yes! Use the Templates panel to save your designs. You have two options:

Note about custom images: If your design uses an uploaded image (background or icon), the image itself cannot be stored in templates or URLs. The template will save with a placeholder, and you'll need to re-upload the image when loading the template. This is due to browser security restrictions and URL length limits.

Privacy & Security

100% client-side processing: Your images are never uploaded to any server. All image processing, compositing, and exporting happens entirely in your browser using JavaScript. Your designs stay completely private on your device.

The only data stored is your design settings in your browser's local storage — this never leaves your device. We use privacy-friendly analytics (Matomo) to count page views, but no personal data or images are ever collected or transmitted.

App Information

Unofficial / independent: This is a community-made tool for creating button icons that are Stream Deck-compatible. It is not affiliated with, endorsed by, sponsored by, or otherwise approved by Corsair, Elgato, or the Stream Deck brand.

“Stream Deck” and “Elgato” are trademarks of Corsair Memory Inc. They are used here only to describe compatibility and the intended use of the tool.

This website does not include or redistribute any Elgato software or proprietary assets — it simply helps you generate image files you can import into the Stream Deck software.

No warranty: This tool is provided “as is” and “as available”, without warranties of any kind (express or implied), including but not limited to merchantability, fitness for a particular purpose, and non-infringement. You use it at your own risk. To the maximum extent permitted by law, the author is not liable for any claim, damages, or other liability arising from your use of the tool.

Lovingly made by Addy Codes using icons from Google Material Symbols (Apache 2.0 License).

If you've found this helpful, please consider supporting me on Ko-fi to fund more caffeine-fuelled development. To report a bug or request a feature, please visit the GitHub code repository.