CLI tool
streamlink/streamlink-twitch-gui avatar
streamlink/streamlink-twitch-gui

Streamlink Twitch GUI points at issue 1045 for its own development status

A multi platform Twitch.tv browser for Streamlink

2,872 stars221 forksJavaScriptMIT

At a glance

What is it?
An EmberJS application inside NW.js that hands Twitch streams to the player you already use. The newest release is v2.5.3 from November 2024, the branch has moved for two years since without a release, and instead of stating whether development continues the README sends you to an issue number.
Who is it for?
Adopt Streamlink Twitch GUI if you want Twitch streams in the player you already use, on Windows, macOS or Linux, and you are prepared to install the Streamlink command line interface as well, because the GUI cannot launch a stream without it. Do not adopt it expecting an actively versioned desktop app: the newest release is v2.5.3 from 2024-11-04, the last push was on 2026-09-14, and the README points at issue 1045 for the development status rather than stating it.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 13 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • streamlink/streamlink-twitch-gui2,872 ★ · +2
Star history
Repository2026-10-042026-11-13
streamlink/streamlink-twitch-gui2.9k2.9k

2 Stars in the last 40 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The page points at an issue number for its own status

The second element of the README is an admonition block, and it is the most consequential line on the page:

Please see issue 1045 regarding the development status of this project.

That is the entire statement. The README does not say whether development is active, paused or finished, and it does not point at a status badge that would. Everything a reader would normally use to answer that question is delegated to a single issue.

The release history supports the reason for the caution. Three tags are visible: v2.5.1 on 2024-05-06, v2.5.2 on 2024-05-17 and v2.5.3 on 2024-11-04. The last push to the branch was on 2026-09-14.

So there are two years of commits after the newest tag, and the manifest still reads 2.5.3. Nothing was cut for them. That is a very different situation from a project that released twice in 2026 and happened to leave an old tag visible, and it is why the status question is not a formality.

For an adopter, the practical order is: read issue 1045 first, then decide whether the two years of unreleased commits are something you want to build on.

EmberJS, Handlebars and LessCSS inside an NW.js shell

The architecture paragraph is unusually explicit about what the application is made of.

Streamlink Twitch GUI is an NW.js application, which means it is a web application written in JavaScript with EmberJS, in HTML with Handlebars, and in CSS with LessCSS, and it is run by a Node.js powered version of Chromium.

That combination dates the codebase, and package.json confirms it rather than merely implying it. The Ember pieces are ember-source at 3.7.1, ember-data at 3.9.0, ember-data-model-fragments, ember-fetch, ember-intl at 5.7.0 and ember-inflector. The presentation layer is bootstrap at 3.3.1 and font-awesome at 4.7.0. ember-intl is what backs the multiple-languages feature.

The runtime floor is stated as a single engine:

json
"private": true,
"engines": {
	"node": ">=20.9.0"
},

So a 2018-era front end stack is being built with a Node toolchain from 2023 or later, inside a Chromium that NW.js updates independently of the Ember version. That is the trade for using a web view instead of native widgets, and it is the reason the feature list can afford things like automatic light and dark themes.

`private` being true means the package is never published to npm, so there is no install-by-dependency route and no version resolution to reason about. You install a built binary or you build it.

Two runtime dependencies come from GitHub, one from a branch

Most of the dependency list is ordinary version-pinned packages from the registry. Two entries are not.

`ember-localstorage-adapter` is specified as `github:bastimeyer/ember-localstorage-adapter#update-ember-latest`, so it is resolved from a git branch rather than a published version, and the branch name says what it is for. `snoretoast` is `github:bastimeyer/snoretoast#v0.7.0-binaries`, pinned to a tag.

Both point at the same GitHub account that owns every donation link on the README. That is coherent for a single-maintainer project, and it is also a build that depends on two repositories outside any registry, one of which is a moving branch. A fresh clone on a different day can resolve different code.

One more entry is worth reading closely: `global-tld-list` is pinned to an exact patch, 0.0.488. That is the public suffix list, and pinning it exactly is how a project stops silently picking up new top-level domains. For an application that stores credentials for a logged-in site, that is the right instinct.

The rest of the runtime list is small utility packages: `entities`, `growly`, `minimist`, `punycode`, `semver`, `flag-icons` and `roboto-fontface`.

The GUI cannot launch a stream without a separate Streamlink install

The Download section contains the warning that decides whether this project is usable for you, and it is repeated in bold.

Streamlink Twitch GUI, as the name already suggests, is only a graphical user interface built on top of the Streamlink command line interface. That means Streamlink has to be installed on your system in order to be able to launch streams.

So the install is two projects. The GUI is the desktop application; Streamlink is the component that actually resolves a stream and hands it to a player. The README defers both to the project wiki, which carries detailed installation and configuration guides and, usefully, a list of supported packages for your platform. The README itself publishes no package names, no download commands and no version requirements for either half.

The development version route is the one exception, because it is self-contained: clone the repository and build off the master branch, with further instructions in CONTRIBUTING.md.

That dependency is also why the feature list is phrased around browsing rather than playing. You can browse streams by popularity, game, channel or team, reach your followed streams and channels, filter by channel or broadcasting language, get desktop notifications when a stream starts and use the settings menu, per-channel settings, themes, hotkeys and command line parameters. Playing happens in the player you choose, not in this window.

It plays in your own player, and it bypasses Twitch's ads

The Why section diagnoses the problem in physical terms rather than aesthetic ones.

