Phone use
Give your AI a phone.
axdroid is an MCP server that lets AI agents use an Android phone. It reads the screen as text, and takes a screenshot only when it has to.
AndroidWorld tasks, repeated 3 times
median time per task
median tokens per task
screenshots needed in this run
Codex + gpt-6.1-terra on the official AndroidWorld suite. Run three times, no retries.
Set up in two minutes
Paste this into your AI.
Install axdroid by following ax-use.com/install-phone.md
- 1Plug in your phone
- 2Tap Allow
- 3Your AI does the rest
- 4Ask for anything
Free for personal use · Android 8+ · USB cable
Same score as the leader
With a lighter model, and text only.
| MobileRun | With axdroid | |
|---|---|---|
| AndroidWorld | 116/116 | 116/116 |
| Model | gpt-6-astra | gpt-6.1-terra |
| Sees in this run | Screenshots + accessibility tree | Accessibility tree only |
| Steps per task | 12.2 | 13.6 |
MobileRun's figures are from mobilerun.ai/benchmark/method.
Quick answers
What is axdroid?
An MCP server that lets AI agents such as Codex, ChatGPT Work, Claude Code, Claude Work, Meta Muse, OpenCode, Devin, Cursor, Kiro, Antigravity use an Android phone. It reads the screen as text, not as pictures.
Does it take screenshots?
Text first. A screenshot is only a fallback for screens with no readable text, such as games or maps. You can switch it off in the app, and secure screens like banking apps are never captured.
What do I need?
An Android 8 or newer phone (11 or newer for the screenshot fallback), a USB cable, and an AI agent on your computer that supports MCP.
Is it free?
Free for personal and noncommercial use. Work use needs a license: [email protected].
Is my phone data private?
It stays between your phone and your computer. What your agent reads goes to your AI provider, as in any conversation with it. Nothing goes to us.
Does it work on iPhone?
Not yet. axphone for iPhone is coming soon.
axphone for iPhone.
All 116 tasks
| Task | Tokens | Time |
|---|---|---|
| AudioRecorderRecordAudio | 182k | 54 s |
| AudioRecorderRecordAudioWithFileName | 144k | 40 s |
| BrowserDraw | 1370k | 239 s |
| BrowserMaze | 687k | 145 s |
| BrowserMultiply | 663k | 148 s |
| CameraTakePhoto | 261k | 160 s |
| CameraTakeVideo | 321k | 79 s |
| ClockStopWatchPausedVerify | 67k | 47 s |
| ClockStopWatchRunning | 86k | 44 s |
| ClockTimerEntry | 164k | 100 s |
| ContactsAddContact | 204k | 42 s |
| ContactsNewContactDraft | 165k | 93 s |
| ExpenseAddMultiple | 790k | 165 s |
| ExpenseAddMultipleFromGallery | 874k | 172 s |
| ExpenseAddMultipleFromMarkor | 874k | 174 s |
| ExpenseAddSingle | 473k | 93 s |
| ExpenseDeleteDuplicates | 567k | 360 s |
| ExpenseDeleteDuplicates2 | 1094k | 193 s |
| ExpenseDeleteMultiple | 249k | 57 s |
| ExpenseDeleteMultiple2 | 292k | 63 s |
| ExpenseDeleteSingle | 166k | 62 s |
| FilesDeleteFile | 207k | 58 s |
| FilesMoveFile | 384k | 95 s |
| MarkorAddNoteHeader | 214k | 56 s |
| MarkorChangeNoteContent | 468k | 116 s |
| MarkorCreateFolder | 108k | 34 s |
| MarkorCreateNote | 165k | 45 s |
| MarkorCreateNoteAndSms | 311k | 70 s |
| MarkorCreateNoteFromClipboard | 262k | 68 s |
| MarkorDeleteAllNotes | 168k | 39 s |
| MarkorDeleteNewestNote | 276k | 110 s |
| MarkorDeleteNote | 237k | 44 s |
| MarkorEditNote | 203k | 58 s |
| MarkorMergeNotes | 325k | 66 s |
| MarkorMoveNote | 234k | 54 s |
| MarkorTranscribeReceipt | 268k | 59 s |
| MarkorTranscribeVideo | 352k | 123 s |
| NotesIsTodo | 105k | 38 s |
| NotesMeetingAttendeeCount | 129k | 40 s |
| NotesRecipeIngredientCount | 130k | 38 s |
| NotesTodoItemCount | 184k | 47 s |
| OpenAppTaskEval | 49k | 15 s |
| OsmAndFavorite | 227k | 52 s |
| OsmAndMarker | 404k | 107 s |
| OsmAndTrack | 256k | 75 s |
| RecipeAddMultipleRecipes | 664k | 139 s |
| RecipeAddMultipleRecipesFromImage | 719k | 277 s |
| RecipeAddMultipleRecipesFromMarkor | 681k | 129 s |
| RecipeAddMultipleRecipesFromMarkor2 | 2267k | 291 s |
| RecipeAddSingleRecipe | 247k | 62 s |
| RecipeDeleteDuplicateRecipes | 194k | 70 s |
| RecipeDeleteDuplicateRecipes2 | 199k | 94 s |
| RecipeDeleteDuplicateRecipes3 | 382k | 185 s |
| RecipeDeleteMultipleRecipes | 353k | 175 s |
| RecipeDeleteMultipleRecipesWithConstraint | 540k | 160 s |
| RecipeDeleteMultipleRecipesWithNoise | 381k | 83 s |
| RecipeDeleteSingleRecipe | 164k | 47 s |
| RecipeDeleteSingleWithRecipeWithNoise | 225k | 45 s |
| RetroCreatePlaylist | 682k | 295 s |
| RetroPlayingQueue | 192k | 46 s |
| RetroPlaylistDuration | 650k | 120 s |
| RetroSavePlaylist | 548k | 107 s |
| SaveCopyOfReceiptTaskEval | 265k | 160 s |
| SimpleCalendarAddOneEvent | 564k | 109 s |
| SimpleCalendarAddOneEventInTwoWeeks | 640k | 135 s |
| SimpleCalendarAddOneEventRelativeDay | 575k | 124 s |
| SimpleCalendarAddOneEventTomorrow | 612k | 284 s |
| SimpleCalendarAddRepeatingEvent | 618k | 95 s |
| SimpleCalendarAnyEventsOnDate | 89k | 65 s |
| SimpleCalendarDeleteEvents | 280k | 58 s |
| SimpleCalendarDeleteEventsOnRelativeDay | 211k | 53 s |
| SimpleCalendarDeleteOneEvent | 127k | 81 s |
| SimpleCalendarEventOnDateAtTime | 69k | 21 s |
| SimpleCalendarEventsInNextWeek | 49k | 22 s |
| SimpleCalendarEventsInTimeRange | 110k | 27 s |
| SimpleCalendarEventsOnDate | 89k | 23 s |
| SimpleCalendarFirstEventAfterStartTime | 49k | 36 s |
| SimpleCalendarLocationOfEvent | 88k | 26 s |
| SimpleCalendarNextEvent | 49k | 21 s |
| SimpleCalendarNextMeetingWithPerson | 107k | 29 s |
| SimpleDrawProCreateDrawing | 185k | 65 s |
| SimpleSmsReply | 144k | 98 s |
| SimpleSmsReplyMostRecent | 125k | 32 s |
| SimpleSmsResend | 145k | 42 s |
| SimpleSmsSend | 222k | 47 s |
| SimpleSmsSendClipboardContent | 184k | 110 s |
| SimpleSmsSendReceivedAddress | 204k | 52 s |
| SportsTrackerActivitiesCountForWeek | 929k | 446 s |
| SportsTrackerActivitiesOnDate | 326k | 133 s |
| SportsTrackerActivityDuration | 234k | 69 s |
| SportsTrackerLongestDistanceActivity | 908k | 306 s |
| SportsTrackerTotalDistanceForCategoryOverInterval | 1057k | 214 s |
| SportsTrackerTotalDurationForCategoryThisWeek | 437k | 153 s |
| SystemBluetoothTurnOff | 185k | 43 s |
| SystemBluetoothTurnOffVerify | 145k | 92 s |
| SystemBluetoothTurnOn | 165k | 41 s |
| SystemBluetoothTurnOnVerify | 165k | 37 s |
| SystemBrightnessMax | 125k | 83 s |
| SystemBrightnessMaxVerify | 125k | 33 s |
| SystemBrightnessMin | 145k | 36 s |
| SystemBrightnessMinVerify | 125k | 31 s |
| SystemCopyToClipboard | 247k | 156 s |
| SystemWifiTurnOff | 144k | 40 s |
| SystemWifiTurnOffVerify | 165k | 43 s |
| SystemWifiTurnOn | 144k | 54 s |
| SystemWifiTurnOnVerify | 145k | 51 s |
| TasksCompletedTasksForDate | 149k | 65 s |
| TasksDueNextWeek | 354k | 108 s |
| TasksDueOnDate | 108k | 42 s |
| TasksHighPriorityTasks | 49k | 19 s |
| TasksHighPriorityTasksDueOnDate | 88k | 28 s |
| TasksIncompleteTasksOnDate | 750k | 207 s |
| TurnOffWifiAndTurnOnBluetooth | 312k | 131 s |
| TurnOnWifiAndOpenApp | 165k | 53 s |
| VlcCreatePlaylist | 569k | 325 s |
| VlcCreateTwoPlaylists | 621k | 254 s |
Source and method: GitHub · [email protected]