# The twf command

Create, inspect, playtest, and deploy from the same repository.

| Command | Purpose |
| --- | --- |
| `twf create <directory>` | Scaffold a standalone SDK game |
| `twf dev [module]` | Open the local game from config or an explicit module |
| `twf inspect <module>` | Print actions, state, and projections |
| `twf simulate <module> --seed <seed>` | Play a seeded legal policy |
| `twf explore <module> --max-states <n>` | Explore a small game's reachable states |
| `twf manufacture <module>` | Compile manufacturing metadata |
| `twf build-worker <module>` | Build the game's installed SDK worker adapter |
| `twf init` | Create a private deployment configuration |
| `twf login` | Authorize the CLI through your browser |
| `twf whoami` | Show the signed-in account |
| `twf deploy` | Publish the repository's immutable release |
| `twf logout` | Revoke and remove the CLI session |
| `twf --version` | Print the CLI version |

## Output and credentials

Game commands return JSON; use `--compact` for one line. Login progress and upload status go to stderr. `--help` lists options. Existing JSON format identifiers retain the `boardengine.*` prefix for machine compatibility.

Credentials live under `$XDG_CONFIG_HOME/boardengine/auth.json` or `~/.config/boardengine/auth.json`, with mode 0600 and separate entries for each server. `BOARDENGINE_TOKEN` supplies a CI session, and `BOARDENGINE_SERVER` changes the default platform. Never commit credentials to a game repository.

## Per-game configuration

Use `--export` when a module has multiple game exports. A state file can initialize an inspectable scenario. Runtime options and legal actions are evaluated with the game's installed SDK.

`twf dev` discovers `boardengine.json` and uses its entry, named export, and assets directory. Use `--config <json>` for another configuration. See [local development](../../guides/local-development/) for direnv and source CLI selection.