Skip to content

Repository files navigation

directify

A feature-rich, unofficial client for catboy.best.
Seamlessly search, download, and manage your osu! beatmaps and beatpacks.

Latest release Downloads License Platform: Windows Open issues Stars

Download the latest release · Features · Installing · Development


directify is an osu!direct-style companion for osu!stable/osu!classic. Search and install beatmaps straight into your Songs folder, back your library up into portable "beatpacks", and manage collections, all from one desktop app. The actual beatmap search and download is handled by catboy.best (or any other compatible mirror you point it at).

Features

  • osu!lazer-style search: filter by mode (Standard/Taiko/Catch/Mania), mania key count, genre, language, and a min/max star-rating range, on top of the usual title/artist/tag search.
  • Multiple beatmap sources with automatic fallback: ships with catboy.best and osu.direct built in. Add your own compatible mirror, reorder the fallback chain, or disable one without removing it. If your first choice is down, directify quietly tries the next.
  • Library management: scans your Songs folder directly (no dependency on osu!'s own osu!.db), shows what's actually installed, and lets you bulk-select maps to add to a collection or delete.
  • Offline cover art: caches each map's cover image locally on install, and backfills it for maps you already had, so your library still looks right with no internet connection.
  • Collections editor: reads and writes osu!stable's collection.db directly. Changes show up in-game the next time you restart osu!.
  • Beatpacks (backup/restore): zip your whole library or a hand-picked subset into a portable archive, and restore it on any machine.
  • Light/dark theme, a reduce-motion toggle, keyboard shortcuts (press ? in the app), and proxy support (HTTP/HTTPS/SOCKS4/SOCKS5) for restricted networks.
  • Localized: English, Spanish, and Japanese ship today. More are welcome; see Contributing.

Installing

  1. Grab the latest portable .exe from Releases.
  2. Run it. No installer, no admin rights needed.
  3. That's it. Settings, cached cover art, and everything else directify needs live in your user AppData folder, not next to the .exe, so updating is just replacing the .exe with a newer one. directify checks GitHub Releases on launch and tells you in-app when a newer build is available.

Project layout

This repo is a pnpm monorepo holding the app itself and the libraries it depends on. The landing page at directify.pvrz.lol is closed-source and lives in a separate, private repo; it isn't part of this codebase.

Path What it is
apps/desktop The app: an Electron + React client. Beatmap source adapters live in apps/desktop/src/main/sources (a generic MirrorSource class works against any catboy.best-compatible API); apps/desktop/src/main/source-registry.ts handles the fallback chain and per-source rate limiting.
packages/shared Types shared across the app, plus the collection.db binary reader/writer.
packages/ui The app's design system: theme tokens, Button, Card, Icon, DualRangeSlider, and more.

Development

pnpm install
pnpm dev:desktop   # Electron app

Build a real portable .exe, the same thing the Releases page ships:

pnpm --filter @directify/desktop package

Run the shared-package tests (covers the collection.db round-trip):

pnpm --filter @directify/shared test

Contributing

Adding a language is just a new apps/desktop/src/renderer/src/locales/<code>.json (copy en.json and translate the values) plus registering it in apps/desktop/src/renderer/src/i18n.ts. Adding a beatmap source doesn't require any code at all: add it from Settings, as long as it exposes the same GET /api/search, GET /api/v2/s/:id, and GET /d/:id shape catboy.best does.

Disclaimer

directify is a fan-made, unofficial project. It is not affiliated with or endorsed by catboy.best, osu!, or ppy Pty Ltd.

About

A feature-rich, unofficial Windows client for catboy.best. Seamlessly search, download, and manage your osu! beatmaps and beatpacks.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages