Skip to main content

CLI Quickstart

Prefer the terminal or automating from a pipeline? The nullctl command-line tool gives you the same control over the platform as the portal.

1. Install nullctl

nullctl is a single binary. Install it from your platform's distribution channel (ask your platform team for the download or package), then verify:

nullctl version

nullctl follows a kubectl-style verb on object grammar, for example nullctl get emulators or nullctl create emulator.

2. Authenticate

nullctl resolves credentials automatically from a credential chain, trying each source in order until one works:

  1. A GitLab CI job token (CI_JOB_TOKEN), used automatically in pipelines.
  2. A workspace token, used automatically inside a cloud workspace.
  3. Browser-based single sign-on, used on your laptop.

For interactive use on your machine, just run a command. If you are not logged in, nullctl opens your browser to sign in. To mint a token explicitly:

nullctl auth token

To sign out:

nullctl auth logout
Contexts

nullctl stores connection settings in contexts (API URL, identity provider, and client details). Switch environments with --context <name>, or manage them with nullctl get context and nullctl edit context. Configuration lives in ~/.config/nullauto/config.yaml.

3. Find a snapshot

Emulators launch from snapshots. List the ones available to you:

nullctl get snapshots

4. Launch an emulator

nullctl create emulator --snapshot <snapshot-name>

nullctl polls until the device is running (or failed), so the command returns when your emulator is ready to use.

List your emulators and inspect one:

nullctl get emulators
nullctl get emulator <emulator-id>

5. Connect with ADB

nullctl adb connect <emulator-id>

This authenticates, opens a secure proxy from your machine to the cloud device, and exposes adb on a local port. In another terminal:

adb shell
adb logcat

6. Open the device in your browser

nullctl browse emulator <emulator-id>

7. Clean up

nullctl delete emulator <emulator-id>

Going further