Menu

Skip Command-Line Interface Reference

The Skip command-line interface (CLI) is an installed tool that can be run from the terminal on macOS. It provides an interface for creating new Skip projects (both Framework and App projects), as well as running tests, validating projects, and exporting built artifacts for publication.

Installing

The skip CLI is installed using Homebrew. For complete details, see the Getting Started Guide.

Once Homebrew is set up, Skip can be installed (and updated) by running the Terminal command:

% brew install skiptools/skip/skip

==> Tapping skiptools/skip
Cloning into '/opt/homebrew/Library/Taps/skiptools/homebrew-skip'...
Tapped 1 cask (15 files, 417KB).
==> Downloading https://source.skip.tools/skip/releases/download/0.8.18/skip.zip
==> Installing dependencies: android-platform-tools
==> Downloading https://dl.google.com/android/repository/platform-tools_r34.0.5-darwin.zip
==> Installing Cask android-platform-tools
==> Linking Binary 'adb' to '/opt/homebrew/bin/adb'
🍺  android-platform-tools was successfully installed!
==> Installing Cask skip
==> Linking Binary 'skip' to '/opt/homebrew/bin/skip'

  ▄▄▄▄▄▄▄  ▄▄▄  ▄▄▄ ▄▄  ▄▄▄▄▄▄▄ 
 █       ██   █ █ ██  ██       █
 █  ▄▄▄▄▄██   █▄█ ██  ██    ▄  █
 █ █▄▄▄▄▄██      ▄██  ██   █▄█ █
 █▄▄▄▄▄  ██     █▄██  ██    ▄▄▄█
  ▄▄▄▄▄█ ██    ▄  ██  ██   █    
 █▄▄▄▄▄▄▄██▄▄▄█ █▄██▄▄██▄▄▄█    

Welcome to Skip 0.8.18!

Run "skip doctor" to check system requirements.
Run "skip checkup" to perform a full system evaluation.
Start with "skip init --open-xcode --appid=bundle.id project-name HelloSkip"

Visit https://skip.tools for documentation, samples, and FAQs.

Happy Skipping!
🍺  skip was successfully installed!

This will download and install the skip tool itself, as well as the gradle and JDK dependencies that are necessary for building and testing the Kotlin/Android side of your apps.


Skip Commands

% skip --help
OVERVIEW: skip

USAGE: skip <subcommand>

OPTIONS:
  -h, --help              Show help information.

SUBCOMMANDS:
  version                 Print the skip version
  doctor                  Evaluate and diagnose Skip development environment
  checkup                 Run tests to ensure Skip is in working order
  upgrade                 Upgrade to the latest Skip version using Homebrew
  init                    Initialize a new Skip project
  verify                  Verify Skip project
  export                  Export the Gradle project and built artifacts
  devices                 List connected devices and emulators/simulators
  test                    Run parity tests and generate reports

  See 'skip help <subcommand>' for detailed help.

skip upgrade

% skip upgrade
[✓] Check Skip Updates: 0.8.18
[✓] Skip 0.8.18 is up to date.

skip init

% skip init --help
OVERVIEW: Initialize a new Skip project

USAGE: skip init [<options>] <project-name> <module-names> ...

ARGUMENTS:
  <project-name>          Project folder name
  <module-names>          The module name(s) to create

OUTPUT OPTIONS:
  -o, --output <path>     Send output to the given file (stdout: -)
  -E, --message-errout    Emit messages to the output rather than stderr
  -v, --verbose           Whether to display verbose messages
  -q, --quiet             Quiet mode: suppress output
  -J, --json              Emit output as formatted JSON
  -j, --json-compact      Emit output as compact JSON
  -M, --message-plain     Show console messages as plain text rather than JSON
  -A, --json-array        Wrap and delimit JSON output as an array
  --plain/--no-plain      Show no colors or progress animations (default:
                          --no-plain)

