Features

What Kairo actually does.

Described plainly, including the limits. Most of these exist because something specific went wrong and was fixed.

Downloads

The download engine

Real pause and resume

Pausing stops the transfer and keeps what has been downloaded, along with a record of which source it came from. Starting again continues from that point.

Kairo only continues when the source is the same one those bytes came from. If it has moved to a different mirror, or the file is gone, it starts cleanly instead - mixing two sources would produce an archive of exactly the right size and entirely wrong contents.

Cancel means cancel

Cancelling deletes the partly downloaded file. That is the difference between Cancel and Pause, and it is why the temp folder does not silently fill with abandoned archives.

Anything left behind by an interrupted session is swept on startup - but never a file a queued or paused job still depends on, and never one less than six hours old.

Automatic source selection

When you have not picked a source, Kairo checks whether each candidate is alive before committing to it. Deliberately cautious: only an explicit "this file is gone" skips a source, and a source you chose by hand is never skipped.

Failover that explains itself

If a source fails mid-transfer, Kairo moves to the next and the log records which source failed, why, which one it moved to, and how many remain. When they are all exhausted it says that plainly rather than showing a generic error.

Multipart packages

Archives split across many files stay one job. Every part must be present and verified before extraction begins, so a missing part fails early with a clear reason instead of halfway through unpacking.

Torrents from local files

Import a .torrent you already have and Kairo uses its bundled engine. The file and its history are not published anywhere, and torrent support is for content you are entitled to.

The Kairo downloads queue: one transfer running at 47%, one paused showing the bytes it kept, and per-source detail with a host reliability warning.
An active transfer, a paused one showing the bytes it kept, and the source detail behind each.

Progress keeps moving when the window does not

Repaints used to be tied to animation frames, which stop entirely while a window is minimised or hidden - so a download would appear frozen at 0% while it was actually finishing. A hidden window now keeps its progress current, and there is a test that runs the real interface with animation frames suppressed to prove it.

Storage

Space is checked before anything starts

A large game needs room three times over: the downloaded archive, the temporary copy during extraction, and the installed game. Kairo estimates all three.

What Kairo plans for before a download begins
WhatWhy it matters
Drive choicePick which disk takes the install, with free space shown for each before you commit.
Archive spaceThe download itself, which for a large game can exceed the installed size.
Extraction headroomBoth the archive and the extracted files exist at once during install.
Temporary folderKept separate from the library so it can be swept without touching installed games.
Archive retentionOptional. Keep the downloaded archive after install, or let Kairo delete it.
Library

Installed games, tracked honestly

Reconciled against the disk

Every install writes a record into its own folder. On startup Kairo reads those records back, so the library is not just whatever the app happened to remember.

  • It only ever adds - a second copy elsewhere is reported as a duplicate rather than replacing what you have
  • A folder on a drive that was not scanned is never called missing, because an unplugged drive is not a deleted game
  • Games installed before a settings change are still found

Removal judged by the folder

Removing a game is judged by whether the installed folder is gone - not by counting deleted paths. A deleted shortcut once counted as success, which dropped the library entry while the game stayed on disk.

  • The dialog lists what will actually be deleted before you confirm
  • It states plainly that deletion does not use the Recycle Bin
  • Saves stored inside the game folder are called out as a loss; saves elsewhere are reported as safe

Two kinds of reinstall

Full reinstall deletes the installed folder and installs a fresh copy, leaving nothing from the old build behind. Reinstall and replace files installs over the current folder, so saves and mods kept inside it survive - and so do leftovers from the previous build. Full is the default because it is the one that repairs a broken install.

Kairo refuses to delete a folder that is not a game folder: a drive root, a library root, a personal folder such as Documents, or a Windows folder. In that case it stops rather than quietly installing over the top instead.

Game saves

Where every game keeps its progress

No single method covers a whole catalogue, so Kairo layers them and says which one answered. What decides a save path is the mechanism, not the game - and each mechanism leaves evidence in the game's own folder.

Found from the game's own files

  • The engine. A Unity game names its company and product in app.info, and that is its LocalLow folder; an Unreal game's project folder sits beside Engine, and its saves under Saved\SaveGames; a Godot game keeps its .pck beside the executable
  • The emulator. A release that plays online through an emulated Steam keeps the game's cloud saves in its own folder keyed by App ID - Online-Fix, RUNE, CODEX, Goldberg and the rest each have a known place, and a declared path in steam_emu.ini is read as stated
  • The community record for the game's exact Steam App ID, from the same data PCGamingWiki keeps - never matched by title
  • A play session. Kairo watches the save roots while a game runs and confirms the folder the game actually wrote to - on evidence, never on timing, because a machine is never quiet

