{"id":41209973,"url":"https://github.com/lytedev/slippi-nix","last_synced_at":"2026-01-22T22:54:28.520Z","repository":{"id":241818992,"uuid":"807716397","full_name":"lytedev/slippi-nix","owner":"lytedev","description":"A Flake for playing Super Smash Bros. Melee (via Slippi) online on NixOS","archived":false,"fork":false,"pushed_at":"2026-01-17T20:48:32.000Z","size":54,"stargazers_count":22,"open_issues_count":5,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-18T07:18:41.097Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lytedev.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-29T16:30:36.000Z","updated_at":"2026-01-17T20:48:35.000Z","dependencies_parsed_at":"2024-05-30T06:37:06.776Z","dependency_job_id":"f1a1d88a-52e4-43e3-bb8d-b6f7541c8b3c","html_url":"https://github.com/lytedev/slippi-nix","commit_stats":null,"previous_names":["lytedev/slippi-nix"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lytedev/slippi-nix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lytedev%2Fslippi-nix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lytedev%2Fslippi-nix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lytedev%2Fslippi-nix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lytedev%2Fslippi-nix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lytedev","download_url":"https://codeload.github.com/lytedev/slippi-nix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lytedev%2Fslippi-nix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28673280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T20:48:19.482Z","status":"ssl_error","status_checked_at":"2026-01-22T20:48:14.968Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-22T22:54:27.755Z","updated_at":"2026-01-22T22:54:28.507Z","avatar_url":"https://github.com/lytedev.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# slippi-nix\n\n[![build status](https://github.com/lytedev/slippi-nix/actions/workflows/build-and-cache.yaml/badge.svg)](https://github.com/lytedev/slippi-nix/actions/workflows/build-and-cache.yaml)\n\nThis project is a Flake which exposes NixOS modules for ensuring your GameCube\ncontroller adapter is performing as well is it can be and Home Manager modules\nfor installing and configuring the Slippi Launcher using NixOS-compatible\nversions of both the playback and netplay builds of Dolphin (Ishiiruka).\n\n**NOTE**: At this time, this Flake only supports the `x86_64-linux` `system`\n(since it consumes AppImages that support the same). If you are using Linux on\nanother CPU architecture, please reach out! If you are using macOS, install the\nlauncher from https://slippi.gg/downloads directly; I don't recommend using Nix\nto manage your Slippi installation in that case.\n\n# Usage\n\nThe simplest usage is to simply run the netplay package in this Flake:\n\n```shell\nnix run github:lytedev/slippi-nix#slippi-netplay\n```\n\nHowever, for the optimal experience, you will want to ensure the host has the\nnecessary configuration to handle a GameCube controller adapter. Additionally,\nyou likely want to make use of the Slippi Launcher for managing and viewing\nyour replays.\n\nIn your flake, you may optionally import the NixOS module for the overclocked\nadapter and you must import the Home Manager module for the Slippi Launcher. You\nwill also need to specify where your Melee ISO is. Here is an example:\n\n```nix\n{\n  inputs.nixpkgs.url = \"...\";\n  inputs.slippi.url = \"github:lytedev/slippi-nix\";\n  inputs.slippi.inputs.nixpkgs.follows = \"nixpkgs\";\n\n  outputs = {slippi, nixpkgs, ...}: {\n    nixosConfigurations = nixpkgs.lib.nixosSystem {\n      system = \"...\";\n      modules = [\n        slippi.nixosModules.default\n        {\n          home-manager = {\n            # ... snip -- see Home Manager's documentation for details\n            users.YOUR_USERNAME = {\n              imports = with outputs.homeManagerModules; [\n                slippi.homeManagerModules.default\n                {\n                  # use your path\n                  slippi-launcher.isoPath = \"/home/user/Downloads/melee.iso\";\n                }\n              ];\n            };\n          };\n        }\n      ];\n    };\n  };\n}\n```\n\nThere are other configuration options if you take a look at the flake's source.\nMost useful to me is:\n\n```nix\nslippi-launcher.launchMeleeOnPlay = false;\n```\n\nAs I prefer to be able to tweak Dolphin's settings before diving right in.\n\n# Updates\n\nNote that this does _not_ support the auto-updates performed by Slippi Launcher.\nInstead, when updates are pushed here, you must update your input reference to\nthis flake and then your system.\n\n```shell_session\nnix flake lock --update-input slippi-nix # use whatever name you gave this flake as input!\nsudo nixos-rebuild switch --flake .\n```\n\nIn the event that this repo is out-of-date and an update was newly pushed out\nand you do not want to wait, or you prefer to be in control, this Flake exposes\nextra configuration fields for specifying the version of the AppImage you want\nalong with the hash like so:\n\n```nix\n{\n  home-manager.users.YOUR_USERNAME = {\n    slippi-launcher.netplayVersion = \"3.4.0\";\n    slippi-launcher.netplayHash = \"sha256-d1iawMsMwFElUqFmwWAD9rNsDdQr2LKscU8xuJPvxYg=\";\n    slippi-launcher.netplayBetaVersion = \"4.0.0-mainline-beta.6\";\n    slippi-launcher.netplayBetaHash = \"sha256-CicAZ28+yiagG3bjosu02azV6XzP7+JnLhUJ3hdeQbI=\";\n    slippi-launcher.playbackVersion = \"3.4.0\";\n    slippi-launcher.playbackHash = \"sha256-d1iawMsMwFElUqFmwWAD9rNsDdQr2LKscU8xuJPvxYg=\";\n  };\n}\n```\n\nSo when a Slippi update is released, you can usually bump the version to match\nand update the hash with whatever `nix` says it is.\n\n# Beta\nYou can enable the beta netplay client by adding this to the configuration:\n```nix\n{\n  home-manager.users.YOUR_USERNAME = {\n    slippi-launcher.useNetplayBeta = true;\n  };\n}\n```\nThe beta netplay client is *not* downloaded unless it is enabled. When enabled it is set as the default as well.\n\n# Cache\n\nYou may also want to leverage our Cachix binary cache. There isn't _much_\npurpose to it since the \"build\" steps are just unpacking the AppImages and\nrepacking them in a format that works with Nix, but they graciously provide one\nto us freely.\n\n```nix\nnixConfig = {\n  extra-substituters = [\"https://slippi-nix.cachix.org\"];\n  extra-trusted-public-keys = [\"slippi-nix.cachix.org-1:2qnPHiOxTRpzgLEtx6K4kXq/ySDg7zHEJ58J6xNDvBo=\"];\n};\n```\n\n# To Do\n\nIt would be nice if Home Manager weren't strictly necessary. At the moment,\nI believe the config file _could_ be created via a NixOS module (using\n`systemd.tmpfiles.rules` or something?), but the ideal scenario would be to\ninstead either be to specify to the launcher where the netplay and playback\nbinaries are without the configuration file -- perhaps via command line\narguments or environment variables.\n\nIf this were true, you could simply `nix run github:lytedev/slippi-nix#netplay`\nand start playing right away, which is ideal!\n\n# License\n\nThis project is licensed under the [MIT](./license) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flytedev%2Fslippi-nix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flytedev%2Fslippi-nix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flytedev%2Fslippi-nix/lists"}