MCPcopy Index your code
hub / github.com/OpenCloudGaming/OpenNOW

github.com/OpenCloudGaming/OpenNOW @v1.3.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.5 ↗ · + Follow
902 symbols 2,051 edges 49 files 114 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

OpenNOW

OpenNOW logo

An open-source desktop client for GeForce NOW.

Browse the catalog, tune your stream, and launch sessions from a community-built app.

Download Documentation Auto Build Discord

Stars Downloads License

OpenNOW application preview

[!WARNING] OpenNOW is under active development. Expect occasional bugs, rough edges, and platform-specific issues while the client matures.

[!IMPORTANT] OpenNOW is an independent community project and is not affiliated with, endorsed by, or sponsored by NVIDIA. NVIDIA and GeForce NOW are trademarks of NVIDIA Corporation. You must use your own GeForce NOW account.

Overview

OpenNOW is a community-built Electron app for playing GeForce NOW from an open-source desktop client. The active implementation lives in opennow-stable/ and uses Electron, React, and TypeScript across the main, preload, and renderer processes.

The project aims to give players a transparent, customizable alternative to the official client without hiding the technical parts from contributors.

Highlights

  • Open-source desktop client for Windows, macOS, and Linux
  • Catalog and public game browsing with search and library-aware session handling
  • Stream controls for codec, resolution, FPS, aspect ratio, region, and quality preferences
  • In-stream diagnostics overlay with latency, packet loss, decode, and render stats
  • Built-in screenshots, recording, microphone controls, and controller-friendly navigation
  • Local settings storage and zero-telemetry project direction

Quick Start

Download

Grab the latest build from GitHub Releases.

Current packaging targets:

Platform Formats
Windows NSIS installer, portable executable
macOS dmg, zip
Linux x64 AppImage, deb
Linux ARM64 AppImage, deb

Develop Locally

From the repository root:

cd opennow-stable
npm install
cd ..
npm run dev

Useful root scripts:

npm run dev
npm run build
npm run typecheck
npm run dist

For a fuller setup guide, see docs/development.md.

Repository Layout

.
├── opennow-stable/   Electron app workspace
├── docs/             Local project documentation
├── .github/          Workflows, templates, contributing docs
├── logo.png          Project logo
└── img.png           App preview image

Documentation

Architecture At A Glance

OpenNOW is split into three Electron layers:

Layer Tech Responsibility
Main Electron + Node.js OAuth, CloudMatch/session orchestration, signaling, caching, local file handling
Preload Electron contextBridge Safe IPC bridge between the app shell and UI
Renderer React + TypeScript Login flow, browsing, settings, WebRTC playback, diagnostics, controls

The code lives under opennow-stable/src/, with shared TypeScript types and IPC contracts in opennow-stable/src/shared/.

Contributing

Contributions are welcome. If you want to help:

  1. Read the contributing guide.
  2. Run npm run typecheck and npm run build before opening a PR.
  3. Keep changes focused and explain user-facing impact clearly.

FAQ

Is this the official GeForce NOW client?

No. OpenNOW is a third-party, community-maintained client.

Does OpenNOW collect telemetry?

The current project direction is zero telemetry. Settings and media stay on the local machine, and authentication is performed against NVIDIA services.

What happened to the earlier Tauri/Rust version?

The active client in this repository is the Electron-based app in opennow-stable/.

Star History

Star History Chart

License

OpenNOW is licensed under the MIT License.

Extension points exported contracts — how you extend this code

ErrorMessageEntry (Interface)
Error message entry with title and description
opennow-stable/src/main/gfn/errorCodes.ts
CloudMatchErrorResponse (Interface)
CloudMatch error response structure
opennow-stable/src/main/gfn/errorCodes.ts
Window (Interface)
(no doc)
opennow-stable/src/renderer/src/vite-env.d.ts
UseControllerNavigationOptions (Interface)
(no doc)
opennow-stable/src/renderer/src/controllerNavigation.ts
ParsedShortcut (Interface)
(no doc)
opennow-stable/src/renderer/src/shortcuts.ts

Core symbols most depended-on inside this repo

log
called by 242
opennow-stable/src/renderer/src/gfn/webrtcClient.ts
get
called by 36
opennow-stable/src/main/settings.ts
set
called by 29
opennow-stable/src/main/settings.ts
timestampUs
called by 17
opennow-stable/src/renderer/src/gfn/webrtcClient.ts
sendReliable
called by 17
opennow-stable/src/renderer/src/gfn/webrtcClient.ts
toOptionalString
called by 15
opennow-stable/src/main/gfn/cloudmatch.ts
normalizeShortcut
called by 14
opennow-stable/src/renderer/src/shortcuts.ts
setState
called by 14
opennow-stable/src/renderer/src/gfn/microphoneManager.ts

Shape

Function 439
Method 284
Interface 154
Class 24
Enum 1

Languages

TypeScript100%

Modules by API surface

opennow-stable/src/renderer/src/gfn/webrtcClient.ts132 symbols
opennow-stable/src/shared/gfn.ts130 symbols
opennow-stable/src/main/gfn/auth.ts49 symbols
opennow-stable/src/renderer/src/App.tsx48 symbols
opennow-stable/src/main/index.ts46 symbols
opennow-stable/src/main/gfn/cloudmatch.ts39 symbols
opennow-stable/src/renderer/src/gfn/inputProtocol.ts35 symbols
opennow-stable/src/renderer/src/components/StreamView.tsx28 symbols
opennow-stable/src/main/gfn/games.ts26 symbols
opennow-stable/src/renderer/src/gfn/microphoneManager.ts23 symbols
opennow-stable/src/renderer/src/components/SettingsPage.tsx23 symbols
opennow-stable/src/renderer/src/components/QueueServerSelectModal.tsx21 symbols

For agents

$ claude mcp add OpenNOW \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact