Docs

Kaloko

Download
Markdown with pictures (.zip)Docusaurus folder (.zip)VitePress folder (.zip)MkDocs folder (.zip)Offline HTML (.zip)PDFChangelog as JSON
Pages

Walk Android, iOS and desktop apps

Kaloko walks native apps the way it walks web pages: every step becomes a screenshot with its UI tree, checked criteria and a place on the canvas. The scenario says which platform it is, and the config says which app to open.

1. Name the app per environment

# kaloko.config.yml
environments:
  staging:
    app:
      android: { package: com.acme.shop.staging, apk: build/app-staging.apk, reset: true }
      ios: { bundle: com.acme.shop, app: build/Shop.app, device: iPhone 17 }
  desktop:
    app:
      electron: { main: dist/main.js }
      # desktop: { name: Notes }                         # a macOS app by its window
      # windows: { name: contoso, path: dist/Contoso.exe }

2. Set the platform in the scenario

platform: android        # android | ios | electron | desktop | windows
devices: [pixel-8-api-34, pixel-7-api-33]
color_schemes: [light, dark]
nodes:
  - id: product
    kind: screen
    path: shop://product/42     # a deep link
    packs: [app]

Steps are reached by deep links or by a step script (app.tap(…), app.type(…)). Every locale starts the app fresh in that language, and reset: true clears its data first.

What each platform can do

PlatformDriven byNotes
Androidadb: emulator, USB phone or a phone over Wi-Fian emulator that is not running is started; dark mode and reduced motion are set per capture
iOS Simulatorxcrun simctltaps and the UI tree need idb; without it Kaloko reads the text from the screen
iPhone and iPaddevicectl and a screenshot toolcapture only, text read from the screen
ElectronPlaywrightthe window is a web page: every web check applies
macOS appthe app's window and accessibility treecapture only; your tool, AppleScript or a person moves between screens
Windows appUI Automation through PowerShelltaps and typing; walk it on Windows

The app pack checks labels on controls, touch target sizes, cut-off text and crashes.

Screens from other tools

Maestro, Appium, XCUITest, Detox or a person can take the screenshot, and Kaloko lays it out with its UI dump:

npx kaloko capture --step checkout --image shot.png --tree hierarchy.xml --device "Pixel 8" --density 2.625

--tree reads uiautomator or Appium XML, idb ui describe-all --json and Maestro's hierarchy JSON. Without a tree, --ocr reads the text from the image on macOS. A whole folder of screenshots or a test report goes in with npx kaloko import.

Check the machine first

npx kaloko doctor

It says which app tools are missing on this machine (adb, simctl, idb, ffmpeg) and how to install them. On macOS, kaloko doctor --fix asks for the Screen Recording and Accessibility permissions desktop captures need.

On this pageOn this page