> ## Documentation Index
> Fetch the complete documentation index at: https://docs.totemlabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Install a game

> Make a Totem game available from a player’s home screen.

export const StatusBadge = ({state = "available", children}) => {
  const labels = {
    available: "Available",
    "early-access": "Early access",
    planned: "Planned",
    internal: "Internal draft"
  };
  return <span className={`totem-status totem-status--${state}`}>
      {children || labels[state] || state}
    </span>;
};

<StatusBadge state="available" />

Totem game pages can be installed on supported desktop and mobile browsers.

## What installs

The Totem play page installs, not the isolated game iframe. This keeps the player's Totem tag and leaderboard session available to the installed game.

The canonical link stays:

```text theme={null}
https://play.totemlabs.io/<handle>/<game-slug>
```

The installed app uses the durable route:

```text theme={null}
https://play.totemlabs.io/g/<game-slug>
```

That route does not contain a mutable handle, so a handle rename cannot break the installed app.

## Chromium and Android

Use the Install control in the play-page chrome or on the game-over screen. Totem opens the browser's own install prompt.

## iPhone and iPad

Open the install control in Safari, tap Share, then choose Add to Home Screen.

## Installed state

Totem hides install controls when the game is already running as an installed app. If a player dismisses the browser prompt, Totem keeps the prompt hidden for 30 days.

An installed iOS app can have a separate session from Safari. If the player is anonymous there, Totem says “Not signed in here” instead of treating the player's data as lost.

## Not offline

V1 does not promise offline play. The installed game still needs a connection to load its isolated build.
