The command line

ibf <command> --help describes each command's options; the reference lists them all. What each is for:

Command For
ibf setup <folder> Installing (or updating, or with --uninstall removing) the framework in a game folder; see Getting started
ibf launch Starting the game from its folder, and waiting until the framework answers
ibf doctor Checking the install and the running game; --in-game drives the game through a checklist
ibf new <name> Starting a bot from a template; --lang cpp for a C++ one
ibf run <bot> --pad N Playing one bot on a pad; --watch restarts it whenever its file changes
ibf match <bots...> Playing matches between bots, with results; see Matches
ibf replay <file> <bot> Playing a recording to a bot and comparing its answers
ibf state The game's state now; --watch keeps printing, --json prints all of it
ibf logs -f The framework's log as it is written: the host's lines, the game's, every bot's
ibf cmd <command> One console command, as typed in the game's console (F2); ibf cmd help lists them
ibf bench How long the SDK takes per tick, and how soon a bot wakes after a tick
ibf instances The games running with the framework

ibf launch and ibf doctor find the game folder from --game-dir, then the environment variable IBF_GAME_DIR, then the folder ibf setup last used. The commands that talk to the game (run, match, state, logs, cmd, bench) use the newest running game on this machine, or --instance <pid>; or a game anywhere over TCP with --url tcp://host:port and --token (or the environment variables IBF_URL and IBF_TOKEN), when the game listens ([bridge.tcp] in the configuration). The Linux wheel speaks TCP only.

Console commands worth knowing

Run these in the game's console (F2) or with ibf cmd:

help, help <command> every command, or one in detail
status the framework's state: hooks, ticks, the overlay, the bridge, the run mode
bots the connected bots and tools: pads, latency, inputs
bot.info <bot>, param.set <bot> <name> <value> a bot's parameters and stats; change one
match.start mode=versus map=0, match.quit the Navigator: matches through the menus
mode lockstep, mode realtime the run mode
sim.pause, sim.step [n], sim.resume the simulation, a tick at a time
record.start, record.stop recording
state.dump - the state as JSON
plugins the in-process plugins (see Plugins)
tcp, tcp.allow <token> pad=<n>|watch, tcp.revoke <token>|all, tcp.token <token> the TCP server: its connections; a token pinned to a pad, or a spectator's; forgetting one; how a token's last connection ended
screenshot the game's frame, as a BMP in ibf\logs