sim docs Überblick

Dein Agent. Ein Android-Gerät.

sim baut deine App, startet sie auf Android und lässt einen Agent echte Abläufe ausprobieren. Du bekommst Ergebnisse und Screenshots zurück.

In drei Schritten zum Test

  1. Account erstellen und den Wiederherstellungscode sicher ablegen.
  2. Die CLI installieren und einmal mit sim login anmelden.
  3. Im App-Ordner sim up ausführen und einen Test beschreiben.
cd meine-app
sim up
sim test "Öffne die Suche und prüfe, ob Ergebnisse erscheinen."
sim screenshot --output suche.jpg

Was gehört zusammen?

BegriffBedeutung
App / WorkspaceDie dauerhafte Identität eines Projekts. Dazu gehören Testumgebungen, Builds und der projektspezifische Build-Cache.
TestumgebungEin eigener, dauerhafter Android-Zustand innerhalb einer App. Mehrere Agents können unabhängige Umgebungen parallel verwenden.
SessionEin gerade laufendes Android-Gerät einer Testumgebung. Pro Umgebung läuft höchstens eine Session.
AusgangszustandEine feste Kopie eines gespeicherten Android-Stands. Neue Umgebungen können davon starten; Änderungen bleiben unabhängig.
BuildEin hochgeladener Quellstand, der remote zu einer installierbaren APK gebaut wird.
Test / JobEin Auftrag an das Testmodell. Enthält Aktionen, Status, Ergebnis und Screenshot-Belege.
API-TokenDer Zugang deiner CLI oder deines Agents. Tokens gehören zu deinem Account und lassen sich einzeln widerrufen.

Deine App bleibt eingerichtet

Beim Stoppen einer Session werden die Android-Daten gespeichert. Starte später dieselbe Testumgebung innerhalb der App, um installierte Apps, lokale Daten und bestehende Logins wiederzuverwenden. Eine App kann dich trotzdem abmelden, wenn ihr eigener Server die Sitzung ablaufen lässt.

APK-Updates werden mit Erhalt der App-Daten installiert. Dafür müssen Paketname und Signatur zur installierten App passen. Ein expliziter Neustart mit --fresh beginnt mit einem leeren Android-Gerät.

Welche Projekte funktionieren?

Eine fertige APK ist der direkteste Weg und unabhängig vom verwendeten Framework. Sie muss ARM64 unterstützen oder ohne native, architekturabhängige Bibliotheken auskommen.

Remote-Builds unterstützen native Gradle-Projekte sowie Adapter für React Native, Expo, Flutter und Capacitor. Besondere SDKs, private Abhängigkeiten oder individuelle Build-Schritte können eine sim.json benötigen. Native Gradle-Builds sind Ende zu Ende geprüft; ein Adapter ist keine Garantie für jede Projektkonfiguration.

Dieselben Abläufe im Dashboard

Das Dashboard verwendet die öffentliche API. Apps, Geräte, Aufträge und Artefakte haben dieselben IDs wie in CLI und MCP. Du kannst einen Auftrag per API starten, im Browser übernehmen und anschließend wieder an den Agent zurückgeben.