Kept safe without being asked

  • Backups go to Documents\Kairo Saves - outside Kairo's own data, so a reset or an uninstall leaves them alone
  • After a session that wrote saves, before a game is removed, before an update replaces its folder; the newest few are kept, one you made yourself is never removed
  • Every backup has a Restore, and what is in the folder before a restore is set aside as a backup of its own
  • "Saves from before" lists the games you played on this PC before Kairo, from their App IDs - 36 games in 19 seconds on the test machine
  • A bundle is one zip: every save Kairo knows about, with each folder written as a template rather than a path, so it lands where the next PC keeps it - and a save that lives inside a game's folder waits for that game to be installed

What it never reads

Nothing inside a save file. A backup copies the bytes whole and a restore puts them back whole. Kairo reads the Steam install path from the registry and the numeric folder names under userdata, and never opens loginusers.vdf or any account file. An account id folder is enumerated; nothing about whose it is is read.

Find installed games

Games already on your PC, taken into the Library

One button walks every drive and your profile for complete game folders Kairo did not install, and offers each in a sheet with a checkbox. Taking one in moves it into the Kairo library on the drive it is already on and sets it up exactly as an install would.

What counts as a game

An executable beside a mechanism: an emulated Steam API, Online-Fix's files, an engine's player or layout, the archive formats studios use. A program with a game-like file beside it is still a program - a Chromium runtime, a Python, a Java - and a repack's tools and a release's digital artbook are never taken for the game.

  • Matched to the catalogue by the App ID the release's own files state, or by its exact title - never a guess
  • A game the catalogue does not know still joins the Library, as a local game with no download source
  • A wrapper folder - the game plus its redistributables and readme - moves as one, the shape Kairo's own installs have
  • A game in a folder named like project work is offered but left unticked, with the reason

Two rules that do not bend

  • Other launchers' games are never touched. Steam, Epic, EA, Ubisoft Connect, GOG Galaxy, Battle.net, Riot, the Xbox app, Rockstar, Amazon and itch keep their games - recognised by their folders and by the files they leave inside a game - and the sheet lists them as left alone
  • A game never crosses a drive. The move is a rename on the same volume: instant, nothing copied, refused by the file system rather than copied if it would cross
  • Every Library card carries Official Kairo or Local third-party, with where an imported game was found
  • Removing an imported game offers to put it back where it was instead - the folder untouched, Kairo's manifest and shortcut taken off it
  • The same run judges every folder in every Kairo library and names the leftovers - an empty folder a removal left, a fix with no game in it - with the reason, deleted only if you say so
Store identities

Every store a game is on, by that store's own id

A game page shows where else the game is sold - Steam, GOG, the Epic Games Store, the Microsoft Store, Ubisoft, EA, Battle.net - and one click opens the store's own page. Each id is looked up by the game's exact Steam App ID, never guessed from a title, so it is the right game every time.

The right game, or nothing

The ids come from PCGamingWiki's page for the game, reached by the Steam App ID the record already holds. A game with no Steam id is matched by exact page name only, and every id is checked against the store's own name for it.

Games Steam never sold

An Epic exclusive or a Microsoft Store build has no Steam identity, so it gets a store section of its own - and its save record, found by the same page.

No tracking in the links

A store chip opens the store's page and nothing else travels with it: no affiliate parameter, no referrer of Kairo's, no account of yours.

Mods

Mods, without holding your credentials

Where Vortex is installed, Kairo works through it, so your Nexus login stays in the tool that already manages it.

Profiles you can revert

Switching profiles restores the original files and removes what the profile added. A file changed outside Kairo is never silently overwritten.

Archives inspected first

Mod archives are read before anything is written. Path traversal, Windows path aliases and dangerous payloads are refused rather than staged.

Known layouts only

A mod is deployed only when both its layout and the target game are recognised. Anything else is blocked with an explanation instead of a guess.

Current limitation

Kairo's Nexus registration is not complete, so browsing mods needs either Vortex installed or your own personal Nexus API key. Kairo will not ship a shared key: a desktop application cannot keep a secret, and such a key would be extractable from the installed files.

Steam

Steam games are recognised, not touched

What it does

Kairo reads local Steam library folders to notice that a game is already installed and managed by Steam. Those entries are labelled as Steam-managed, launch through Steam, and are left out of Kairo's own update and repair flows.

What it never does

It never reads Steam credentials, cookies or ownership records. Matching is by exact App ID only - never guessed from a title - and a local manifest is never treated as a claim that you own something.

Transparency

When something goes wrong, you can see why

  • Each install writes a log naming every step, the source used, and how the job ended - finished, cancelled or failed
  • A resumed download says it resumed and from how many bytes; a restarted one says why it could not continue
  • Source failures name the provider, so a host's outage does not look like the app breaking
  • A full reinstall records that it deleted the previous installation, and where
  • Problem reports can be sent with reproduction steps and screenshots, and only when you choose to send them
Appearance

Three looks, and the old one never disappears

Nova is the default. Modern and Legacy remain selectable, because a redesign should not force everyone to relearn the app on the same day.

See it on your own machine.

Free, no account, and it updates itself.