On this page
Overview
Appium is a W3C WebDriver-based automation framework for Android, iOS, macOS, Windows, and other application platforms. Its core server is separated from platform-specific drivers, allowing Java, Python, Ruby, C#, and other clients to use a common WebDriver-style automation model.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Automate applications through a W3C WebDriver client/server model
Test code sends WebDriver commands to the Appium server, which delegates platform operations to a driver. Native, hybrid, mobile web, and other application types can use the same overall automation model.
Install only the platform drivers you need
Since Appium 2, the core server and platform drivers are separate. Drivers such as UiAutomator2 for Android or XCUITest for iOS are installed and updated individually through the Extension CLI.
Best fit
Before adoption
3.8.0 is stable while 4.0 remains in beta
The stable Appium package is 3.8.0, while 4.0.0-beta.2 is a prerelease. Keep stable 3.x environments separate from 4.x beta evaluation and review migration and driver compatibility before changing major versions.
Appium 3 requires the specified Node.js 20.19+ ranges and npm 10+
The Appium 3 package requires Node.js ^20.19.0 || ^22.12.0 || >=24.0.0 and npm 10 or newer. Align CI images and developer machines with these requirements before installing.
Official sources
- [1]Appium README(2026-10-03)
- [2]Appium introduction(2026-10-03)
- [3]Appium drivers(2026-10-03)
- [4]Appium plugins(2026-10-03)
- [5]Appium 3 system requirements(2026-10-03)
- [6]Appium package.json(2026-10-03)
- [7]Appium CHANGELOG(2026-10-03)
- [8]Appium releases(2026-10-03)
Supplemental curator note
The Appium server alone cannot automate a target platform; a compatible driver and platform SDK/toolchain are also required. Pin server, driver, SDK, and emulator/device versions as one compatibility matrix to keep test environments reproducible.
Try it in 3 steps
- 1
Install Appium 3.8.0
Install the stable release on Node.js
^20.19.0 || ^22.12.0 || >=24.0.0with npm 10 or newer.npm install -g appium@3.8.0 - 2
Add the UiAutomator2 driver for Android
The Appium core cannot automate a platform by itself, so this example installs the official Android driver. Android SDK and other driver prerequisites are still required.
appium driver install uiautomator2 - 3
Start the Appium server
If the server starts and recognizes the installed driver, the core setup is working. Creating an automation session also requires client code plus a configured device or emulator.
appium
Growth
Growth trends · Last 30 days
22,040 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 63
- Open PRs
- 8
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- appium
- webdriver
- android
- ios
- windows
- automation
- macos
- test-automation
- Stars
- 22,040
- Forks
- 6,288
- Watchers
- 845
- Open issues
- 37
- Contributors
- 354
- Owner type
- Organization
- Primary language
- TypeScript
- License
- Apache-2.0
- Repository last updated
- Oct 3, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- AndroidX Test1,225 Stars
2 shared tag(s) · 3 shared category(s)
build Android instrumented and UI tests with AndroidJUnitRunner, Espresso, and AndroidX Test Core
Java - Storybook91,196 Stars
2 shared tag(s) · 2 shared category(s) · Same language
capture UI states once and reuse them across docs, interaction tests, and agent tooling
TypeScript - Jest45,457 Stars
2 shared tag(s) · 2 shared category(s) · Same language
Combine assertions, mocks, watch mode, snapshots, coverage, and worker isolation in one JavaScript test runner
TypeScript - Renovate22,662 Stars
2 shared tag(s) · 2 shared category(s) · Same language
automate dependency discovery and update pull requests across 90+ package managers
TypeScript - commitlint18,759 Stars
2 shared tag(s) · 2 shared category(s) · Same language
lint Git commit messages against Conventional Commits and custom rules so release and changelog automation receives consistent metadata
TypeScript - Changesets12,466 Stars
2 shared tag(s) · 2 shared category(s) · Same language
record SemVer bump intent and changelog notes with each change, then coordinate version updates and package publishing across monorepos
TypeScript
Report incorrect information
Tell us if any listing information is incorrect or outdated.