The bad viewing experience on Twitch.tv is attributed to their resource-heavy website and HTML5 video player. On mobile and desktop devices, high CPU and memory usage and a lack of GPU acceleration in the web browser cause buffering, stuttering and low playback frame rates, while draining the battery and spinning up fans. On desktop computers, watching while multi-tasking is itself the problem.

The remedy follows from the diagnosis. Because you are not dependent on a web browser, streams play in the video player of your choice, which is what enables smooth playback. Depending on the player, further features become available, such as timeshift support or resolution and framerate upscaling. And Streamlink's variable stream buffers help counter bad network conditions or reduce latency further.

Then the sentence that belongs in any assessment of this project: please bear in mind that you are bypassing any ads run by Twitch by using this software. The README goes on to ask that if you want to support Twitch or an individual broadcaster, you consider buying Twitch Prime or subscribing to that channel.

So the ad bypass is stated by the project itself, in its own words, alongside a request to compensate the platform. That framing is part of what you are adopting, and it is worth reading before you install rather than after.

The build is grunt release, and the output directory is committed

Building from source is three commands, after installing stable Git, Node.js and Yarn:

bash
git clone https://github.com/streamlink/streamlink-twitch-gui.git
cd streamlink-twitch-gui
yarn install
yarn run grunt release

The build tool is Grunt, driven from a `Gruntfile.js` at the repository root, and the output lands inside the `build/releases` folder. That is not the Ember CLI pipeline of the era the dependencies suggest; it is a hand-assembled Gruntfile, which is also why `build/` appears in the top-level listing as a committed directory rather than a generated one you ignore.

The devDependencies explain the rest of the setup, and they are a long list of Babel plugins. Several exist for one purpose: `babel-plugin-ember-modules-api-polyfill`, `babel-plugin-ember-modules-api`, `babel-plugin-feature-flags`, and two plugins named for stripping Ember's build-time validation helpers, `babel6-plugin-strip-class-callcheck` and `babel6-plugin-strip-heimdall`. Carrying the stripping plugins means the build removes those assertions instead of keeping them.

One more devDependency is worth noting: `chrome-remote-interface`, a client for the Chrome DevTools Protocol. And here is the gap. The README carries a code coverage badge and the root has a `.codecov.yml`, yet no test directory appears in the top-level listing. Coverage is measured somewhere this tree does not show.

One maintainer, four payment links, and a translating path

The support section is a single maintainer and four ways to pay him.

package.json names the author as Sebastian Meyer, and every donation route points at the same account: GitHub Sponsors under a `bastimeyer` sponsorship page, a PayPal button, a PayPal.me address, and a Bitcoin address given both as a link and as the literal string `1EZg8eBz4RdPb8pEzYD9JEzr9Fyitzj8j8`.

That consistency is worth noticing for a different reason. The two GitHub-resolved runtime dependencies in the previous section also point at `bastimeyer`, so the same account owns the application, the adapter fork and the toast library it depends on.

The contribute section names the cheapest way to help, translating or improving translations, and points at a Translating section on the wiki with a beginner's guide. That pairs with the ember-intl dependency and the multiple-languages feature.

The root itself is sixteen entries: dotfiles for Codecov, EditorConfig and ESLint, a .github/ directory, CHANGELOG.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, Gruntfile.js, LICENSE, README.md, build/, package.json, src/ and yarn.lock. A changelog and a code of conduct are present; a test directory is not.

Editorial conclusion

Adopt Streamlink Twitch GUI if you want Twitch streams in the player you already use, on Windows, macOS or Linux, and you are prepared to install the Streamlink command line interface as well, because the GUI cannot launch a stream without it. Do not adopt it expecting an actively versioned desktop app: the newest release is v2.5.3 from 2024-11-04, the last push was on 2026-09-14, and the README points at issue 1045 for the development status rather than stating it. Verify what that issue says before you build anything on it, since it decides whether you are adopting a maintained project or a frozen one, then check the wiki's per-platform package list for your operating system.

Frequently asked questions

Is Streamlink command line only?

Not with this project. Streamlink Twitch GUI is a graphical user interface built on top of the Streamlink command line interface, an NW.js application written in JavaScript with EmberJS, HTML with Handlebars and CSS with LessCSS, run by a Node.js powered Chromium. Streamlink itself still has to be installed, because the command line interface does the launching.

Which platforms support Streamlink?

Streamlink Twitch GUI lists itself as available on Windows, macOS and Linux. Installation and configuration guides, along with a list of supported packages for your platform, are in the project wiki rather than in the README.

How do you use Streamlink on PC?

The GUI sits on top of the Streamlink command line interface and needs both, since Streamlink has to be installed on your system to launch streams; the wiki carries the installation and configuration guides. Features include watching multiple streams at once, browsing by popularity, game, channel or team, followed streams, language filters, desktop notifications, light and dark themes, hotkeys and command line parameters.

Is there a Twitch app available for Linux?

Streamlink Twitch GUI lists Linux among its three supported platforms, Windows, macOS and Linux. The README publishes no package list of its own and says the wiki includes a list of supported packages for your platform.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. streamlink/streamlink-twitch-gui on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/streamlink-streamlink-twitch-gui.svg)](https://hysenlabs.com/projects/streamlink-streamlink-twitch-gui)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/streamlink-streamlink-twitch-gui.svg)](https://hysenlabs.com/projects/streamlink-streamlink-twitch-gui)

Was this useful?