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/1.0.0/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 1.0.0!

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
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
  icon                    Create and manage app icons
  android                 Perform a native Android package command
  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: 1.0.0
[✓] Skip 1.0.0 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
  --log-file <path>       Send log output to the file
  -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)
  --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: --no-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)
  --native/--no-native    Whether to create a native model layer (default:
                          --no-native)
  --module-tests/--no-module-tests
                          Whether to create test modules (default:
                          --module-tests)
  --fastlane/--no-fastlane
                          Whether to create fastlane metadata (default:
                          --fastlane)
  --github/--no-github    Whether to create github metadata (default:
                          --no-github)
  --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: --no-verify)

OPTIONS:
  --appid <bundleID>      Embed the library as an app with the given bundle id
  --no-icon               Disable icon generation
  --icon <icon>           Path to icon input file (SVG, PDF, PNG)
  --icon-background <hex> RGB hexadecimal color for icon background
  --icon-foreground <hex> RGB hexadecimal color for icon foreground
  --icon-shadow <decimal> The amount of shadow to draw around the target
  --icon-inset <decimal>  The amount of inset to place on the image
  --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
  --log-file <path>       Send log output to the file
  -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: .)
  --summary-file <file>   Output summary path
  --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               Perform release build
  --debug                 Perform debug build
  --export-project/--no-export-project
                          Export project sources (default: --export-project)
  --nested/--no-nested    Output folders to variant sub-folders (default:
                          --no-nested)
  --sdk-path <sdk dir>    SDK path for export build
  -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
  --log-file <path>       Send log output to the file
  -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
  --native                Generate native module when running checkup
  --fail-fast/--no-fail-fast
                          Fail immediately when an error occurs (default:
                          --fail-fast)
  -h, --help              Show help information.

skip icon

% skip icon --help

OVERVIEW: Create and manage app icons

This command will create and update icons in the Darwin and Android folders of
a Skip project.

Examples:

# Resize the given PNG icon for each of the required icon sizes
skip icon app_icon.png

# Resize separate icons for each of Android and iOS
skip icon --android app_icon_android.png
skip icon --darwin app_icon_darwin.png

# Generate a random icon set and open them in Preview.app
skip icon --open-preview --random-icon --random-background

# Generate new icons with a named color background
skip icon --open-preview --background skyblue

# Create new icons with a background gradient
skip icon --open-preview --background #3E8E41-#2F4F4F

# Create new icons with a background gradient overlaid with an SVG image
skip icon --open-preview --background #5C6BC0-#3B3F54 symbol.svg

# Create new icons with custom image inset and shadow radius
skip icon --background #F7DC6F-#F2C464 --inset 0.4 --shadow 0.02 symbol.svg


USAGE: skip icon [<options>] [<icon-sources> ...]

ARGUMENTS:
  <icon-sources>          Path or URL to icon source SVG, PNG, or PDF files

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
  --log-file <path>       Send log output to the file
  -A, --json-array        Wrap and delimit JSON output as an array
  --plain/--no-plain      Show no colors or progress animations (default:
                          --no-plain)

OPTIONS:
  --open-preview          Open the generated icons in Preview
  --android/--no-android  Generate an Android icon set
  --android-path <path>   Path the Android resources root folder (default:
                          Android/app/src/main/res)
  --darwin/--no-darwin    Generate an Android icon set
  --darwin-path <path>    Path the Darwin icon assets folder (default:
                          Darwin/Assets.xcassets/AppIcon.appiconset)
  --foreground <color>    Name or RGB hex color/gradient for icon color
                          (default: white)
  --background <color>    Name or RGB hex color/gradient for icon background
  --inset <amount>        The percentage amount of inset for the shape
                          (default: 0.1)
  --shadow <amount>       The percentage amount of shadow to dear around the
                          path (default: 0.01)
  --random-icon           Create a random icon shape
  --random-background     Create a random icon color
  -h, --help              Show help information.