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.