Individual skill
mobilerun-docs
Mobilerun documentation reference. Use when users ask about Mobilerun setup, configuration, SDK usage, CLI commands, device setup, agents, architecture, app cards, credentials, tracing, Docker, migration, structured output, or any Mobilerun "how do I..." questions.
SKILL.md
Source commit 11dcdebdec9ea99f172dd7e80af7ba1eadbeb6c8
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 2, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 9,995
- Repository last updated
- Nov 5, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- ai-agents Repository topic
- android Repository topic
- android-automation Repository topic
- hacktoberfest Repository topic
- mobile-automation Repository topic
- docs Derived category
- engineering Derived category
- devops Derived category
- devops-containers Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.dockerignoreasset · 50 bytes.github/workflows/black.ymlasset · 362 bytes.github/workflows/bounty.ymlasset · 4,355 bytes.github/workflows/claude.ymlasset · 1,898 bytes.github/workflows/docker.ymlasset · 2,320 bytes.github/workflows/publish.ymlasset · 3,741 bytes.gitignoreasset · 470 bytes.python-versionasset · 4 bytesCONTRIBUTING.mddoc · 3,032 bytesDockerfileruns · 579 bytesLICENSEasset · 1,069 bytesMANIFEST.inasset · 150 bytesREADME.mddoc · 13,694 bytesSKILL.mdcore · 4,325 bytesSKILL.mdcore · 4,325 bytesagent-test-flows/README.mddoc · 2,021 bytescompat/droidrun/__init__.pyruns · 4,865 bytescompat/droidrun/__main__.pyruns · 247 bytescompat/droidrun/cli_shim.pyruns · 382 bytescompat/droidrun/macro/__init__.pyruns · 569 bytescompat/droidrun/macro/__main__.pyruns · 248 bytescompat/pyproject.tomlasset · 574 bytesgen-docs-sdk-ref.shruns · 513 bytesglama.jsonasset · 109 bytesmobilerun/__init__.pyruns · 2,976 bytesmobilerun/__main__.pyruns · 109 bytesmobilerun/agent/__init__.pyruns · 80 bytesmobilerun/agent/action_context.pyruns · 1,455 bytesmobilerun/agent/action_result.pyruns · 320 bytesmobilerun/agent/common/__init__.pyruns · 0 bytesmobilerun/agent/common/constants.pyruns · 96 bytesmobilerun/agent/common/events.pyruns · 391 bytesmobilerun/agent/droid/__init__.pyruns · 810 bytesmobilerun/agent/droid/droid_agent.pyruns · 57,850 bytesmobilerun/agent/droid/events.pyruns · 2,544 bytesmobilerun/agent/droid/state.pyruns · 8,573 bytesmobilerun/agent/executor/__init__.pyruns · 563 bytesmobilerun/agent/executor/events.pyruns · 932 bytesmobilerun/agent/executor/executor_agent.pyruns · 10,539 bytesmobilerun/agent/executor/prompts.pyruns · 1,329 bytesmobilerun/agent/external/README.mddoc · 3,344 bytesmobilerun/agent/external/__init__.pyruns · 2,808 bytesmobilerun/agent/fast_agent/__init__.pyruns · 85 bytesmobilerun/agent/fast_agent/events.pyruns · 917 bytesmobilerun/agent/fast_agent/fast_agent.pyruns · 31,302 bytesmobilerun/agent/fast_agent/native_tools.pyruns · 3,896 bytesmobilerun/agent/fast_agent/xml_parser.pyruns · 13,750 bytesmobilerun/agent/manager/__init__.pyruns · 840 bytesmobilerun/agent/manager/events.pyruns · 865 bytesmobilerun/agent/manager/manager_agent.pyruns · 21,715 bytesmobilerun/agent/manager/prompts.pyruns · 12,550 bytesmobilerun/agent/manager/stateless_manager_agent.pyruns · 11,173 bytesmobilerun/agent/oneflows/__init__.pyruns · 0 bytesmobilerun/agent/oneflows/app_starter_workflow.pyruns · 4,377 bytesmobilerun/agent/oneflows/structured_output_agent.pyruns · 2,532 bytesmobilerun/agent/providers/__init__.pyruns · 924 bytesmobilerun/agent/providers/anthropic.pyruns · 6,720 bytesmobilerun/agent/providers/grok.pyruns · 2,756 bytesmobilerun/agent/providers/minimax.pyruns · 3,047 bytesmobilerun/agent/providers/registry.pyruns · 13,724 bytesmobilerun/agent/providers/setup_service.pyruns · 8,093 bytesmobilerun/agent/providers/types.pyruns · 776 bytesmobilerun/agent/tool_registry.pyruns · 11,116 bytesmobilerun/agent/trajectory/__init__.pyruns · 135 bytesmobilerun/agent/trajectory/writer.pyruns · 15,093 bytesmobilerun/agent/usage.pyruns · 11,179 bytesmobilerun/agent/utils/__init__.pyruns · 540 bytesmobilerun/agent/utils/actions.pyruns · 23,851 bytesmobilerun/agent/utils/android_device.pyruns · 1,798 bytesmobilerun/agent/utils/chat_utils.pyruns · 3,172 bytesmobilerun/agent/utils/errors.pyruns · 5,607 bytesmobilerun/agent/utils/inference.pyruns · 10,130 bytesmobilerun/agent/utils/llm_loader.pyruns · 8,830 bytesmobilerun/agent/utils/llm_picker.pyruns · 42,427 bytesmobilerun/agent/utils/oauth/anthropic_oauth_llm.pyruns · 41,846 bytesmobilerun/agent/utils/oauth/gemini_oauth_code_assist_llm.pyruns · 44,337 bytesmobilerun/agent/utils/oauth/grok_oauth_llm.pyruns · 43,621 bytesmobilerun/agent/utils/oauth/login_timeout.pyruns · 2,742 bytesmobilerun/agent/utils/oauth/openai_oauth_llm.pyruns · 53,344 bytesmobilerun/agent/utils/portal_setup.pyruns · 637 bytesmobilerun/agent/utils/prompt_resolver.pyruns · 2,148 bytesmobilerun/agent/utils/signatures.pyruns · 14,346 bytesmobilerun/agent/utils/tracing_setup.pyruns · 16,063 bytesmobilerun/agent/utils/trajectory.pyruns · 13,409 bytesmobilerun/agent/utils/vision_sizing.pyruns · 4,245 bytesmobilerun/app_cards/__init__.pyruns · 0 bytesmobilerun/app_cards/app_card_provider.pyruns · 908 bytesmobilerun/app_cards/providers/__init__.pyruns · 375 bytesmobilerun/app_cards/providers/composite_provider.pyruns · 3,322 bytesmobilerun/app_cards/providers/local_provider.pyruns · 5,706 bytesmobilerun/app_cards/providers/server_provider.pyruns · 4,296 bytesmobilerun/cli/__init__.pyruns · 169 bytesmobilerun/cli/configure_prompts.pyruns · 2,810 bytesmobilerun/cli/configure_wizard.pyruns · 27,226 bytesmobilerun/cli/device_commands.pyruns · 14,311 bytesmobilerun/cli/deviceauth.pyruns · 5,893 bytesmobilerun/cli/doctor.pyruns · 26,511 bytesmobilerun/cli/event_handler.pyruns · 7,243 bytesmobilerun/cli/logs.pyruns · 260 bytesmobilerun/cli/main.pyruns · 47,460 bytesmobilerun/cli/oauth_actions.pyruns · 6,190 bytesmobilerun/config/app_cards/README.mddoc · 4,134 bytesmobilerun/config/app_cards/android/app_cards.jsonasset · 42 bytesmobilerun/config/app_cards/android/gmail.mddoc · 1,447 bytesmobilerun/config/app_cards/ios/app_cards.jsonasset · 3 bytesmobilerun/config/credentials_example.yamlasset · 2,746 bytesmobilerun/config/prompts/executor/rev1.jinja2asset · 2,093 bytesmobilerun/config/prompts/executor/system.jinja2asset · 6,203 bytesmobilerun/config/prompts/fast_agent/system.jinja2asset · 8,620 bytesmobilerun/config/prompts/fast_agent/user.jinja2asset · 167 bytesmobilerun/config/prompts/manager/rev1.jinja2asset · 4,217 bytesmobilerun/config/prompts/manager/stateless.jinja2asset · 3,468 bytesmobilerun/config/prompts/manager/system.jinja2asset · 6,556 bytesmobilerun/config/prompts/manager/trained.jinja2asset · 1,140 bytesmobilerun/config_example.yamlasset · 9,157 bytesmobilerun/config_manager/__init__.pyruns · 936 bytesmobilerun/config_manager/auth_profile_store.pyruns · 6,734 bytesmobilerun/config_manager/config_manager.pyruns · 15,888 bytesmobilerun/config_manager/credential_paths.pyruns · 614 bytesmobilerun/config_manager/env_keys.pyruns · 3,791 bytesmobilerun/config_manager/loader.pyruns · 4,096 bytesmobilerun/config_manager/migrations/__init__.pyruns · 1,092 bytesmobilerun/config_manager/migrations/v002_add_code_exec.pyruns · 1,583 bytesmobilerun/config_manager/migrations/v003_add_auto_setup.pyruns · 316 bytesmobilerun/config_manager/migrations/v004_remove_deprecated_agents.pyruns · 1,355 bytesmobilerun/config_manager/migrations/v005_remove_external_agents.pyruns · 453 bytesmobilerun/config_manager/migrations/v006_disabled_tools_default_sentinel.pyruns · 1,268 bytesmobilerun/config_manager/migrations/v007_manager_prompt_auto.pyruns · 919 bytesmobilerun/config_manager/path_resolver.pyruns · 4,053 bytesmobilerun/config_manager/prompt_loader.pyruns · 3,539 bytesmobilerun/credential_manager/__init__.pyruns · 347 bytesmobilerun/credential_manager/credential_manager.pyruns · 827 bytesmobilerun/credential_manager/file_credential_manager.pyruns · 4,605 bytesmobilerun/log_handlers.pyruns · 2,892 bytesmobilerun/macro/__init__.pyruns · 350 bytesmobilerun/macro/__main__.pyruns · 196 bytesmobilerun/macro/cli.pyruns · 13,137 bytesmobilerun/macro/handoff.pyruns · 824 bytesmobilerun/macro/matcher.pyruns · 1,947 bytesmobilerun/macro/recorder.pyruns · 1,470 bytesmobilerun/macro/replay.pyruns · 18,697 bytesmobilerun/macro/state.pyruns · 6,653 bytesmobilerun/mcp/__init__.pyruns · 353 bytesmobilerun/mcp/adapter.pyruns · 2,494 bytesmobilerun/mcp/client.pyruns · 7,203 bytesmobilerun/mcp/config.pyruns · 652 bytesmobilerun/telemetry/__init__.pyruns · 505 bytesmobilerun/telemetry/events.pyruns · 1,409 bytesmobilerun/telemetry/langfuse_processor.pyruns · 21,625 bytesmobilerun/telemetry/phoenix.pyruns · 8,562 bytesmobilerun/telemetry/tracker.pyruns · 5,880 bytesmobilerun/tools/__init__.pyruns · 432 bytesmobilerun/tools/driver/__init__.pyruns · 984 bytesmobilerun/tools/filters/__init__.pyruns · 597 bytesmobilerun/tools/filters/base.pyruns · 542 bytesmobilerun/tools/filters/concise_filter.pyruns · 2,412 bytesmobilerun/tools/filters/detailed_filter.pyruns · 5,347 bytesmobilerun/tools/formatters/__init__.pyruns · 155 bytesmobilerun/tools/formatters/base.pyruns · 957 bytesmobilerun/tools/formatters/indexed_formatter.pyruns · 10,440 bytesmobilerun/tools/helpers/__init__.pyruns · 410 bytesmobilerun/tools/helpers/coordinate.pyruns · 1,548 bytesmobilerun/tools/helpers/element_search.pyruns · 19,476 bytesmobilerun/tools/helpers/geometry.pyruns · 2,473 bytesmobilerun/tools/helpers/images.pyruns · 7,775 bytesmobilerun/tools/ios/__init__.pyruns · 97 bytesmobilerun/tools/ui/__init__.pyruns · 538 bytesmobilerun/tools/ui/ios_provider.pyruns · 16,451 bytesmobilerun/tools/ui/provider.pyruns · 22,072 bytesmobilerun/tools/ui/screenshot_provider.pyruns · 5,064 bytesmobilerun/tools/ui/state.pyruns · 8,783 bytesmobilerun/tools/ui/stealth_state.pyruns · 3,659 bytespyproject.tomlasset · 3,505 bytessetup.pyruns · 129 bytesstatic/demo-apartment-search.gifasset · 5,042,975 bytesstatic/demo-reddit-trends.gifasset · 4,559,662 bytesstatic/google-maps.gifasset · 849,063 bytesstatic/mobilerun-dark.pngasset · 8,657 bytesstatic/mobilerun-demo.gifasset · 5,850,062 bytesstatic/mobilerun.pngasset · 9,198 bytesstatic/whatsapp-automation.gifasset · 753,013 bytestests/eval_coordinate_grounding.pyruns · 6,674 bytestests/test_android_device_selection.pyruns · 10,968 bytestests/test_android_portal_http_wiring.pyruns · 8,102 bytestests/test_android_tap_obstructions.pyruns · 11,397 bytestests/test_android_vision_coordinate_contract.pyruns · 11,831 bytestests/test_anthropic_oauth_llm.pyruns · 8,947 bytestests/test_anthropic_oauth_streaming.pyruns · 16,432 bytestests/test_anthropic_sdk_sampling.pyruns · 6,569 bytestests/test_app_card_platforms.pyruns · 7,026 bytestests/test_app_cards.pyruns · 3,159 bytestests/test_bounded_finalization.pyruns · 25,062 bytestests/test_chat_image_conversion.pyruns · 853 bytestests/test_cloud_cli.pyruns · 5,779 bytestests/test_config_loader_permissions.pyruns · 628 bytestests/test_configure_prompts.pyruns · 4,872 bytestests/test_core_local_runtime.pyruns · 2,659 bytestests/test_deviceauth.pyruns · 5,343 bytestests/test_driver_reexports.pyruns · 3,803 bytestests/test_error_descriptions.pyruns · 8,979 bytestests/test_fast_agent_block_failure.pyruns · 5,266 bytestests/test_fast_agent_malformed_tool_guard.pyruns · 9,164 bytestests/test_fast_agent_multi_block.pyruns · 13,578 bytestests/test_fast_agent_native_tools.pyruns · 13,250 bytestests/test_fast_agent_xml_parser.pyruns · 29,966 bytestests/test_finalization_budget.pyruns · 1,150 bytestests/test_finalization_workflow.pyruns · 11,084 bytestests/test_gemini_defaults.pyruns · 1,243 bytestests/test_gemini_oauth_llm.pyruns · 24,270 bytestests/test_grok_api.pyruns · 19,156 bytestests/test_grok_cli.pyruns · 12,028 bytestests/test_grok_oauth.pyruns · 58,836 bytestests/test_inference_retries.pyruns · 7,802 bytestests/test_ios_local_portal_wiring.pyruns · 7,588 bytestests/test_ios_provider.pyruns · 1,662 bytestests/test_ios_vision_coordinate_contract.pyruns · 18,958 bytestests/test_keyboard_cleanup.pyruns · 8,088 bytestests/test_langfuse_v4.pyruns · 45,862 bytestests/test_llm_picker.pyruns · 41,571 bytestests/test_macro_guarded_replay.pyruns · 7,446 bytestests/test_macro_recording_actions.pyruns · 7,102 bytestests/test_macro_state_matcher.pyruns · 1,542 bytestests/test_macro_v2_schema.pyruns · 2,262 bytestests/test_manager_prompt_selection.pyruns · 5,465 bytestests/test_manager_response_validation.pyruns · 11,101 bytestests/test_mcp_stdio_compatibility.pyruns · 4,589 bytestests/test_minimax_configuration.pyruns · 16,267 bytestests/test_normalized_screenshot_coordinates.pyruns · 15,484 bytestests/test_oauth_login_timeout.pyruns · 7,705 bytestests/test_oauth_manual_env_var.pyruns · 5,335 bytestests/test_open_app_identifier.pyruns · 2,546 bytestests/test_openai_oauth_llm.pyruns · 26,903 bytestests/test_phoenix_tracing.pyruns · 4,914 bytestests/test_portal_a11y_recovery.pyruns · 4,341 bytestests/test_portal_asset_selection.pyruns · 9,628 bytestests/test_prompt_loader_sandbox.pyruns · 4,513 bytestests/test_provider_defaults.pyruns · 7,766 bytestests/test_provider_registry.pyruns · 6,384 bytestests/test_public_api_compatibility.pyruns · 1,746 bytestests/test_sdk_debug_logging.pyruns · 6,080 bytestests/test_setup_portal_explicit_apk.pyruns · 6,170 bytestests/test_state_fetch_retry_policy.pyruns · 6,815 bytestests/test_streaming_usage.pyruns · 4,064 bytestests/test_telemetry.pyruns · 11,905 bytestests/test_type_action.pyruns · 3,381 bytestests/test_ui_tree_null_children.pyruns · 1,009 bytestests/test_usage.pyruns · 12,211 bytestests/test_vision_only_run_cli.pyruns · 8,194 bytestests/test_vision_sizing.pyruns · 3,578 bytestests/test_visual_remote_connection.pyruns · 17,562 bytesuv.lockasset · 480,296 bytes
Read excerpt
# Mobilerun
Mobilerun is an open-source (MIT) framework for controlling Android and iOS devices through LLM agents.
It enables mobile automation using natural language commands.
- **GitHub**: https://github.com/droidrun/mobilerun
- **Docs site**: https://docs.mobilerun.ai
- **License**: MIT
- **Install**: `uv tool install mobilerun` (Google Gemini, OpenAI, DeepSeek, Ollama, OpenRouter included by default)
- **Optional extras**: `anthropic`, `langfuse`
- **Requires**: Python 3.11+, ADB, Portal APK on device
## Architecture