{"id":15405166,"url":"https://github.com/fnando/streamdeck","last_synced_at":"2025-04-16T05:48:32.588Z","repository":{"id":37090150,"uuid":"455396937","full_name":"fnando/streamdeck","owner":"fnando","description":"A lean framework for developing Elgato Stream Deck plugins.","archived":false,"fork":false,"pushed_at":"2024-02-17T00:06:52.000Z","size":787,"stargazers_count":34,"open_issues_count":14,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-23T23:47:14.780Z","etag":null,"topics":["streamdeck","streamdeck-plugin","streamdeck-plugins"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fnando.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["fnando"],"custom":["https://paypal.me/nandovieira/🍕"]}},"created_at":"2022-02-04T02:21:43.000Z","updated_at":"2025-02-11T22:56:47.000Z","dependencies_parsed_at":"2024-10-20T12:39:58.878Z","dependency_job_id":null,"html_url":"https://github.com/fnando/streamdeck","commit_stats":{"total_commits":24,"total_committers":4,"mean_commits":6.0,"dds":0.25,"last_synced_commit":"9848e10c6215f5148b9314e63a09749803e99f34"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnando%2Fstreamdeck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnando%2Fstreamdeck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnando%2Fstreamdeck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnando%2Fstreamdeck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fnando","download_url":"https://codeload.github.com/fnando/streamdeck/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249204648,"owners_count":21229776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["streamdeck","streamdeck-plugin","streamdeck-plugins"],"created_at":"2024-10-01T16:15:17.692Z","updated_at":"2025-04-16T05:48:32.525Z","avatar_url":"https://github.com/fnando.png","language":"TypeScript","readme":"# @fnando/streamdeck\n\n[![Tests](https://github.com/fnando/streamdeck/workflows/js-tests/badge.svg)](https://github.com/fnando/streamdeck)\n[![NPM](https://img.shields.io/npm/v/@fnando/streamdeck.svg)](https://npmjs.org/package/@fnando/streamdeck)\n[![NPM](https://img.shields.io/npm/dt/@fnando/streamdeck.svg)](https://npmjs.org/package/@fnando/streamdeck)\n[![MIT License](https://img.shields.io/:License-MIT-blue.svg)](https://tldrlegal.com/license/mit-license)\n\nA lean framework for developing Elgato Stream Deck plugins.\n\nhttps://user-images.githubusercontent.com/3009/153739253-51973586-c278-4104-805c-ae61d534d33c.mp4\n\n## Installation\n\nTo create a new plugin, use the following command:\n\n```bash\nnpx @fnando/streamdeck create /path/to/your/plugin \\\n  --name 'Your Plugin Name' \\\n  --description 'Your plugin description' \\\n  --id 'com.sample.streamdeck-your-plugin' \\\n  --github your-github-user\n```\n\nIf you prefer [Gitlab](https://gitlab.com), use `--gitlab` instead. There are\nother options you may use, so if you want to check them out, the following\ncommand instead:\n\n```console\n$ npx @fnando/streamdeck create --help\nstreamdeck create [path]\n\nCreate a new Stream Deck extension\n\nPositionals:\n  path  The extension path.                                    [string]\n\nOptions:\n  --version      Show version number                          [boolean]\n  --help         Show help                                    [boolean]\n  --name         The human-readable name of the extension.\n                                                    [string] [required]\n  --id           A reversed-DNS format that identifies the extension.\n                                                    [string] [required]\n  --author       The author name.                         [default: \"\"]\n  --email        The author email.                        [default: \"\"]\n  --url          The extension url.                       [default: \"\"]\n  --description  The extension description.\n                               [default: \"Your new Stream Deck plugin\"]\n  --github       Your Github user. When present, an origin pointing to\n                 Github will be added.                    [default: \"\"]\n  --gitlab       Your Gitlab user. When present, an origin pointing to\n                 Gitlab will be added.                    [default: \"\"]\n  --install      Install dependencies using npm.        [default: true]\n```\n\n## Usage\n\n```console\n$ streamdeck -h\nUsage: streamdeck \u003ccommand\u003e [options]\n\nCommands:\n  streamdeck bundle          Build files under `build` directory. While\n                             developing, use `--dev` to generate the\n                             files that can be linked to Stream Deck's\n                             plugins directory. It'll generate the\n                             `.streamDeckPlugin` otherwise.\n  streamdeck release         Release a new version of the plugin. This\n                             command will export a new bundle, make a\n                             new commit, tag it with the provided\n                             version, alter CHANGELOG.md, and push to\n                             your Git's repo origin source.\n  streamdeck create [path]   Create a new Stream Deck extension\n  streamdeck images          Create file with embedded images\n  streamdeck link            Link the dist directory to Stream Deck's\n                             plugin directory.\n  streamdeck unlink          Remove the Stream Deck directory's link.\n  streamdeck docs            Open Elgato's docs.\n  streamdeck styleguide      Show Elgato's style guide\n  streamdeck debug [action]  Manage debugging mode.\n\nOptions:\n  --version  Show version number                              [boolean]\n  --help     Show help                                        [boolean]\n```\n\n### Plugin structure\n\n```\n$ tree -I node_modules\n.\n├── CHANGELOG.md\n├── CODE_OF_CONDUCT.md\n├── LICENSE.md\n├── README.md\n├── build\n│   └── com.fnando.hello.sdPlugin\n│       ├── css\n│       │   ├── custom.css\n│       │   └── sdpi.css\n│       ├── images\n│       │   ├── actions\n│       │   │   ├── Hello\n│       │   │   │   ├── Key.png\n│       │   │   │   └── Key@2x.png\n│       │   │   ├── Hello.png\n│       │   │   └── Hello@2x.png\n│       │   ├── category.png\n│       │   ├── category@2x.png\n│       │   ├── plugin.png\n│       │   └── plugin@2x.png\n│       ├── inspector.html\n│       ├── inspector.js\n│       ├── inspectors\n│       ├── manifest.json\n│       ├── plugin.html\n│       └── plugin.js\n├── icons.sketch\n├── package-lock.json\n├── package.json\n├── release\n│   └── com.fnando.hello.streamDeckPlugin\n├── src\n│   ├── actions\n│   │   └── Hello.ts\n│   ├── css\n│   │   ├── custom.css\n│   │   └── sdpi.css\n│   ├── images\n│   │   ├── actions\n│   │   │   ├── Hello\n│   │   │   │   ├── Key.png\n│   │   │   │   └── Key@2x.png\n│   │   │   ├── Hello.png\n│   │   │   └── Hello@2x.png\n│   │   ├── category.png\n│   │   ├── category@2x.png\n│   │   ├── embed\n│   │   ├── multiActions\n│   │   ├── plugin.png\n│   │   └── plugin@2x.png\n│   ├── images.json\n│   ├── inspector.html\n│   ├── inspector.ts\n│   ├── inspectors\n│   ├── locales\n│   ├── plugin.ts\n│   └── streamdeck.json\n└── tsconfig.json\n\n18 directories, 40 files\n```\n\n### Workflow\n\n#### Development\n\n1. First, you need to enable the\n   [debugging mode](https://developer.elgato.com/documentation/stream-deck/sdk/create-your-own-plugin/#debugging-your-javascript-plugin).\n   This can be done by running `streamdeck debug enable`.\n2. Symlink the plugin directory into Stream Deck's plugins directory by running\n   `streamdeck link`.\n3. To open the debugger page, you'll need a Chrome-based browser (Google Chrome,\n   Brave, Microsoft Edge, Opera, etc). Use `streamdeck debug` to open\n   `http://127.0.0.1:23654/` on your browser automatically.\n4. It's recommended that you use [watchman](https://facebook.github.io/watchman)\n   to automatically export files while developing your plugin. Make sure it's\n   installed and then run\n   `watchman-make -p 'src/**/*' '*.json' --run 'streamdeck bundle --dev'` to\n   watch for changes and create the bundle automatically. Notice that some\n   changes will also require that you restart the Stream Deck app.\n\n#### Releasing a new version\n\nOnce your plugin is done, run `streamdeck release --version [version]`. This\ncommand will update `CHANGELOG.md`, change `src/streamdeck.json`, generate the\n`releases/*.streamDeckPlugin`, make a Git commit, tag this commit, and push to\nyour preferred Git hosting service (Github or Gitlab).\n\n## Maintainer\n\n- [Nando Vieira](https://github.com/fnando)\n\n## Contributors\n\n- https://github.com/fnando/streamdeck/contributors\n\n## Contributing\n\nFor more details about how to contribute, please read\nhttps://github.com/fnando/streamdeck/blob/main/CONTRIBUTING.md.\n\n## License\n\nThe gem is available as open source under the terms of the\n[MIT License](https://opensource.org/licenses/MIT). A copy of the license can be\nfound at https://github.com/fnando/streamdeck/blob/main/LICENSE.md.\n\n## Code of Conduct\n\nEveryone interacting in the @fnando/streamdeck project's codebases, issue\ntrackers, chat rooms and mailing lists is expected to follow the\n[code of conduct](https://github.com/fnando/streamdeck/blob/main/CODE_OF_CONDUCT.md).\n","funding_links":["https://github.com/sponsors/fnando","https://paypal.me/nandovieira/🍕"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnando%2Fstreamdeck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffnando%2Fstreamdeck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnando%2Fstreamdeck/lists"}