CREATE OPTIONS:
  --id <id>               Application identifier (default: net.example.MyApp)
  -d, --dir <directory>   Base folder for project creation
  -c, --configuration <c> Configuration debug/release (default: debug)
  -t, --template <id>     Template name/ID for new project (default: skipapp)
  -h, --template-host <host>
                          The host name for the template repository (default:
                          https://github.com)
  -f, --template-file <zip>
                          A path to the template zip file to use
  --resource-path <resource-path>
                          Resource folder name (default: Resources)
  --chain/--no-chain      Create library dependencies between modules (default:
                          --chain)
  --zero/--no-zero        Add SKIP_ZERO environment check to Package.swift
                          (default: --zero)
  --git-repo/--no-git-repo
                          Create a local git repository for the app (default:
                          --no-git-repo)
  --free                  Create package with free software license
  --show-tree/--no-show-tree
                          Display a file system tree summary of the new files
                          (default: --no-show-tree)
  --module-tests/--no-module-tests
                          Whether to create test modules (default:
                          --module-tests)
  --validate-package/--no-validate-package
                          Validate generated Package.swift files (default:
                          --validate-package)

TOOL OPTIONS:
  --xcodebuild <path>     Xcode command path
  --swift <path>          Swift command path
  --gradle <path>         Gradle command path
  --adb <path>            ADB command path
  --emulator <path>       Android emulator path
  --android-home <path>   Path to the Android SDK (ANDROID_HOME)

BUILD OPTIONS:
  --build/--no-build      Run the project build (default: --build)
  --test/--no-test        Run the project tests (default: --no-test)
  --verify/--no-verify    Verify the project output (default: --verify)

OPTIONS:
  --appid <bundleID>      Embed the library as an app with the given bundle id
  --icon-color <hex>      RGB hexadecimal color for icon background (default:
                          4994EC)
  --version <version>     Set the initial version to the given value
  --apk/--no-apk          Build the Android .apk file (default: --no-apk)
  --ipa/--no-ipa          Build the iOS .ipa file (default: --no-ipa)
  --open-xcode            Open the resulting Xcode project
  --open-gradle           Open the resulting Gradle project
  -h, --help              Show help information.

skip verify

% skip verify --help
OVERVIEW: Verify Skip project

USAGE: skip verify <options>

OUTPUT OPTIONS:
  -o, --output <path>     Send output to the given file (stdout: -)
  -E, --message-errout    Emit messages to the output rather than stderr
  -v, --verbose           Whether to display verbose messages
  -q, --quiet             Quiet mode: suppress output
  -J, --json              Emit output as formatted JSON
  -j, --json-compact      Emit output as compact JSON
  -M, --message-plain     Show console messages as plain text rather than JSON
  -A, --json-array        Wrap and delimit JSON output as an array
  --plain/--no-plain      Show no colors or progress animations (default:
                          --no-plain)

TOOL OPTIONS:
  --xcodebuild <path>     Xcode command path
  --swift <path>          Swift command path
  --gradle <path>         Gradle command path
  --adb <path>            ADB command path
  --emulator <path>       Android emulator path
  --android-home <path>   Path to the Android SDK (ANDROID_HOME)

OPTIONS:
  --project <dir>         Project folder (default: .)
  -h, --help              Show help information.

skip export

% skip export --help
OVERVIEW: Export the Gradle project and built artifacts

USAGE: skip export <options>

OUTPUT OPTIONS:
  -o, --output <path>     Send output to the given file (stdout: -)
  -E, --message-errout    Emit messages to the output rather than stderr
  -v, --verbose           Whether to display verbose messages
  -q, --quiet             Quiet mode: suppress output
  -J, --json              Emit output as formatted JSON
  -j, --json-compact      Emit output as compact JSON
  -M, --message-plain     Show console messages as plain text rather than JSON
  -A, --json-array        Wrap and delimit JSON output as an array
  --plain/--no-plain      Show no colors or progress animations (default:
                          --no-plain)

TOOL OPTIONS:
  --xcodebuild <path>     Xcode command path
  --swift <path>          Swift command path
  --gradle <path>         Gradle command path
  --adb <path>            ADB command path
  --emulator <path>       Android emulator path
  --android-home <path>   Path to the Android SDK (ANDROID_HOME)

OPTIONS:
  -d, --dir <directory>   Export output folder
  --package <package-name>
                          App package name
  --module <ModuleName>   Modules to export
  --project <dir>         Project folder (default: .)
  --build/--no-build      Build the Swift project before exporting (default:
                          --build)
  --show-tree/--no-show-tree
                          Display a file system tree summary (default:
                          --no-show-tree)
  --release/--no-release  Perform release build (default: --release)
  --debug/--no-debug      Perform debug build (default: --debug)
  -h, --help              Show help information.

skip devices

% skip devices
platform: android type: device id: emulator-5554
platform: ios type: device id: A85D41ED-3647-48D2-974E-30A53F8E629A

skip test

% skip test --help
OVERVIEW: Run parity tests and generate reports

USAGE: skip test <options>

OUTPUT OPTIONS:
  -o, --output <path>     Send output to the given file (stdout: -)
  -E, --message-errout    Emit messages to the output rather than stderr
  -v, --verbose           Whether to display verbose messages
  -q, --quiet             Quiet mode: suppress output
  -J, --json              Emit output as formatted JSON
  -j, --json-compact      Emit output as compact JSON
  -M, --message-plain     Show console messages as plain text rather than JSON
  -A, --json-array        Wrap and delimit JSON output as an array
  --plain/--no-plain      Show no colors or progress animations (default:
                          --no-plain)

TOOL OPTIONS:
  --xcodebuild <path>     Xcode command path
  --swift <path>          Swift command path
  --gradle <path>         Gradle command path
  --adb <path>            ADB command path
  --emulator <path>       Android emulator path
  --android-home <path>   Path to the Android SDK (ANDROID_HOME)

OPTIONS:
  --test/--no-test        Run the project tests (default: --test)
  --filter <Test.testFun> Test filter(s) to run
  --project <dir>         Project folder (default: .)
  --xunit <xunit.xml>     Path to xunit test report
  --junit <folder>        Path to junit test report
  --max-column-length <n> Maximum table column length (default: 25)
  -c, --configuration <c> Configuration debug/release (default: debug)
  --summary-file <path>   Output summary table
  -h, --help              Show help information.

skip doctor

 % skip doctor --help
 OVERVIEW: Evaluate and diagnose Skip development environment
 
 USAGE: skip doctor <options>
 
 OUTPUT OPTIONS:
   -o, --output <path>     Send output to the given file (stdout: -)
   -E, --message-errout    Emit messages to the output rather than stderr
   -v, --verbose           Whether to display verbose messages
   -q, --quiet             Quiet mode: suppress output
   -J, --json              Emit output as formatted JSON
   -j, --json-compact      Emit output as compact JSON
   -M, --message-plain     Show console messages as plain text rather than JSON
   -A, --json-array        Wrap and delimit JSON output as an array
   --plain/--no-plain      Show no colors or progress animations (default:
                           --no-plain)
 
 TOOL OPTIONS:
   --xcodebuild <path>     Xcode command path
   --swift <path>          Swift command path
   --gradle <path>         Gradle command path
   --adb <path>            ADB command path
   --emulator <path>       Android emulator path
   --android-home <path>   Path to the Android SDK (ANDROID_HOME)
 
 OPTIONS:
   -h, --help              Show help information.
 

skip checkup

% skip checkup --help
OVERVIEW: Run tests to ensure Skip is in working order

USAGE: skip checkup <options>

OUTPUT OPTIONS:
  -o, --output <path>     Send output to the given file (stdout: -)
  -E, --message-errout    Emit messages to the output rather than stderr
  -v, --verbose           Whether to display verbose messages
  -q, --quiet             Quiet mode: suppress output
  -J, --json              Emit output as formatted JSON
  -j, --json-compact      Emit output as compact JSON
  -M, --message-plain     Show console messages as plain text rather than JSON
  -A, --json-array        Wrap and delimit JSON output as an array
  --plain/--no-plain      Show no colors or progress animations (default:
                          --no-plain)

TOOL OPTIONS:
  --xcodebuild <path>     Xcode command path
  --swift <path>          Swift command path
  --gradle <path>         Gradle command path
  --adb <path>            ADB command path
  --emulator <path>       Android emulator path
  --android-home <path>   Path to the Android SDK (ANDROID_HOME)

OPTIONS:
  -c, --configuration <c> Configuration debug/release (default: release)
  --double-check          Check twice that sample build outputs produce
                          identical artifacts
  -h, --help              Show help information.