Skip to content

CLI

Terminal window
npm install -g @patchkite/cli

Requires Node.js 22.12 or newer. Run patchkite <command> --help for the full help of any command.

Command Description
patchkite register [serverUrl] Create an account in the browser, or in the terminal with --email. The first account on a server becomes admin.
patchkite login [serverUrl] Log in. Opens the browser by default; --accessKey <key> logs in with an existing access key, --email <email> with email and password in the terminal.
patchkite logout Log out of the current session.
patchkite whoami Show the account you’re logged in as.
patchkite change-password Change your password and sign out other sessions.
patchkite session rm <machineName> Sign out a login session on another machine.
patchkite access-key add <name> [--ttl 60d] Create an access key for CI. --ttl accepts 60d, 12h, 30m (maximum 10 years).
patchkite access-key ls / rm <name> List or revoke access keys.
patchkite access-key patch <name> [--name] [--ttl] Rename an access key or change its lifetime.

In CI, set PATCHKITE_ACCESS_KEY and PATCHKITE_SERVER_URL instead of logging in. PATCHKITE_CONFIG_PATH overrides the config file location (default ~/.patchkite.config).

Command Description
patchkite app add <appName> <os> <platform> Register an app. os is ios or android; platform is react-native or flutter. Creates Staging and Production.
patchkite app ls List your apps.
patchkite app rename <current> <new> Rename an app.
patchkite app transfer <appName> <email> Transfer ownership.
patchkite app rm <appName> Delete an app and its releases.
patchkite collaborator add <appName> <email> Give another user access. Collaborators can release and promote.
patchkite collaborator ls / rm List or remove collaborators.
Command Description
patchkite deployment ls <appName> [-k] List deployments; -k shows the deployment keys.
patchkite deployment add <appName> <name> Add a deployment.
patchkite deployment rename <appName> <current> <new> Rename a deployment.
patchkite deployment rm <appName> <name> Delete a deployment.
patchkite deployment history <appName> <name> List releases with install metrics.
patchkite deployment clear <appName> <name> Delete the entire release history.

Bundles your React Native JavaScript (and Hermes bytecode) and releases it.

Option Description
-t, --targetBinaryVersion <range> Semver range of binary versions (default: from Info.plist/build.gradle).
-b, --bundleName <name> Bundle file name.
-e, --entryFile <path> JS entry file.
--development, --dev Bundle in development mode.
-o, --outputDir <dir> Keep the bundle output in this directory.
-s, --sourcemapOutput <file> Write a sourcemap.
--sourcemapOutputDir <dir> Sourcemap output directory.
-g, --gradleFile <path> Path to build.gradle.
-p, --plistFile <path> Path to Info.plist.
--podFile <path>, --pod Path to the Podfile.
-c, --config <path> Metro config.
--useHermes [bool], --hermes Force Hermes on or off (detected automatically otherwise).
--extraHermesFlags <flag>, --hf Extra hermesc flag.
--extraBundlerOptions <opt>, --eo Extra Metro bundler option.

Builds a release APK and releases the Dart AOT library (libapp.so). Android only.

Option Description
-t, --targetBinaryVersion <range> Semver range (default: version in pubspec.yaml).
--targetAbis <abis> Comma-separated ABIs (default arm64-v8a,armeabi-v7a,x86_64).
--buildArgs <arg> Extra arguments for flutter build apk, e.g. --flavor production.
--apk <path> Use an existing APK and skip the build.
--flutterPath <path> Path to the flutter executable.

release <appName> <path> <targetBinaryVersion>

Section titled “release <appName> <path> <targetBinaryVersion>”

Releases a directory or file as-is.

Option Description
-d, --deploymentName <name> Target deployment (default Staging).
--description <text>, --des Release notes.
-m, --mandatory Mark the update as mandatory.
-x, --disabled Release as disabled.
-r, --rollout <percent> Percentage of devices (1–100).
-k, --privateKeyPath <path> RSA private key for code signing.
--noDuplicateReleaseError Exit successfully when the package is identical to the latest release.
Command Description
patchkite patch <appName> <deployment> Change a release: -l <label> (default latest), --description, -m [bool], -x [bool], -r <percent> (increase only), -t <range>.
patchkite promote <appName> <source> <dest> Copy a release to another deployment. Takes the same options as patch, plus --noDuplicateReleaseError.
patchkite rollback <appName> <deployment> Roll back to the previous release, or --targetRelease <label>.
Command Description
patchkite binary add <appName> <artifact> Register the JS bundle inside an APK, AAB, or IPA so the first update after install is sent as a patch. --bundle-name overrides the bundle name.
patchkite binary ls <appName> List registered binaries.
patchkite binary rm <appName> <hash> Remove one.
Command Description
patchkite debug android / ios Stream Patchkite SDK logs from a connected device, emulator, or simulator.
Command Description
patchkite admin user ls List users.
patchkite admin user add <email> [--name] [--admin] Create a user and print a temporary password.
patchkite admin user reset-password <email> Issue a new temporary password and revoke the user’s sessions and access keys.
patchkite admin user set-admin <email> [--revoke] Grant or revoke admin rights.
patchkite admin user rm <email> [--transfer-to <email>] Delete a user, optionally transferring the apps they own.
patchkite admin gc [--dry-run] Delete orphaned blobs from storage.