Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Greenlight

Build/DesktopBuild/Docs

Quality Gate StatusLines of CodeVulnerabilitiesMaintainability Rating

Greenlight is an open-source client for xCloud and Xbox home streaming made in Javascript and Typescript. The client is an application wrapper around xbox-xcloud-player. The application runs on Linux, macOS, Windows and Steam Deck.

DISCLAIMER: Greenlight is not affiliated with Microsoft, Xbox or Moonlight. All rights and trademarks are property of their respective owners.

Features

  • Stream video and audio from the Xbox One and Xbox Series
  • Support for gamepad controls
  • Supports rumble on xCloud
  • Keyboard controls
  • Build-in online friends list

Install

Install from Flathub:

Install on Flathub

Download pre-compiled binaries:

Latest releases can be found here.

Compile from source

See Local development.

Keyboard controls

Keys are mapped as following by default:

Dpad: Keypad direction controls
Buttons: A, B, X, Y, Backspace (Mapped as B), Enter (Mapped as A)
Nexus (Xbox button): N
Left Bumper: [
Right Bumper: ]
Left Trigger: -
Right Trigger: =
View: V
Menu: M

Streaming stats

During the stream you can show debug statistics that contain extra data about the buffer queues and other information. To bring this up you can press ~ on your keyboard.

At the bottom-left you can see the status (although not always accurate). At the top-right you can find the FPS of the video and audio decoders including the latency. At the bottom-right you can find debug information about the buffer queues and other information that is useful for debugging perposes.

When possible always provide this information with your issue, if it is related.

Online friends list

The application also provides a way to see which of your friends are online. This can be useful when you want to quickly check if anyone is online to play with :)

Steam Deck Setup

This application is reported to be working on the Steam Deck with some small bugs and side-effects. You can map one of the Steam Deck back buttons to the 'N' key to simulate the Xbox button.

Optional launch arguments

ArgumentDescription
--fullscreenStarts the application in fullscreen
--connect=Will start stream once the user is authenticated.

For console use F000000000000000 format and for xCloud use xcloud_<title>.

To close the application

Click on the Xbox logo at the top-left. It will ask you to confirm to close the window.

Local Development

Requirements

Steps to get up and running

Clone the repository:

git clone https://github.com/unknownskl/greenlight.git
cd greenlight

Install dependencies:

yarn

Run development build:

yarn desktop dev

Create production build:

yarn desktop build

Translations

Want to help out with new translations? Help us on https://poeditor.com/join/project/9SfHRQDbfN

Changelog

See changelog.

About

Greenlight is an open-source client for xCloud and Xbox home streaming made in Typescript.

Topics

Resources

Stars

2.9k stars

Watchers

29 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages