Repolode
ppy

ppy/osu

Open-source client for the osu! rhythm game, codenamed lazer, written in C# and targeting desktop and mobile platforms.

Stars
19,299
Forks
2,858
Open issues
1,883
Last commit
yesterday

What is it?

osu! is a free rhythm game where players click, tap and drag in time with music, using beatmaps that define hit objects for each song. This repository holds the next-generation client, released under the codename "lazer", which is intended to eventually replace the closed-source osu!stable client. It is built in C# on the .NET SDK and covers the game's four modes: osu!, taiko, catch and mania.

The client runs on Windows, macOS, Linux, Android and iOS, with platform-specific solution files for desktop, Android and iOS development. The codebase also exposes a ruleset system, letting developers build new gameplay variations that reuse the beatmap library, game engine and user interface. Templates for custom rulesets are provided in the repository.

Contributors can build the project from an IDE such as Visual Studio, Rider or VS Code, or from the command line with dotnet run. Code is MIT licensed, while game resources fall under a separate license.

Key features

  • 01Supports the osu!, taiko, catch and mania game modes.
  • 02Runs on Windows, macOS, Linux, Android and iOS.
  • 03Provides a ruleset system for building custom gameplay variations.
  • 04Includes platform-specific solution files and a command-line build workflow.
  • 05Offers templates for developing new rulesets.

Use cases

  • Playing osu! rhythm maps on a desktop or mobile device.
  • Building a new ruleset that reuses the osu! beatmap engine and UI.
  • Studying or contributing to a large cross-platform C# game client.

Quick start

  1. 1

    Install the .NET SDK from the official download page

  2. 2

    Clone the repository

    git clone https://github.com/ppy/osu
  3. 3

    Enter the project directory

    cd osu
  4. 4

    Build and run the desktop game from the command line

    dotnet run --project osu.Desktop

Things to know

  • Development builds are under constant change, so the game may be unstable compared to releases.
  • Mobile builds require extra Android or iOS tooling installed through dotnet workload restore.

Topics

FAQ

What is osu?
Open-source client for the osu! rhythm game, codenamed lazer, written in C# and targeting desktop and mobile platforms. osu! is a free rhythm game where players click, tap and drag in time with music, using beatmaps that define hit objects for each song. This repository holds the next-generation client, released under the codename "lazer", which is intended to eventually replace the closed-source osu!stable client. It is built in C# on the .NET SDK and covers the game's four modes: osu!, taiko, catch and mania.
Is osu free to use? What license does it have?
osu is open source under the MIT license. Check the license terms before using it in commercial products.
Is osu still maintained?
Actively maintained. The last commit to osu was on Oct 20, 2026.
What can I use osu for?
Playing osu! rhythm maps on a desktop or mobile device. Building a new ruleset that reuses the osu! beatmap engine and UI. Studying or contributing to a large cross-platform C# game client.
How do I install osu?
Install the .NET SDK from the official download page Clone the repository: git clone https://github.com/ppy/osu Enter the project directory: cd osu Build and run the desktop game from the command line: dotnet run --project osu.Desktop
Where can I get osu?
The source code and installation instructions are on GitHub: https://github.com/ppy/osu

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects