What is the OSK file format?
An .osk file is an osu! Skin Package - a ZIP archive containing all the visual and audio assets that change the appearance and sounds of the osu! rhythm game. Renaming an .osk file to .zip allows any archive utility to inspect or extract its contents.
Inside the archive you will find:
skin.ini- a plain-text configuration file declaring metadata, element mappings, and aVersionfield (e.g.Version: 2.5) that tells the game which skin capabilities are active- PNG or JPG image assets for hit circles, sliders, cursors, combo counters, and UI panels
- WAV or OGG audio samples for hit sounds, menu clicks, and combo effects
High-definition skins include @2x-suffix variants of each image asset for high-DPI displays. File sizes range from a couple of megabytes for minimal skins to roughly 100 MB for HD packs with full custom artwork and audio.
The ZIP container uses DEFLATE compression per entry for most assets; some entries may be stored uncompressed. There is no versioning on the .osk container itself - all version information lives inside skin.ini.
osu!(lazer), the cross-platform rewrite of osu!, retains full .osk compatibility across Windows, macOS, Linux, Android, and iOS. Related osu! formats include .osz for beatmap packages and .osr for replay recordings - all three are ZIP-based archives distinguished by their internal contents.
Security & safety
RISK: LOWOSK files are ZIP archives containing images and audio - no executable code. They cannot run malware. Exercise normal caution with skins from unknown sources; community skins from the official osu! forums are generally safe. Avoid downloading 'skin packs' from third-party sites that bundle executable files alongside skins.
Format details
in a nutshellPrograms that open OSK files
Technical details
deep spec| Container | ZIP archive (PKZIP format) |
| Compression | DEFLATE per entry (PNG and OGG assets); some entries stored uncompressed |
| Byte order | Little-endian (ZIP format) |
| Magic bytes | 50 4B 03 04 ("PK\x03\x04") at offset 0 - standard ZIP local file header |
| Typical size | 1 MB - 100 MB (basic skins a few MB; HD skins with high-res artwork up to ~100 MB) |
| Skin config file | skin.ini - plain-text config declaring skin metadata and element references; Version field (e.g. Version: 2.5) determines skin capabilities |
| Image assets | PNG (32-bit RGBA for transparency) and JPG; HD skins include @2x-suffix variants for high-DPI displays |
| Audio assets | WAV and OGG hit sounds; 44,100 Hz sample rate typical |
| Integrity | CRC32 per-entry checksum (standard ZIP); no separate package-level checksum |
| Asset identification | Distinguished from plain ZIP by presence of skin.ini and osu!-specific asset filenames (e.g. hitcircle.png, cursor.png) |
| Platform support | Windows, macOS, Linux; Android and iOS via osu!(lazer) |
| Related osu! formats | .osz (beatmap package), .osr (replay file), .odb (database) - all ZIP-based archives |
| Released | 2007 (osu! first released September 2007) |
| Latest version | osu! skin format is not versioned separately; skin.ini specifies skin metadata; lastest osu!(lazer) skins follow same format |
| Specification | osu.ppy.sh |
OSK conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about OSK files.