Desktop prototype

DevelopmentPublic source · no packaged release

Hanami Companion

A local bridge for ideas that do not belong in a browser.

The public Tauri prototype uses Rust for process lifecycle, local play detection, and native authentication while React renders normalized state. It can connect to tosu, track local osu! activity, and sign in to Hanami Web; play upload remains unavailable.

View the source
Hanami Companion application icon
Current project icon. No packaged release is published yet.

Implemented now

A functional local prototype.

These capabilities are implemented in the public repository. The project remains in development and does not yet offer a packaged release.

tosu lifecycle

Connect to an existing tosu instance or launch and stop one owned by Companion.

Play detection

Track selected beatmaps and detect passed, failed, retried, and quit attempts.

Native Hanami sign-in

Authenticate through the system browser with Authorization Code and PKCE.

Data boundary

Local tracking first. Upload is deliberately unavailable.

Recent attempts stay in memory for the current desktop session. Hanami sign-in uses the system browser and PKCE; the access token stays in Rust memory and the refresh token is stored in the operating system credential store. Hanami Web does not yet expose a production play-ingestion endpoint.

  1. Local osu! session

    tosu reads local game state and exposes it over loopback.

  2. Companion listener

    The app normalizes state and detects meaningful play attempts.

  3. Hanami authentication

    Authorization Code with PKCE is implemented through the system browser.

  4. Play upload — planned

    No production ingestion endpoint is active, and attempts are never reported as uploaded.