Im WorkspaceWas du dort machen kannst
Apps & SimulatorenApps und unabhängige Testumgebungen verwalten, Android-Stand fortsetzen oder frisch starten, Ausgangszustände veröffentlichen sowie App-Daten und Build-Cache löschen. Im App-Briefing bleiben Aufbau, Fallstricke und frei benannte Testzugänge gespeichert.
Live-SimulatorAPK hochladen oder aus Katalog und Builds wählen; Modellauftrag mit Kontext, ausgewählten Quelltextdateien, Abnahmekriterien, Wiederholungen, Video, Revisions-Provider und Webhook starten. Unter den Testoptionen legst du fest, nach wie vielen erfolglosen Versuchen der Agent nachfragen soll. Das begrenzt nicht die Gesamtzahl der Schritte.
Während eines TestsRückfragen beantworten, selbst übernehmen, tippen/wischen/Text eingeben und den Auftrag an den Agent zurückgeben. „Job-Beleg erfassen“ speichert den aktuellen Bildschirm und Gerätezustand am Auftrag. „Testbedingungen“ bietet Berechtigungen erteilen/entziehen, Deep Links, Offline-Modus, Gerätezeit und das direkte Prüfen der installierten Revision. Für Änderungen während eines Modelltests zuerst übernehmen.
TestberichteErgebnis-Kategorie, Kriterien, Dauer, Tokens, Kostenschätzung, Wiederholungen und Maestro-Ergebnisse nachvollziehen; Screenshots, Videos, UI-Bäume, Logcat und Revisionen öffnen.
Maestro-BibliothekZIP-Pakete hochladen, suchen, im laufenden Simulator wiederverwenden oder löschen. Im Testformular kannst du stattdessen eine neue ZIP wählen und die YAML-Einstiegspunkte explizit angeben. Maestro nutzt seine YAML-Assertions; zusätzliche Modell-Kriterien passen nur zu Modelltests.
Automatisierung · Geräte & ReservierungenVerfügbare Plätze sehen, Geräte für eine App-Umgebung reservieren, Warteschlange und Leihfrist verfolgen, Reservierungen stornieren oder zugewiesene Geräte freigeben. Die gewählte Leihfrist läuft ab der Zuweisung und beendet bei Ablauf auch einen laufenden Auftrag. Im Live-Simulator wird die Frist eingeblendet. Normale Sessions erhalten dadurch kein neues Zeitlimit.
Automatisierung · WebhooksHTTPS-Empfänger anlegen und löschen, den einmalig angezeigten Signaturschlüssel sichern sowie Zustellversuche und Fehler ansehen. Wähle den Empfänger zusätzlich in den Optionen des jeweiligen Tests aus.
BuildsQuellcode-ZIP remote bauen, Framework und erweiterte Buildoptionen einstellen, Quellstand zuordnen, Ausgabe ansehen, abbrechen sowie die APK herunterladen oder installieren. „Neu bauen“ überspringt die Wiederverwendung einer fertigen APK; der Abhängigkeitscache bleibt nutzbar.
API-SchlüsselSchlüssel für Agents und CLI erstellen und widerrufen. Infrastruktur und kundenübergreifende Daten sind nur im Adminbereich sichtbar.

Die API-Referenz beschreibt Felder und Ereignisse; die Anleitungen für CLI und MCP beschreiben dieselben Abläufe für Agents.

Gerätevarianten, Live-Prüfung und Bilddiagnose

Im Live-Simulator unter „Testbedingungen“ wählst du Telefon- oder Tablet-Display, eigene Auflösung/Dichte und Gerätesprache. Diese Einstellungen bleiben bei der Testumgebung gespeichert. Die Profile emulieren Bildschirmgeometrie, keine Herstellerhardware oder Firmware.

Testoptionen enthalten Ticket-Referenz, Tags, Aufbewahrungsdauer und die Wartezeit für Rückfragen. Standardmäßig endet eine unbeantwortete Rückfrage nach 15 Minuten mit inconclusive; „unbegrenzt warten“ deaktiviert ausschließlich diese Frist. Aufträge erhalten kein Gesamtzeit- oder Schrittlimit.

Unter Testberichte kannst du nach Tickets, Requests, Tags, Apps, Umgebungen und Ergebnis suchen. Im Bericht verwaltest du die Aufbewahrung und findest „Läufe vergleichen“ sowie „Bildbereich vergleichen“. Ziehe den zu prüfenden Bereich auf dem Screenshot auf; Unterschiede werden rot hervorgehoben. Ohne explizite Referenz wird der letzte frühere bestandene Auftrag derselben Umgebung verwendet. Achte auf denselben App-Zustand. Ein Pixelvergleich bewertet weder die Ursache noch automatisch die fachliche Richtigkeit.

„Live beobachten“ zeigt den aktuellen Bildschirm und die Ereignisse, ohne in den Auftrag einzugreifen. Agents verwenden dafür sim watch, android_watch oder die Live- und Ereignis-API. Beobachten verlängert die Leihfrist nicht.

Neue Belege werden standardmäßig 30 Tage nach Job-Ende gelöscht, pro Job sind 1–365 Tage oder Anpinnen möglich. Vor Einführung dieser Regel vorhandene Berichte erhalten eine 30-tägige Übergangsfrist ab Erfassung durch die Aufbewahrungsverwaltung. Angepinnte Belege bleiben bis zum Entpinnen oder expliziten Löschen. Ohne Speicherung werden keine dauerhaften Belegdateien angelegt; Screenshots für Modellaufrufe und die Live-Ansicht bleiben flüchtig. Prompt, Ereignistexte, Ergebnis und Verbrauch bleiben als Metadaten gespeichert. Genauer Umfang und Endpunkte →

Kapazität, Limits und Aufbewahrungsregeln sind außerdem maschinenlesbar unter GET /v1/limits verfügbar.

Ändern, synchronisieren, im Gerät prüfen

