Running ARTEMIS
What has to be in place before a run, the commands that start one, and exactly what the PixelKit runner does between your command and the agent.
Before a run
Section titled “Before a run”-
A device. A Pixel connected over USB with USB debugging enabled, or a running emulator. If you are not sure the phone is ready,
pixelkit doctorchecks adb, the device and the installed build in one go. -
ARTEMIS installed.
Terminal window uv tool install -e /path/to/artemis -
The template on the device. The recipes drive the template app, so build it onto the phone first:
Terminal window cd pixelkit-templatenpx expo run:android
Starting a run
Section titled “Starting a run”From the root of pixelkit-sdk:
| Command | Runs |
|---|---|
npm run test:e2e |
The silicon recipe on the Flash engine. |
npm run test:e2e:flash |
The same, with the engine stated explicitly. |
npm run test:e2e:pro |
The silicon recipe on the Pro engine. |
node scripts/run-artemis-e2e.js <recipe> [--profile flash|pro] |
Any recipe, on either engine. --pro and --flash are shorthands. |
<recipe> is one of these names, or a path to any recipe file:
| Name | Recipe |
|---|---|
silicon |
01 — Silicon telemetry |
actuators |
02 — Actuators and haptics |
sensors |
03 — Sensors and capture |
ai |
04 — On-device AI |
full |
05 — Full sanity suite |
hardware, pixel11 |
06 — Pixel 11 Pro extensions |
nextgen, expansion |
07 — Next-generation hardware |
What each one checks is on the Recipes page.
What the runner does
Section titled “What the runner does”scripts/run-artemis-e2e.js
is deliberately thin:
- Resolves the recipe. An unknown name that is not a readable file exits with code
1and lists the valid names. - Checks for a device with
adb devices, and exits with code1if none is listed. - Finds ARTEMIS:
~/.local/bin/artemisfirst, then anartemis/.venvchecked out besidepixelkit-sdk, then whateverartemisis onPATH. - Hands over the recipe. The whole recipe file becomes the task:
artemis run "<recipe text>" --profile <engine>. - Exits with ARTEMIS’s exit code, so a failed verification fails the command.
What it does not do
Section titled “What it does not do”- Watch Logcat itself. The crash audit is done by the agent, because the recipe tells it to — six of the seven recipes end with a Logcat step. Nothing in the runner reads the log.
- Check the device is usable. The device check only confirms
adb deviceslists something. A phone shown asunauthorizedorofflinepasses it, and the run then fails inside ARTEMIS.pixelkit doctorchecks the state properly. - Choose between devices. With several connected, the runner passes no serial and ARTEMIS picks one. Disconnect the others, or run it from a coding agent, where a device can be named.
- Install the template. A recipe run against an old build of the template tests the old build.