# How to Use Alternative Servers with osu-winello: A Complete Guide to the `--devserver` Flag

> Learn how to use alternative servers with osu-winello using the devserver flag. Connect to servers like Akatsuki or Gatari with this complete guide. Maximize your osu! experience today.

- Repository: [NelloKudo/osu-winello](https://github.com/nellokudo/osu-winello)
- Tags: how-to-guide
- Published: 2026-03-07

---

**You can connect osu! to alternative servers like Akatsuki or Gatari by passing `--devserver <address>` to the `osu-wine` launcher or by setting `POST_LAUNCH_ARGS="-devserver <address>"` in a configuration file inside `~/.local/share/osuconfig/configs/`.**

The `osu-winello` project by **nellokudo** provides a Linux wrapper for osu! that simplifies Wine prefix management and launch configuration. When you want to test beatmaps on a private server or compete on alternative leaderboards, you need to redirect the game client away from the official osu! servers. Understanding how `osu-winello` handles command-line arguments allows you to seamlessly switch between server environments.

## Understanding the osu-winello Launch Architecture

`osu-winello` uses a Bash wrapper script named `osu-wine` located at the repository root. This script acts as the intermediary between your terminal commands and the actual `osu!.exe` process running inside the Wine prefix.

The wrapper implements a configuration system that reads every `*.cfg` file from `$XDG_DATA_HOME/osuconfig/configs` (defaulting to `~/.local/share/osuconfig/configs`). Within these files, you define two critical variables:

- **`PRE_LAUNCH_ARGS`**: Arguments prepended before the Wine binary (e.g., `gamemoderun`, `prime-run`).
- **`POST_LAUNCH_ARGS`**: Arguments appended after `osu!.exe` (e.g., `-devserver`, `-screen-width`).

When you invoke `osu-wine`, the script's `LaunchOsu` function assembles the final command by combining these variables with any runtime flags you provide.

## Method 1: Temporary Connection via Command Line

For one-time connections to an alternative server, use the built-in `--devserver` flag. The wrapper script explicitly handles this case in lines 200–204 of `osu-wine`:

```bash
--devserver)
    LaunchOsu "-devserver" "${@:2}"
    ;;

```

This passes `-devserver` followed by your server address directly to `osu!.exe`.

**Example: Connect to Akatsuki for a single session**

```bash
osu-wine --devserver akatsuki.gg

```

**Example: Connect to Gatari**

```bash
osu-wine --devserver gatari.pw

```

The game launches immediately and routes all score submissions and leaderboard requests to the specified server. When you close osu! and relaunch without the flag, it reverts to the official servers.

## Method 2: Persistent Configuration via Config Files

If you primarily play on a specific alternative server, hardcoding the flag into a configuration file prevents you from typing the address repeatedly. The repository includes an [`example.cfg`](https://github.com/nellokudo/osu-winello/blob/main/example.cfg) in [`stuff/example.cfg`](https://github.com/nellokudo/osu-winello/blob/main/stuff/example.cfg) demonstrating this pattern.

**Step 1: Create or edit a config file**

```bash
mkdir -p ~/.local/share/osuconfig/configs
nano ~/.local/share/osuconfig/configs/private-server.cfg

```

**Step 2: Set POST_LAUNCH_ARGS**

Add the following line to the file:

```bash
POST_LAUNCH_ARGS="-devserver gatari.pw"

```

Save and exit. The `osu-wine` script sources all `.cfg` files from this directory on every launch, automatically appending `-devserver gatari.pw` to the executable arguments.

**Verification**

Simply run:

```bash
osu-wine

```

The game connects to Gatari without requiring additional flags.

## Combining Devserver with Other Launch Arguments

Alternative servers often run older protocol versions or benefit from performance tweaks. You can combine `-devserver` with other flags using both `PRE_LAUNCH_ARGS` and `POST_LAUNCH_ARGS`.

**Example: Gamemode + Devserver**

Create `~/.local/share/osuconfig/configs/performance.cfg`:

```bash
PRE_LAUNCH_ARGS="gamemoderun"
POST_LAUNCH_ARGS="-devserver akatsuki.gg"

```

**Example: NVIDIA Optimus + Custom Server**

```bash
PRE_LAUNCH_ARGS="prime-run"
POST_LAUNCH_ARGS="-devserver my.custom.server.com"

```

**Example: One-time override with existing config**

If you have `POST_LAUNCH_ARGS` set in a config file but want to temporarily use a different server, pass `--devserver` on the command line. The script's argument parsing ensures that explicit CLI flags take precedence or combine correctly with the config-based `POST_LAUNCH_ARGS`.

```bash

# Config contains: POST_LAUNCH_ARGS="-devserver gatari.pw"

# Override for one launch:

osu-wine --devserver akatsuki.gg

```

## Summary

- **`osu-wine --devserver <address>`** provides immediate, temporary connections to alternative osu! servers like Akatsuki or Gatari.
- **Persistent configuration** is achieved by setting `POST_LAUNCH_ARGS="-devserver <address>"` in any `.cfg` file inside `~/.local/share/osuconfig/configs/`.
- The wrapper script at `osu-wine` (lines 200–204) handles the `--devserver` flag by passing `-devserver` directly to `osu!.exe` via the `LaunchOsu` function.
- You can combine server switching with performance tools like `gamemoderun` or `prime-run` using `PRE_LAUNCH_ARGS` and `POST_LAUNCH_ARGS` together.

## Frequently Asked Questions

### What servers support the `-devserver` flag?

The `-devserver` flag is respected by the official osu! client when connecting to community-run alternative servers such as **Akatsuki** (`akatsuki.gg`), **Gatari** (`gatari.pw`), and most other private server implementations that mirror the official bancho protocol. The flag simply tells the client which IP address or domain to use for its initial connection handshake.

### Can I switch between official and alternative servers quickly?

Yes. If you use the command-line method (`osu-wine --devserver <address>`), simply omit the flag to connect to official servers. If you use a config file, you can create multiple `.cfg` files (e.g., [`akatsuki.cfg`](https://github.com/nellokudo/osu-winello/blob/main/akatsuki.cfg) and [`official.cfg`](https://github.com/nellokudo/osu-winello/blob/main/official.cfg)) and move or rename them to enable/disable the `POST_LAUNCH_ARGS` line, or comment it out with `#` when you want to revert to the official server.

### Where are the osu-winello configuration files stored?

Configuration files reside in `$XDG_DATA_HOME/osuconfig/configs`, which defaults to `~/.local/share/osuconfig/configs/` on most Linux distributions. The `osu-wine` wrapper script sources every `*.cfg` file found in this directory during launch, allowing you to modularize settings like `PRE_LAUNCH_ARGS` and `POST_LAUNCH_ARGS` across multiple files.

### Does using a devserver affect performance or compatibility?

Connecting to an alternative server does not inherently change the client's rendering or audio performance; however, some private servers run older protocol versions that may lack newer osu! features. Additionally, network latency to the alternative server may differ from the official infrastructure. You can still use performance wrappers like `gamemoderun` or `mangohud` via `PRE_LAUNCH_ARGS` without conflict when using a devserver.