sim dev startet einen eigenen entfernten Dev-Server für deine Sitzung und synchronisiert anschließend geänderte Dateien. Metro und die Abhängigkeiten laufen auf dem zugehörigen Android-Worker, nicht auf deinem Rechner. Verschiedene Testumgebungen und Worktrees verwenden getrennte Server und Quellstände. Bei einem kurzen Verbindungsabbruch bleibt der Server weiter aktiv; die CLI gleicht nach Wiederverbindung ab. Ein fremder Revisionsstand wird nicht still überschrieben.

JavaScript-Änderungen benötigen danach keinen neuen APK-Build. Voraussetzung ist eine passende Debug-/Development-Version der App; eine Produktions-APK wird dadurch nicht automatisch zu einem Dev-Client. Native Änderungen können weiterhin einen Neubau erfordern. Die erste Installation von Abhängigkeiten und das erste Bundle brauchen länger als spätere Dateiänderungen. Einrichtung und CLI-Befehle →

Im Live-Simulator unter Entwicklung & Daten verwaltest du den Dev-Server, lädst einen Quellcode-ZIP hoch, öffnest den Dev-Client und liest den Status. Dort findest du außerdem Galerie-/Datei-Upload, Downloads, Clipboard, Live-Logcat und die App-Update-Schnittstelle. Für automatischen inkrementellen Dateiabgleich verwende die CLI oder android_dev_sync.

Ein OTA-Kanalwechsel funktioniert nur über einen von deiner App bereitgestellten Deep Link oder ContentProvider. sim zeigt angeforderten Kanal, Rückmeldung und gemeldete Revision getrennt an. Ohne bestätigte Update-ID behauptet es keinen erfolgreichen Bundle-Wechsel. App-Vertrag und Prüfung →

APK-Updates verwenden adb install -r: Android-App-Daten werden bei kompatiblem Paket und gleicher Signatur behalten. Bei einem Signaturkonflikt bricht die Installation ab; sim deinstalliert oder löscht die Daten nicht automatisch. Die App kann durch eigene Migrationen oder abgelaufene Backend-Sitzungen dennoch einen erneuten Login verlangen.

Ein Neustart des Dev-Server-Kontrolldienstes beendet laufende Dev-Server. Sie werden derzeit nicht automatisch mit ihrem Quellstand wiederhergestellt. Prüfe danach den Status, stoppe den alten Dev-Server ausdrücklich, warte auf stopped und starte sim dev erneut. Dabei wird der Quellstand erneut hochgeladen; die gespeicherten Android-App-Daten sind davon getrennt.

Während eines laufenden Tests bleibt der Quellstand stabil: Konfiguration, Synchronisierung, Stoppen und Öffnen des Dev-Servers sind erst nach Übernahme oder Stoppen des Tests möglich. Der CLI-Watch wartet in dieser Zeit. Neue Tests und das Fortsetzen nach einer Übernahme sind erst bei ready:true des konfigurierten Dev-Servers möglich.

Wackler über mehrere Aufträge erkennen

Die Ablaufhistorie verbindet die letzten 20 abgeschlossenen Jobs je Test über verschiedene Sessions derselben App-Umgebung. Maestro nutzt den YAML-Einstiegspfad, Modelltests einen ausdrücklich gesetzten test_key. Neue ZIP-Versionen unter demselben Pfad bleiben vergleichbar; ein neuer Dateipfad beginnt eine neue Historie.

Fehlerquote, gemischte Wiederholungen innerhalb eines Jobs und Grün/Rot-Wechsel zwischen Jobs werden getrennt ausgewiesen. Infrastruktur- und Navigationsfehler zählen nicht als App-Fehler. Ein immer roter Test ist fehlerhaft, aber kein nachgewiesener Wackler. Änderungen an Build, Quellrevision oder Gerät können unterschiedliche Ergebnisse erklären.

Quarantäne ist eine manuelle, begründete Markierung mit optionalem Ablaufdatum. Tests laufen weiterhin, Rohurteile bleiben erhalten. Nur eine Pipeline, die sich ausdrücklich für die Überwachung mit Quarantäne-Ausnahmen entscheidet, darf gate:non_blocking verwenden. Die normale Abnahme wird dadurch nicht automatisch grün. CLI-Befehle · API und Kennzahlen

Gespeicherte Tests und Ausgangszustände

Benannte Snapshots sichern einen lokalen Android-Zustand. Starte daraus eine separate Umgebung und verwirf ihre Änderungen nach dem Test. Gespeicherte Testdefinitionen lernen aus überprüften erfolgreichen Läufen einen wiederverwendbaren Ablauf; Pointer und UI-Prüfungen sichern Wiederholungen ab, das Modell übernimmt bei Abweichungen.

CLI-Anleitung · API-Vertrag · MCP-Werkzeuge