# SkyStream runs four extension formats on one Flutter codebase

> SkyStream is a Flutter media streaming client for Android, iOS, desktop and TV whose sources all arrive through extensions, with a custom JavaScript runtime backing two of the four supported formats. It ships empty until you install something.

**akashdh11/skystream** — SkyStream is a modern, cross-platform media streaming client inspired by CloudStream. It uses a custom JavaScript runtime for plugins, allowing users to scrape and stream content from various sources on Android, iOS, Windows, macOS, and Linux from a single codebase.

- Repository: https://github.com/akashdh11/skystream
- Website: https://skystream.site/
- Stars: 645 · Forks: 66
- Language: Dart
- License: GPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/akashdh11-skystream

## The app ships without sources and depends on what you install

SkyStream is a client shell. The README warns up front that by default the app provides no video sources and that extensions must be installed to add functionality, so an install followed by an empty screen is the expected first experience rather than a broken one. The target user is someone who wants one media client on Android, iOS, Windows, macOS and Linux, with a support table that also lists Android TV, iOS marked as sideloading required, and a README that adds tvOS support. The project describes itself as inspired by CloudStream and explicitly states that it is an independent Flutter application, not a clone or fork of the official client, even though it accepts similar extension formats. That distinction matters for anyone reading documentation or expecting a feature set: the architectures overlap in intent, not in code.

## quick_js_ng is the runtime that makes extensions portable

The technical centre of the project is a custom cross-platform JavaScript engine named quick_js_ng, listed as the new engine with better execution and compatibility. Extensions written in JavaScript therefore run the same way on a phone, on a desktop and on a television, which is what allows one extension codebase to cover every target. The README says a single SkyStream plugin can carry several providers, can follow a site to its new domain when a provider moves, and can log what it does inside the app developer tools. Logging inside the app is the detail worth pausing on: extension authors get a feedback loop without attaching a debugger to a device. CloudStream .cs3 extensions are run on Android, iOS, macOS, Windows and Linux through the same runtime, which is where the portability claim is doing real work.

## Four extension families share one search bar

Extensions arrive in four shapes, all managed from Settings, Extensions. SkyStream plugins are the native format, one plugin can hold several providers. CloudStream extensions are added by repository URL, by a cloudstreamrepo:// link or by a shortcode. Nuvio plugins behave differently: their scrapers look for streams for the movies and shows you open from TMDB, and the results are listed together so you pick one. Stremio add-ons are installed by manifest URL or from the community directory. The search experience unifies them: one search bar covers all four, results are split into a section per source, and every result carries a tag saying which source it came from. That tagging is the practical reason the unified search works, since a provider that quietly returns an unrelated stream is visible rather than blended in.

## Getting it running: extensions first, then a catalogue

There is no documented build or install command in the README, and the repository ships as a Flutter project with per-platform directories for android/, ios/, linux/, macos/, windows/ and web/, alongside pubspec.yaml, pubspec.lock and analysis_options.yaml. The JavaScript side has its own package directory with a minimal package.json, and the only declared dependency there is an AI helper package:

```json
{
  "dependencies": {
    "headroom-ai": "^0.37.0"
  }
}
```

The practical first use is therefore configuration rather than installation: open Settings, Extensions, add a CloudStream repository by URL or shortcode, or add a Stremio add-on by manifest URL, then search. Expect to install extensions before any title appears. The README also flags DNS over HTTPS as a way to bypass ISP restrictions for improved access, and asks readers not to create or use extensions that host copyrighted media.

## Watch progress lives outside the app in Trakt, Simkl, MAL and AniList

State handling leans on external services. A multi-tracker sync keeps the watch list and progress consistent across Trakt, Simkl, MyAnimeList and AniList, so the app is not the single record of what you have seen. Around that sit the everyday playback controls: resume playback, playback speed selection, a default quality choice, an episode overlay that lets you browse and switch episodes inside the player, and detailed loading insights that show source details while content loads. Smart skip for intros and outros runs on IntroDB and Anime Skip integrations. Downloads for offline viewing and external player support are also listed, and subtitle styling covers font size and colours across OpenSubtitles, SubDL and Subsource.

## Discovery leans on TMDB while providers supply the streams

