# Tap > Host-driven end-to-end testing for Android, in Kotlin or Python: one server per machine, a separate on-device driver, thin JUnit 5 and pytest clients. Every page below is Markdown; the HTML site is at the same path without `.md`. [llms-full.txt](https://noamcohen48.github.io/tap/llms-full.txt) holds the guide and the references in one file, and [tap-docs-md.zip](https://noamcohen48.github.io/tap/tap-docs-md.zip) the whole Markdown bundle, including the generated Kotlin and Python API references. ## Start - [Home](https://noamcohen48.github.io/tap/index.md) ## Guide - [Getting started](https://noamcohen48.github.io/tap/guide/getting-started.md) - [Download](https://noamcohen48.github.io/tap/download.md) - [The tap server](https://noamcohen48.github.io/tap/guide/server.md) - [Selectors](https://noamcohen48.github.io/tap/guide/selectors.md) - [App or screen](https://noamcohen48.github.io/tap/guide/app-or-screen.md) - [Elements and text](https://noamcohen48.github.io/tap/guide/elements.md) - [Gestures](https://noamcohen48.github.io/tap/guide/gestures.md) - [Waits](https://noamcohen48.github.io/tap/guide/waits.md) - [Keys, screen and rotation](https://noamcohen48.github.io/tap/guide/device-control.md) - [App lifecycle](https://noamcohen48.github.io/tap/guide/app-lifecycle.md) - [Permissions](https://noamcohen48.github.io/tap/guide/permissions.md) - [Device conditions](https://noamcohen48.github.io/tap/guide/device-conditions.md) - [Notifications and toasts](https://noamcohen48.github.io/tap/guide/notifications.md) - [Files and the gallery](https://noamcohen48.github.io/tap/guide/files.md) - [Multi-device tests](https://noamcohen48.github.io/tap/guide/multi-device.md) - [Errors](https://noamcohen48.github.io/tap/guide/errors.md) - [Screenshots and artifacts](https://noamcohen48.github.io/tap/guide/artifacts.md) - [Coming from Maestro or Appium](https://noamcohen48.github.io/tap/guide/coming-from.md) ## SDKs - [SDKs](https://noamcohen48.github.io/tap/sdk/index.md) - [Python + pytest](https://noamcohen48.github.io/tap/sdk/python.md) - [Kotlin + JUnit 5](https://noamcohen48.github.io/tap/sdk/kotlin.md) - [Python client](https://noamcohen48.github.io/tap/reference/python/index.md) - [Device](https://noamcohen48.github.io/tap/reference/python/device.md) - [Element](https://noamcohen48.github.io/tap/reference/python/element.md) - [Selectors](https://noamcohen48.github.io/tap/reference/python/selectors.md) - [App](https://noamcohen48.github.io/tap/reference/python/app.md) - [Screen](https://noamcohen48.github.io/tap/reference/python/screen.md) - [Client and connections](https://noamcohen48.github.io/tap/reference/python/client.md) - [Artifacts](https://noamcohen48.github.io/tap/reference/python/artifacts.md) - [Values](https://noamcohen48.github.io/tap/reference/python/values.md) - [Enums](https://noamcohen48.github.io/tap/reference/python/enums.md) - [Snapshots and the event log](https://noamcohen48.github.io/tap/reference/python/snapshots.md) - [Errors](https://noamcohen48.github.io/tap/reference/python/errors.md) - [pytest plugin](https://noamcohen48.github.io/tap/reference/python/pytest.md) - [Kotlin](https://noamcohen48.github.io/tap/reference/kotlin.md) ## tap-agent - [Coding agents: tap-agent](https://noamcohen48.github.io/tap/agent/index.md) - [A session, step by step](https://noamcohen48.github.io/tap/agent/session.md) - [Sessions to tests](https://noamcohen48.github.io/tap/agent/export.md) - [Commands](https://noamcohen48.github.io/tap/agent/commands.md) ## Tap Studio - [Tap Studio: inspect and record](https://noamcohen48.github.io/tap/studio/index.md) - [A first recording](https://noamcohen48.github.io/tap/studio/first-recording.md) - [The page](https://noamcohen48.github.io/tap/studio/page.md) - [Steps and export](https://noamcohen48.github.io/tap/studio/steps.md) ## tap-watcher - [tap-watcher: watch actions and video](https://noamcohen48.github.io/tap/watcher/index.md) - [The Live view](https://noamcohen48.github.io/tap/watcher/live.md) - [Clips, recordings and the Library](https://noamcohen48.github.io/tap/watcher/library.md) ## Reference - [API reference](https://noamcohen48.github.io/tap/reference/index.md) - [gRPC server API (tap.v1)](https://noamcohen48.github.io/tap/reference/grpc.md) - [Releases and versions](https://noamcohen48.github.io/tap/reference/releases.md) ## Development - [Development](https://noamcohen48.github.io/tap/development/index.md) - [Architecture](https://noamcohen48.github.io/tap/development/architecture.md) - [Building and testing](https://noamcohen48.github.io/tap/development/building-and-testing.md)