Environment Variables

This page is the central reference for the most important environment variables used by the current Clawperator CLI, installer, and local runtime tooling.

It focuses on variables that are useful or observable for operators and agents, not every internal shell temporary used by validation scripts.

Commonly useful variables

Variable Used by Meaning
CLAWPERATOR_SKILLS_REGISTRY CLI, installer Path to the local skills registry JSON
CLAWPERATOR_RECEIVER_PACKAGE CLI, installer Default Android Operator package to target when --receiver-package is omitted
CLAWPERATOR_INSTALL_APK installer Pre-seeds the installer's APK install prompt
CLAWPERATOR_INSTALL_SKIP_SKILLS installer Skips skills install during installer setup when set to 1
CLAWPERATOR_APK_METADATA_URL installer Overrides the metadata endpoint used to discover the latest downloadable Operator APK
ADB_PATH CLI Overrides the adb binary path
ANDROID_HOME CLI runtime config Android SDK root used to locate emulator and SDK tools
ANDROID_SDK_ROOT CLI runtime config Fallback Android SDK root if ANDROID_HOME is unset
EMULATOR_PATH emulator commands, serve Overrides the emulator binary path
SDKMANAGER_PATH emulator commands, serve Overrides the sdkmanager binary path
AVDMANAGER_PATH emulator commands, serve Overrides the avdmanager binary path

CLAWPERATOR_SKILLS_REGISTRY

Points Clawperator at one local registry JSON for skills discovery.

Typical value:

export CLAWPERATOR_SKILLS_REGISTRY="$HOME/.clawperator/skills/skills/skills-registry.json"

Use it when:

  • the installer has not yet updated your shell profile
  • you are switching between local skill registries
  • you want skills list, skills get, skills run, and skills new to use a specific local repo

CLAWPERATOR_RECEIVER_PACKAGE

Sets the default receiver package for commands that dispatch to the Android Operator APK.

Typical values:

  • com.clawperator.operator
  • com.clawperator.operator.dev

Example:

export CLAWPERATOR_RECEIVER_PACKAGE="com.clawperator.operator.dev"

CLI flags still win over the environment variable. Use an explicit --receiver-package when you want one command to differ from your shell default.

CLAWPERATOR_INSTALL_APK

Controls the installer's "install APK now?" prompt.

Current behavior in scripts/install.sh:

  • Y, y, yes, YES mean proceed with APK install
  • any other non-empty value means skip APK install
  • if unset, the installer prompts interactively

Example:

CLAWPERATOR_INSTALL_APK=Y curl -fsSL https://clawperator.com/install.sh | bash

CLAWPERATOR_INSTALL_SKIP_SKILLS

Skips the installer's skills bootstrap phase when set to 1.

Example:

CLAWPERATOR_INSTALL_SKIP_SKILLS=1 curl -fsSL https://clawperator.com/install.sh | bash

This is mainly useful for constrained or staged setups where you want the CLI without immediately cloning the skills repository.

CLAWPERATOR_APK_METADATA_URL

Overrides the metadata document used by the installer to find the latest downloadable Operator APK and checksum.

This is an advanced override, mainly useful for testing alternate download surfaces or release-candidate flows.

Android tool path variables

Clawperator can use environment variables to find Android host tools.

ADB_PATH

Overrides the adb binary path used by CLI commands such as devices, doctor, execute, and operator setup.

Example:

export ADB_PATH="/opt/android/platform-tools/adb"

ANDROID_HOME and ANDROID_SDK_ROOT

These point to the Android SDK root. Clawperator uses them to derive default paths for:

  • emulator
  • sdkmanager
  • avdmanager

If both are set, ANDROID_HOME wins.

EMULATOR_PATH, SDKMANAGER_PATH, AVDMANAGER_PATH

These override the individual binaries directly.

Use them when:

  • your SDK is installed in a non-standard location
  • you want emulator commands to use a specific toolchain
  • you are debugging path resolution on CI or a custom workstation

For a typical local setup, these are the most useful persistent exports:

export CLAWPERATOR_SKILLS_REGISTRY="$HOME/.clawperator/skills/skills/skills-registry.json"
export CLAWPERATOR_RECEIVER_PACKAGE="com.clawperator.operator"

Then override --device-id per command when more than one Android target is connected.