The division of labour between discovery and playback is worth noting. Trending, popular and filtered browsing comes from TMDB integration, which also covers the multi-language filtering across more than 40 languages and the option to make Explore the default landing screen. Actual playable sources come from extensions, not from TMDB. That is why plugin-wise search, which narrows a query to specific providers, and real-time suggestions while typing sit alongside the TMDB screens rather than replacing them. Nuvio fits this split exactly, since its scrapers find streams for a TMDB entry you have already opened. A user who expects the TMDB catalogue to be playable directly would misread the app; a user who wants good metadata and many independent providers will find the arrangement sensible.

## GPL-3.0 and releases measured in weeks

SkyStream is distributed under the GPL-3.0 licence, which carries obligations for anyone who modifies and redistributes the app rather than simply running it. On the maintenance side the project is moving quickly: v2.8.0 was published on 2026-09-21, v2.8.1 on 2026-09-28 and v2.9.0 on 2026-10-17, and the last push was on 2026-10-17. The repository carries a CHANGELOG.md, docs/, Website/, scripts/ and tool/ directories along with dart_test.yaml, integration_test/ and test_driver/ folders, so the project does have a test and tooling structure. The cost of that pace is upgrade churn for anyone packaging the app themselves. The README also lists performance work, a reduced app size, stability fixes and DNS over HTTPS as recent directions, which suggests active work on the runtime and the networking path rather than on new source providers.

## Where SkyStream loses to running a native client

The honest comparison is with CloudStream itself, the project SkyStream says it draws inspiration from. SkyStream rebuilds a JavaScript runtime and a plugin model to serve five targets from one codebase. That is a deliberate trade: SkyStream gives you the same catalogue on iOS, macOS, Windows, Linux and TV, and it accepts.cs3 extensions so existing extension libraries carry over. The cost is that some features are desktop compromises and the extension surface is not identical, which the README acknowledges when it calls itself a simplified, modern re-imagining. A second route exists for people who do not want to write JavaScript at all: Stremio add-ons, installed by manifest URL, which bring content without touching the quick_js_ng runtime. If plugin authoring is not part of your plan, that manifest based path is the cheaper entry point.

## Conclusion

SkyStream makes sense for a viewer who wants one catalogue across phones, desktops and TVs and is willing to install and vet extensions from third parties, and for the developer who wants to write providers in JavaScript against the quick_js_ng runtime. It does not make sense for someone who expects a self contained app with built in sources, for anyone who cannot accept that playback depends on the trustworthiness of an extension, or for a team that needs a stable API surface, since the changelog cadence measured in weeks implies frequent change. Verify three things first: that the extension you intend to install is one you trust, that iOS sideloading fits your device policy, and what the GPL-3.0 licence means for the way you plan to redistribute the app.

## FAQ

### What is SkyStream and why does it show no content after installing?

SkyStream is a Flutter based cross-platform media streaming client whose playback sources come from extensions, not from the app. The README states that by default it provides no video sources and that extensions must be installed to add functionality.

### Which extension formats can SkyStream run?

It runs SkyStream plugins, CloudStream .cs3 extensions, Nuvio plugins and Stremio add-ons, all managed from Settings, Extensions. CloudStream repositories are added by URL, a cloudstreamrepo:// link or a shortcode, and Stremio add-ons by manifest URL or from the community directory.

### Which platforms does SkyStream support?

The support table lists Android, Android TV, iOS with sideloading required, Windows, macOS and Linux. The README also mentions tvOS, and the feature list refers to Android TV and tvOS support.

### What licence does SkyStream use and what does that mean for redistribution?

The project is distributed under the GPL-3.0 licence. If you plan to modify and redistribute the app rather than only run it, the GPL-3.0 terms apply to that distribution and should be reviewed before you package it.

## Sources

- [akashdh11/skystream on GitHub](https://github.com/akashdh11/skystream)
- [License: GPL-3.0](https://github.com/akashdh11/skystream/blob/master/LICENSE)
- [Project website](https://skystream.site/)
- [README](https://github.com/akashdh11/skystream/blob/master/README.md)
- [Releases](https://github.com/akashdh11/skystream/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/akashdh11-skystream
