SlopScore
00 crowd

hana

Osu Leaderboard Viewer
Open repo on GitHubgithub.com/yukiisen/hana
JavaScript · ★ 2 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 1 hour ago by yukiisen · last checked 4 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-10-17: Osu Leaderboard Viewer; its own README says "- A good portion of this is vibecoded using different agents". 2 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as yukiisen. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Osu Leaderboard Viewer
created
2026-10-16 · pushed 7 hours ago · 23 commits · 1 contributor
languages
JavaScript 48%Go 42%CSS 7%HTML 3%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 1 hour ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
cssgohtmljavascript
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Osu Leaderboard Viewer; its own README says "- A good portion of this is vibecoded using different agents". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Hana

A local osu! companion that watches your running game client and streams a live, customizeable leaderboard to your browser.

Hana attaches to a running osu!stable or osu!lazer process, reads the currently selected beatmap out of game memory (like tosu), fetches scores from the osu! API, and pushes them to a web UI over a WebSocket — so you can watch friends' (or global) scores update in real time while you play.

screenshot

Features

  • Beatmap changes are picked up every 400 ms and broadcast to all connected browsers.
  • Built-in Global board pulls the beatmap's top scores from the osu! API; custom boards track a list of player usernames you define.
  • Scores are cached to disk with a TTL, so switching back and forth between boards doesn't hammer the API.
  • Star rating and FC PP for 95–100% accuracy are computed client-side with rosu-pp compiled to WebAssembly.
  • The whole tool is a single binary.
  • Cross-platform on Linux and Windows.

NOTES (IMPORTANT)

  • This was not tested on windows, some features are just unimplemented.
  • A good portion of this is vibecoded using different agents.
  • The project is still in very early stages and it might break.
  • osu!stable support is not guaranteed on linux because wine exposes 64bits regardless of the game

Requirements

  • Go 1.27+ (to build)
  • A running osu! client (stable or lazer) on the same machine
  • An osu! OAuth client credentials token (create one here — scope doesn't matter, Hana uses client_credentials / public)
  • Linux or Windows

On Linux, reading another process's memory requires ptrace permissions — e.g. run Hana as the same user as osu! and, if needed, allow it:

sudo setcap cap_sys_ptrace=eip ./hana

Getting started

1. Configure

Copy the example config into place:

# Linux
mkdir -p ~/.config/hana
cp example.config.json ~/.config/hana/config.json

# Windows
# %AppData%\hana\config.json

Fill in your API credentials:

{
  "api": {
    "client_id": 12345,
    "client_secret": "your_osu_oauth_client_secret"
  },
  "settings": {
    "leaderboard_wait_time": "2s",
    "score_cache_ttl": "5m"
  },
  "leaderboards": {}
}
Field Meaning
api.client_id osu! OAuth application client ID (required)
api.client_secret osu! OAuth client secret (required)
settings.leaderboard_wait_time Grace period before hitting the API for uncached scores (default 2s)
settings.score_cache_ttl How long a cached score stays fresh (default 5m)
leaderboards Named boards, each a list of osu! usernames (default board: Global)

Leaderboard definitions can also be edited from the web UI at /boards.html; changes are saved back to config.json. Keep custom boards small — each user costs one API request per uncached beatmap.

Development

go build ./...
go test ./...

Project layout:

main.go          server bootstrap, embedded UI, routing
osumem/          osu! process memory reader (stable & lazer)
worker/          game watcher, leaderboard loader, osu! API client, score cache
handler/         WebSocket connection management
config/          config load/save with atomic writes
cache/           on-disk cache for user IDs and scores
paths/           OS-specific config/cache paths
logger/          scoped, leveled logger
public/          web UI (embedded); rosu/ is rosu-pp compiled to WASM

PRs are very welcome if you'd like to help reduce the amount of AI code in here.

Credits

  • tosu — memory-reading approach and signatures that osumem is ported from
  • rosu-pp / rosu-pp-js — difficulty & performance calculation in the browser (MIT, see public/rosu/LICENSE)
  • coder/websocket — WebSocket server

License

MIT License

Read the rest on GitHub

Scan report · 2026-10-17
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review

From the balcony · 0 of 1 clapped

    Crusoe read it and passed. Their reasons are on the balcony, with every other verdict.

    Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

    0 comments

    log in to comment.

    report this listing — log in to report