marathon
Marathon is an open-source test orchestration platform for Android and iOS that prioritizes fast, stable test execution through intelligent parallelization, flakiness detection, and retry strategies. It can be self-hosted or run against custom device farms, with native Gradle and Xcode integration.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | MarathonLabs/marathon |
| Owner | MarathonLabs |
| Primary language | Kotlin |
| License | GPL-2.0 — OSI-approved |
| Stars | 640 |
| Forks | 123 |
| Open issues | 69 |
| Latest release | 0.10.4 (2025-04-18) |
| Last updated | 2026-04-29 |
| Source | https://github.com/MarathonLabs/marathon |
What marathon is
Kotlin-based test runner implementing test batching, device pooling, intelligent sharding, duration-aware sorting, and statistical flakiness mitigation. Supports Android (Espresso/Instrumentation) and iOS (XCUITest) natively; extensible via custom vendor implementations. Requires Java 17+.
Get the marathon source
Clone the repository and explore it locally.
git clone https://github.com/MarathonLabs/marathon.gitcd marathon# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Requires Java Runtime Environment 17 or higher; verify CI/CD and local developer environments meet this minimum.
- YAML configuration (Marathonfile and optional Marathondevices) must be maintained; iOS requires manual simulator UDID or provisioning setup.
- Device pool and worker setup differs between Android (local gradle) and iOS (SSH to macOS instances); budget time for environment hardening.
- Statistical flakiness tuning (preventive/post-factum retry strategies) benefits from baseline test data; cold starts may see conservative defaults.
- GPL-2.0 license: any modifications to the core or linking as a library must be evaluated for open-source compliance and release obligations.
When to avoid it — and what to weigh
- Commercial closed-source distribution or SaaS embedding required — GPL-2.0 license requires source code disclosure. Proprietary modifications cannot be used without releasing source. Consider Marathon Cloud (paid service) or license review.
- Non-mobile or non-instrumentation testing focus — Designed specifically for Android (Espresso) and iOS (XCUITest). Custom vendor implementations exist but are not documented in primary materials.
- Minimal DevOps resources or strong cloud-only preference — Self-hosted Marathon requires managing device infrastructure, Java 17 runtime, and orchestration. Marathon Cloud (commercial offering) offloads this.
- Projects unable to adopt Kotlin tooling or Java 17+ environments — Kotlin-based codebase; requires Java 17+. Integration complexity increases if existing CI/CD lacks Java support.
License & commercial use
GPL-2.0 (GNU General Public License v2.0). Optional components under separate licenses (libxctest-parser). GPL-2.0 is a copyleft license requiring derivative works and linked software to remain open-source.
GPL-2.0 is a strong copyleft license. Internal or private use of unmodified Marathon is permitted. However, any distribution of modifications, integration into proprietary products, or use in closed-source SaaS requires either: (1) releasing source code under GPL-2.0, or (2) obtaining an alternative license. Marathon Cloud is a separate commercial offering for hosted testing. **License review strongly recommended before embedding or reselling.**
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | High |
| DEV.co fit | Good |
| Assessment confidence | High |
No security claims or posture data provided. Considerations: (1) CLI tool downloads and executes APK/xctest binaries; verify artifact source integrity. (2) SSH workers for iOS require key management; follow bastion/jump host patterns. (3) Test output may contain sensitive app data; logs and reports should be treated as artifacts. (4) Runs instrumented tests with elevated device access; no explicit mention of sandboxing or isolation.
Alternatives to consider
Firebase Test Lab / Google Cloud Testing
Fully managed cloud service for Android/iOS. No on-premise infrastructure, no open-source licensing concerns, but higher cost and less control over device selection and retry logic.
Bitrise / App Center / Sauce Labs
Commercial CI/CD and mobile testing platforms with similar parallelization and flakiness detection. Proprietary but lower DevOps overhead; licensing not a concern.
Gradle Test Orchestrator (Android) / XCTest native sharding
Native platform tooling for test parallelization. Free and tightly integrated but less sophisticated flakiness management and cross-platform features than Marathon.
Build on marathon with DEV.co software developers
Marathon is ideal for teams needing high-parallelization mobile test runs with flakiness resilience. Verify GPL-2.0 license compliance for your use case; consider Marathon Cloud if self-hosting is not feasible.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
marathon FAQ
Can I use Marathon in a proprietary, closed-source product?
What devices does Marathon support?
Do I need Marathon Cloud or can I self-host?
How does Marathon handle test flakiness?
Work with a software development agency
From first prototype to production, DEV.co delivers software development services around tools like marathon. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source testing and beyond.
Evaluate Marathon for Your Mobile Testing Pipeline
Marathon is ideal for teams needing high-parallelization mobile test runs with flakiness resilience. Verify GPL-2.0 license compliance for your use case; consider Marathon Cloud if self-hosting is not feasible.