CLI commands
Written for Titanium SDK 13.4.0 and later
The CLI is titanium, and ti is the same binary. Ten commands.
| Command | Does |
|---|---|
ti build |
Builds a project, and installs and runs it |
ti clean |
Removes previous build directories |
ti config |
Gets and sets CLI config options |
ti create |
Creates a project, module, or Apple Watch app |
ti info |
Reports the development environment |
ti module |
Lists installed modules |
ti project |
Gets and sets tiapp.xml settings |
ti sdk |
Manages installed SDKs |
ti serve |
Serves a project through the Titanium Vite runtime |
ti setup |
Configures the CLI |
Every command takes --help, and that output is generated from the CLI you
have installed, so it is always the authority over this page.
Global options
These work on any command.
| Option | Effect |
|---|---|
-d, --project-dir <path> |
The project to act on, instead of the working directory |
-s, --sdk [version] |
Build with a specific SDK rather than the newest |
--no-prompt |
Never ask. Required for scripting |
--no-banner |
Drop the version banner |
--no-color |
Drop ANSI colour |
--no-progress-bars |
Drop progress bars |
-q, --quiet |
Suppress output |
--config [json] |
Mix a JSON object into the config for this run |
--config-file [file] |
Use a different config file |
--debug |
CLI's own debug logging |
--no-prompt turns a missing required option from a question into an error,
which is what you want in CI and what makes a hung build impossible.
ti build
ti build --platform android
ti build --platform ios --target device
--platform takes android or ios. --target defaults to emulator on
Android and simulator on iOS.
| Platform | Targets |
|---|---|
| Android | emulator, device, dist-playstore |
| iOS | simulator, device, dist-appstore, dist-adhoc, macos, dist-macappstore |
Options worth knowing:
| Option | Effect |
|---|---|
-b, --build-only |
Compile, do not install or run |
-f, --force |
Full rebuild |
-C, --device-id <id> |
Which emulator, simulator or device |
-D, --deploy-type <type> |
development, test or production |
--liveview |
Reload the running app on save |
-l, --log-level <level> |
trace to error |
--skip-js-minify |
Skip minification |
--source-maps |
Inline source maps for transpiled JS |
Signing options are per platform: -K/--keystore, -P/--store-password,
-L/--alias on Android; -V/--developer-name, -R/--distribution-name,
-P/--pp-uuid on iOS. See
certificates and provisioning.
ti create
ti create --type app --name Hello --id com.example.hello --platforms android,ios --workspace-dir .
--type is app, module or applewatch. With --no-prompt, --type and
--workspace-dir have no usable default and must both be passed.
--alloy runs alloy new on the project afterwards, which needs Alloy
installed. --template takes a template name, a directory, a zip or a URL.
--platforms accepts android, ios and iphone. ios targets iPhone and
iPad; iphone targets iPhone only.
ti info
ti info
ti info -t android --json
-t/--types narrows to one area, and --json makes it machine-readable. This
is the first command to run when a build breaks for no visible reason.
ti sdk
ti sdk list
ti sdk install 13.4.1.GA
ti sdk uninstall 13.3.0.GA
install with no version takes the newest stable. -b/--branch installs from
a CI branch.
ti config
ti config # print everything
ti config android.sdkPath /path/to/sdk # set one
ti config paths.modules --append /path # add to a list
ti config paths.modules --remove /path # take one out
See CLI configuration for the keys.
ti project
Reads and writes tiapp.xml without a text editor, which is what to use in a
release script:
ti project version 1.2.0
ti project --output json
ti module
ti module list
list is the only subcommand. It reports project, configured-path and global
scopes, so it also answers which copy of a module a build will use.
ti clean
ti clean
ti clean --platforms android
Removes build/. Worth doing when a failure does not match the source.
ti setup
An interactive wizard. ti setup check is the useful non-interactive part, and
overlaps ti info.