Table of Contents

Commands

This is the CLI reference for the s1interop command. The S1Interop package is a .NET global tool; it does not run during compilation. The compile-time generator package has its own reference under Generated output and Declarations.

Most commands default to the current directory when a path is optional. Unknown options, missing option values, and invalid option values fail before command dispatch so migration typos do not silently fall back to defaults.

Use only the commands that fit your project. analyze, lint, and build-hook are useful even when you keep manual Mono/IL2CPP code. migrate --dual-runtime can add separate runtime builds without requiring a generated SDK. sdkgen is for projects that want generated facade declarations.

s1interop analyze [path=.] [--configuration name] [--format text|json]
s1interop new <path> [--dry-run|--apply] [--format text|json]
s1interop init [path=.] [--dry-run|--apply] [--format text|json]
s1interop lint [path=.] [--configuration name] [--format text|json]
s1interop sdkgen [path=.] [--full-sdk] [--dry-run|--apply] [--format text|json]
s1interop build-hook [path=.] [--dry-run|--apply] [--format text|json]
s1interop migrate [path=.] [--dry-run|--apply] [--dual-runtime] [--format text|json]
s1interop verify-migration [path=.] [--dual-runtime] [--include-source-migrations] [--build] [--il2cpp-game-path path] [--mono-game-path path] [--build-timeout-seconds n] [--format text|json]
s1interop migrate rollback <manifest.json> [--format text|json]
s1interop --version

Command roles

Command Use it for
analyze Inspect projects, runtime references, configurations, packages, and source risks without changing files.
new Create a backend-neutral project scaffold.
init Add a declaration file and generator support to an existing project.
lint Report issues using inferred project/runtime context. Useful for diagnostics-only adoption.
sdkgen Generate SDK declarations and facades when you want generated game access.
build-hook Add build-time validation hooks where supported. Useful when you keep manual runtime branches.
migrate Plan or apply migration changes. Use --dual-runtime for separate Mono and IL2CPP builds.
verify-migration Run migration plans in a disposable sandbox, optionally with builds.

Dry-run and apply

Commands that change files default to dry-run mode unless --apply is provided. Use the dry-run output to inspect planned operations before writing source, project, solution, props, or target files.

sdkgen is usage-driven by default. Add --full-sdk when seeding a blank backend-neutral project from local game reference metadata.

verify-migration always works in a temporary sandbox. It does not mutate the source project, and --include-source-migrations only changes what gets applied inside that sandbox.