MCPcopy Index your code
hub / github.com/Novattz/creamlinux-installer

github.com/Novattz/creamlinux-installer @v1.5.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.5.6 ↗ · + Follow
423 symbols 806 edges 102 files 94 documented · 22%

Browse by type

Functions 324 Types & classes 99
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CreamLinux

CreamLinux is a GUI application for Linux that simplifies the management of DLC IDs in Steam games. It provides a user-friendly interface to install and configure CreamAPI (for native Linux games), SmokeAPI (for Windows games running through Proton) and ScreamAPI (Epic Games).

Watch the demo here:

Watch the demo

Beta Status

⚠️ IMPORTANT: CreamLinux is currently in BETA. This means:

  • Some features may be incomplete or subject to change
  • You might encounter bugs or unexpected behavior
  • The application is under active development
  • Your feedback and bug reports are invaluable

While the core functionality is working, please be aware that this is an early release. Im continuously working to improve stability, add features, and enhance the user experience. Please report any issues you encounter on GitHub Issues page.

Features

  • Auto-discovery: Automatically finds Steam games installed on your system
  • Native support: Installs CreamLinux for native Linux games
  • Proton support: Installs SmokeAPI for Windows games running through Proton
  • Epic Games support: Installs ScreamAPI for games running through Heroic/Legendary
  • DLC management: Easily select which DLCs to enable
  • Modern UI: Clean, responsive interface that's easy to use

Installation

AppImage (Recommended)

  1. Download the latest creamlinux.AppImage from the Releases page
  2. Make it executable: bash chmod +x creamlinux.AppImage
  3. Run it:

bash ./creamlinux.AppImage

For Nvidia users use this command:

WEBKIT_DISABLE_DMABUF_RENDERER=1 ./creamlinux.AppImage

Nix

You can add this package to your configuration using pkgs.fetchFromGitHub:

let
  creamlinux = import (pkgs.fetchFromGitHub {
    owner = "Novattz";
    repo = "creamlinux-installer";
    rev = "main"; # replace with a commit hash to pin the version
    hash = ""; # paste the value returned by the error your rebuild will output
  }) { inherit pkgs; };
in
{
  environment.systemPackages = [ creamlinux ];
}

or, using builtins.fetchTarball:

let
  creamlinux = import (builtins.fetchTarball {
    url = "https://github.com/Novattz/creamlinux-installer/archive/main.tar.gz";
    sha256 = ""; # See above
  }) { inherit pkgs; };
in
{
  environment.systemPackages = [ creamlinux ];
}

alternatively and if you want to pin the package version, using npins:

npins add github Novattz creamlinux-installer --branch main
let
  sources = import ./npins;
in
{
  environment.systemPackages = [
    (import sources.creamlinux-installer { inherit pkgs; })
  ];
}

Those are the recommended methods to add creamlinux-installer to your environment. However, you could also add it as an input of your flake, like so:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    creamlinux-installer = {
      type = "github";
      owner = "Novattz";
      repo = "creamlinux-installer";
      flake = false;
    };
  };
}

Then, in your configuration:

environment.systemPackages = [
  (import inputs.creamlinux-installer { inherit pkgs; })
];

Similarly to running the AppImage, you will need to set WEBKIT_DISABLE_DMABUF_RENDERER=1 if your GPU is from Nvidia in order to run the package.

Building from Source

Prerequisites

  • Rust 1.77.2 or later
  • Node.js 18 or later
  • webkit2gtk-4.1 (libwebkit2gtk-4.1 for debian)
  • npm or yarn

Steps

  1. Clone the repository:

bash git clone https://github.com/Novattz/creamlinux-installer.git cd creamlinux-installer

  1. Install dependencies:

bash npm install # or yarn

  1. Build the application:

bash NO_STRIP=true npm run tauri build

  1. The compiled binary will be available in src-tauri/target/release/creamlinux

Desktop Integration

If you're using the AppImage version, you can integrate it into your desktop environment:

  1. Create a desktop entry file:

bash mkdir -p ~/.local/share/applications

  1. Create ~/.local/share/applications/creamlinux.desktop with the following content (adjust the path to your AppImage):

[Desktop Entry] Name=Creamlinux Exec=/absolute/path/to/CreamLinux.AppImage Icon=/absolute/path/to/creamlinux-icon.png Type=Application Categories=Game;Utility; Comment=DLC Manager for Steam games on Linux

  1. Update your desktop database so creamlinux appears in your app launcher:
update-desktop-database ~/.local/share/applications

Troubleshooting

Common Issues

  • Game doesn't load: Make sure the launch options are correctly set in Steam
  • DLCs not showing up: Try refreshing the game list and reinstalling
  • Cannot find Steam: Ensure Steam is installed and you've launched it at least once

Debug Logs

Logs are stored at: ~/.cache/creamlinux/creamlinux.log

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 273
Interface 66
Method 51
Class 29
Enum 4

Languages

Rust52%
TypeScript48%

Modules by API surface

src-tauri/src/main.rs34 symbols
src-tauri/src/installer/mod.rs26 symbols
src-tauri/src/cache/storage.rs26 symbols
src/contexts/AppProvider.tsx24 symbols
src-tauri/src/cache/version.rs15 symbols
src-tauri/src/searcher.rs12 symbols
src-tauri/src/unlockers/smokeapi.rs11 symbols
src-tauri/src/unlockers/screamapi.rs11 symbols
src-tauri/src/reporting.rs10 symbols
src-tauri/src/config.rs10 symbols
src/components/games/GameItem.tsx9 symbols
src-tauri/src/unlockers/koaloader.rs9 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page