{"id":13459136,"url":"https://github.com/appium/appium","last_synced_at":"2026-04-09T20:31:15.741Z","repository":{"id":6296049,"uuid":"7530570","full_name":"appium/appium","owner":"appium","description":"Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol","archived":false,"fork":false,"pushed_at":"2026-03-04T20:04:26.000Z","size":231795,"stargazers_count":21248,"open_issues_count":78,"forks_count":6270,"subscribers_count":856,"default_branch":"master","last_synced_at":"2026-03-04T23:58:25.963Z","etag":null,"topics":["android","appium","automation","ios","macos","test-automation","webdriver","windows"],"latest_commit_sha":null,"homepage":"http://appium.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"open_collective":"appium"}},"created_at":"2013-01-09T22:49:50.000Z","updated_at":"2026-03-04T20:04:03.000Z","dependencies_parsed_at":"2023-09-22T23:16:06.036Z","dependency_job_id":"50c20c73-7c60-4d7f-8379-41d51e880c8d","html_url":"https://github.com/appium/appium","commit_stats":{"total_commits":9156,"total_committers":419,"mean_commits":"21.852028639618137","dds":0.7325251201397991,"last_synced_commit":"c8d63532b82256ac8214aee9cf78c00d23f23177"},"previous_names":[],"tags_count":2017,"template":false,"template_full_name":null,"purl":"pkg:github/appium/appium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fappium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fappium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fappium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fappium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appium","download_url":"https://codeload.github.com/appium/appium/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appium%2Fappium/sbom","scorecard":{"id":203605,"data":{"date":"2025-08-11","repo":{"name":"github.com/appium/appium","commit":"026ea0d0583897064da63270d793687415189637"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 24 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":2,"reason":"Found 5/22 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: topLevel permissions set to 'read-all': .github/workflows/auto-labeler.yml:7","Info: topLevel 'contents' permission set to 'read': .github/workflows/build.yml:51","Warn: no topLevel permission defined: .github/workflows/clean-cache.yml:1","Warn: no topLevel permission defined: .github/workflows/crowdin-sync-docs-translations.yml:1","Warn: no topLevel permission defined: .github/workflows/crowdin-update-docs-resources.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/deploy.yml:9","Warn: no topLevel permission defined: .github/workflows/docs.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/fossa.yml:7","Warn: no topLevel permission defined: .github/workflows/on-hold.yml:1","Warn: no topLevel permission defined: .github/workflows/pr-title.yml:1","Warn: no topLevel permission defined: .github/workflows/publish-doc.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/renovate.yml:19","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":1,"reason":"dependency not pinned by hash detected -- score normalized to 1","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-labeler.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/auto-labeler.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/build.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/clean-cache.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/clean-cache.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/crowdin-sync-docs-translations.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/crowdin-sync-docs-translations.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/crowdin-sync-docs-translations.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/crowdin-sync-docs-translations.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/crowdin-sync-docs-translations.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/crowdin-sync-docs-translations.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/crowdin-update-docs-resources.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/crowdin-update-docs-resources.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/crowdin-update-docs-resources.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/crowdin-update-docs-resources.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/deploy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/deploy.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/fossa.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/fossa.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/fossa.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/fossa.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/on-hold.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/on-hold.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/pr-title.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/pr-title.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-doc.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/publish-doc.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-doc.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/publish-doc.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-doc.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/publish-doc.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/renovate.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/renovate.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/renovate.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/appium/appium/renovate.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/deploy.yml:38","Warn: npmCommand not pinned by hash: .github/workflows/deploy.yml:40","Warn: pipCommand not pinned by hash: .github/workflows/docs.yml:48","Warn: downloadThenRun not pinned by hash: .github/workflows/fossa.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/publish-doc.yml:35","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  12 third-party GitHubAction dependencies pinned","Info:   2 out of   4 npmCommand dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/appium/.github/SECURITY.md:1","Info: Found linked content: github.com/appium/.github/SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: github.com/appium/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T23:15:04.968Z","repository_id":6296049,"created_at":"2025-08-16T23:15:04.968Z","updated_at":"2025-08-16T23:15:04.968Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30176262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T11:48:51.886Z","status":"ssl_error","status_checked_at":"2026-03-06T11:48:51.460Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","appium","automation","ios","macos","test-automation","webdriver","windows"],"created_at":"2024-07-31T09:01:05.837Z","updated_at":"2026-03-08T22:05:00.442Z","avatar_url":"https://github.com/appium.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n   \u003ca href=\"https://appium.io/\"\u003e\n      \u003cimg alt=\"Appium\" src=\"https://raw.githubusercontent.com/appium/appium/master/packages/appium/docs/overrides/assets/images/appium-logo-horiz.png\" width=\"500\"\u003e\n   \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n   Cross-platform test automation for native, hybrid, mobile web and desktop apps.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![NPM version](https://badge.fury.io/js/appium.svg)](https://npmjs.org/package/appium)\n[![Monthly Downloads](https://img.shields.io/npm/dm/appium.svg)](https://npmjs.org/package/appium)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium?ref=badge_shield)\n[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/)\n[![CeasefireInGaza](https://img.shields.io/badge/Ceasefire_Now-%F0%9F%87%B5%F0%9F%87%B8-red?style=flat)](https://www.unrwa.org/)\n\n\u003c/div\u003e\n\n***\n\n\u003cp align=\"center\"\u003e\u003cb\u003e\n   \u003ca href=\"https://appium.io\"\u003eDocumentation\u003c/a\u003e |\n   \u003ca href=\"https://appium.io/docs/en/latest/intro/\"\u003eGet Started\u003c/a\u003e |\n   \u003ca href=\"https://appium.io/docs/en/latest/ecosystem/\"\u003eEcosystem\u003c/a\u003e |\n   \u003ca href=\"https://github.com/appium/appium/blob/master/packages/appium/CHANGELOG.md\"\u003eChangelog\u003c/a\u003e |\n   \u003ca href=\"https://appium.io/docs/en/latest/contributing/\"\u003eContributing Guide\u003c/a\u003e |\n   \u003ca href=\"https://discuss.appium.io\"\u003eDiscussion Forum\u003c/a\u003e\n\u003c/b\u003e\u003c/p\u003e\n\n***\n\nAppium is an open-source automation framework that provides\n[WebDriver](https://www.w3.org/TR/webdriver/)-based automation possibilities for a wide range of\ndifferent mobile, desktop and IoT platforms. Appium is modular and extensible, and supports multiple\nprogramming languages, which means there is an entire ecosystem of related software:\n* [__Drivers__](#drivers) add support for automating specific platforms\n* [__Clients__](#clients) allow writing Appium tests in your programming language of choice\n* [__Plugins__](#plugins) allow to further extend Appium functionality\n\n## Upgrading From Older Versions\n\nThe Appium team only provides support for the most recent version of Appium. If you wish to upgrade from\nan older major Appium version, please refer to the migration guides:\n\n* [Appium v2 to v3](https://appium.io/docs/en/latest/guides/migrating-2-to-3/)\n* [Appium v1 to v2](https://appium.io/docs/en/latest/guides/migrating-1-to-2/)\n\n## Installation\n\nAppium can be installed using `npm` (other package managers are not currently supported). Please\ncheck the [installation docs](http://appium.io/docs/en/latest/quickstart/install/) for the\nsystem requirements and further information.\n\nIf upgrading from Appium 1, make sure Appium 1 is fully uninstalled (`npm uninstall -g appium`).\nUnexpected errors might appear if this has not been done.\n\n```bash\nnpm i -g appium\n```\n\nNote that this will only install the core Appium server, which cannot automate anything on its own.\nPlease install [drivers](#drivers) for your target platforms in order to automate them.\n\n## Drivers\n\nAppium supports app automation across a variety of platforms, like iOS, Android, macOS, Windows,\nand more. Each platform is supported by one or more \"drivers\", which know how to automate that\nparticular platform. You can find a full list of officially-supported and third-party drivers in\n[Appium Ecosystem's Drivers page](http://appium.io/docs/en/latest/ecosystem/drivers/).\n\nDriver management is done using [Appium's Extension command-line interface](http://appium.io/docs/en/latest/cli/extensions/):\n\n```bash\n# Install an official driver from npm (see documentation for a list of such drivers)\nappium driver install \u003cdriver-name\u003e\n# Install any driver from npm\nappium driver install --source=npm \u003cdriver-name\u003e\n# See documentation for installation from other sources\n\n# List already installed drivers\nappium driver list --installed\n# Update a driver (it must be already installed)\n# This will NOT update the major version, in order to prevent breaking changes\nappium driver update \u003cdriver-name\u003e\n# Update a driver to the most recent version (may include breaking changes)\nappium driver update \u003cdriver-name\u003e --unsafe\n# Uninstall a driver (it won't last forever, will it?)\nappium driver uninstall \u003cdriver-name\u003e\n```\n\n## Clients\n\nClient libraries enable writing Appium tests in different programming languages. There are\nofficially-supported clients for Java, Python, Ruby, and .NET C#, as well as third-party clients\nfor other languages. You can find a full list of clients in\n[Appium Ecosystem's Clients page](http://appium.io/docs/en/latest/ecosystem/clients/).\n\n## Plugins\n\nPlugins allow you to extend server functionality without changing the server code. The main\ndifference between drivers and plugins is that the latter must be explicitly enabled on\nAppium server startup (all installed drivers are enabled by default):\n\n```bash\nappium --use-plugins=\u003cplugin-name\u003e\n```\n\nYou can find a full list of officially-supported and third-party plugins in\n[Appium Ecosystem's Plugins page](http://appium.io/docs/en/latest/ecosystem/plugins/).\n\nSimilarly to drivers, plugin management is also done using\n[Appium's Extension command-line interface](http://appium.io/docs/en/latest/cli/extensions/):\n\n```bash\n# Install an official plugin from npm (see documentation for a list of such plugins)\nappium plugin install \u003cplugin-name\u003e\n# Install any plugin from npm\nappium plugin install --source=npm \u003cplugin-name\u003e\n# See documentation for installation from other sources\n\n# List already installed plugins\nappium plugin list --installed\n# Update a plugin (it must be already installed)\n# This will NOT update the major version, in order to prevent breaking changes\nappium plugin update \u003cplugin-name\u003e\n# Update a plugin to the most recent version (may include breaking changes)\nappium plugin update \u003cplugin-name\u003e --unsafe\n# Uninstall a plugin\nappium plugin uninstall \u003cplugin-name\u003e\n```\n\n## Server Command Line Interface\n\nIn order to start sending commands to the Appium server, it must be running on the URL and port\nwhere your client library expects it to listen. [Appium's command-line interface](http://appium.io/docs/en/latest/cli/server/)\nis used to launch and configure the server:\n\n```bash\n# Start the server on the default host (0.0.0.0) and port (4723)\nappium server\n# You can also omit the 'server' subcommand\nappium\n# Start the server on the given host, port and use a custom base path prefix (the default prefix is '/')\nappium --address 127.0.0.1 --port 9000 --base-path /wd/hub\n```\n\nAppium supports execution of parallel server processes, as well as parallel driver sessions within a\nsingle server process. Refer the corresponding driver documentations regarding which mode is optimal\nfor the particular driver or whether it supports parallel sessions.\n\n## Why Appium?\n\n1. You usually don't have to recompile your app or modify it in any way, due to the use of standard\n   automation APIs on all platforms.\n2. You can write tests with your favorite dev tools using any WebDriver-compatible language such as\n   Java, Python, Ruby and C#. There are also third party client implementations for other languages.\n3. You can use any testing framework.\n4. Some drivers like `xcuitest` and `uiautomator2` have built-in mobile web and hybrid app support.\n   Within the same script, you can switch seamlessly between native app automation and webview\n   automation, all using the WebDriver model that's already the standard for web automation.\n5. You can run your automated tests locally and in a cloud. There are multiple cloud providers that\n   support various Appium drivers (mostly targeting iOS and Android mobile automation).\n6. [Appium Inspector](https://github.com/appium/appium-inspector) can be used to visually inspect\n   the page source of applications across different platforms, facilitating easier test development.\n\nInvesting in the [WebDriver](https://w3c.github.io/webdriver/webdriver-spec.html) protocol means you\nare betting on a single, free, and open protocol for testing that has become a web standard. Don't\nlock yourself into a proprietary stack.\n\nFor example, if you use Apple's XCUITest library without Appium, you can only write tests using\nObj-C/Swift, and you can only run tests through Xcode. Similarly, with Google's UiAutomator or\nEspresso, you can only write tests in Java/Kotlin. Appium opens up the possibility of true\ncross-platform native app automation, for mobile and beyond!\n\nIf you are looking for a more comprehensive description of what this is all about, please read our\ndocumentation on [How Does Appium Work?](https://appium.io/docs/en/latest/intro/appium/).\n\n## Sponsors\n\nAppium has a [Sponsorship Program](GOVERNANCE.md#sponsorship)! If you or your company uses Appium\nand wants to give back financially to the project, we use these funds to [encourage development and\ncontributions](GOVERNANCE.md#compensation-scheme), as well as support other open source projects we\nrely on. [Become a sponsor](https://opencollective.com/appium) via our OpenCollective page.\n\n### Development and Strategic Partners\n\nAppium is incredibly grateful to our Development and Strategic Partners for their sustained\ncontribution of project development and leadership!\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.browserstack.com/browserstack-appium?utm_campaigncode=701OW00000AoUTQYA3\u0026utm_medium=partnered\u0026utm_source=appium\"\u003e\n    \u003cpicture\u003e\n      \u003csource srcset=\"packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png\" media=\"(prefers-color-scheme: dark)\"/\u003e\n      \u003csource srcset=\"packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-light.png\" media=\"(prefers-color-scheme: light)\"/\u003e\n      \u003cimg src=\"packages/appium/docs/overrides/assets/images/sponsor-logo-browserstack-dark.png\" width=\"300\" alt=\"Browserstack\"/\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.testmuai.com\"\u003e\n    \u003cpicture\u003e\n      \u003csource srcset=\"packages/appium/docs/overrides/assets/images/sponsor-logo-testmuai-dark.png\" media=\"(prefers-color-scheme: dark)\"/\u003e\n      \u003csource srcset=\"packages/appium/docs/overrides/assets/images/sponsor-logo-testmuai-light.png\" media=\"(prefers-color-scheme: light)\"/\u003e\n      \u003cimg src=\"packages/appium/docs/overrides/assets/images/sponsor-logo-testmuai-dark.png\" width=\"300\" alt=\"TestMu AI (formerly LambdaTest)\"/\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n### Other Sponsors\n\nA full list of sponsors is available at our [Sponsors page](https://appium.io/docs/en/latest/sponsors/).\n\n## License\n\n[Apache-2.0](./LICENSE)\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fappium%2Fappium?ref=badge_large)\n\n`@appium/logger` package is under [ISC](./packages/logger/LICENSE) License.\n","funding_links":["https://opencollective.com/appium"],"categories":["JavaScript","HarmonyOS","Mobile Testing","GUI Automation","Repository","NodeJS","[Mobile Testing](TestingDomains.md/#mobile-testing)","Tools","E2E Test","前端开发框架及项目","📦 Modules/Packages","Testing Frameworks","automation","Uncategorized","TypeScript","The List of AI Testing Tools","Mobile App Testing","Testing"],"sub_categories":["Windows Manager",".NET","Snippets Manager","Automation \u0026 RPA","Framework","其他_文本生成、文本对话",":curly_loop: Typography","\u003ca name=\"#csharp\"\u003e\u003c/a\u003eC#","Uncategorized","22. Appium","Appium","Graphics \u0026 Drawing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappium%2Fappium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappium%2Fappium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappium%2Fappium/lists"}