---
title: "Open source | Ehsan Mazaheri Tehrani"
description: "Side projects with public code, each with the numbers its own README and tests report."
url: "https://emazaheri.com/open-source"
---

# Open source

Side projects with public code. Every number is quoted from the project's own README or tests.

### [ios-agent](https://github.com/emazaheri/ios-agent)

Give an AI agent an iPhone. It checks every step it takes.

- **243 tokens** per screen on a physical iPhone, from 140 raw nodes (README, measured on iOS 26.6 over Wi-Fi)
- **39/39** tasks passed, 41 observations against a floor of 39 (README, 13 tasks x 3 runs)
- **1,061** tests that run offline (README, CI badge)

Python, MIT. Runs on macOS and iOS. Stack: Python, MCP, LangGraph, XCUITest, Textual.

Docs: https://emazaheri.github.io/ios-agent/

ios-agent lets an AI agent use an iOS Simulator or a real iPhone, over a cable or Wi-Fi. Every action returns the screen it produced, so the agent can tell when a tap did nothing. Screens arrive as a digest of a few hundred tokens rather than tens of thousands of accessibility XML: 243 tokens from 140 raw nodes on a physical iPhone. Anything that sends, pays, deletes or reaches another person asks first. It uses only Apple's public APIs, and works from the terminal, from any MCP client, or as a Python library. Measured on 13 tasks x 3 runs: 39/39 passed with 41 observations against an oracle floor of 39. MIT licensed.
