Pippin: A Token-Efficient CLI for iOS Automation
Pippin (Simulator Driver) is a command-line interface designed to bridge the gap between Large Language Models (LLMs) and the iOS Simulator. It provides a set of stateless, atomic commands to inspect, interact with, and verify the state of iOS applications running in the Simulator.
Features
- Token Efficiency: Generates simplified, text-based JSON representations of the UI, allowing LLMs to "see" the screen with minimal token usage.
- Stateless Actions: Each command is independent, making it easier for agents to reason about the state.
- Native Wrapper: Orchestrates
xcrun simctlandidbfor robust automation.
Installation
You can run Pippin directly using uvx (recommended):
uvx pippin --help
Or install it via pip:
pip install pippin
Note: You must have idb (iOS Development Bridge) and Xcode command-line tools installed and configured on your machine.
Usage
Pippin commands follow the structure: pippin [command] [subcommand] [flags]
Vision (Seeing the Screen)
- Inspect UI: Get a JSON representation of the current screen.
pippin inspect --interactive-only
- Take Screenshot: Capture the visual state.
pippin screenshot output.png
Interaction (Acting on the App)
- Tap Element: Tap by accessibility identifier or label text.
pippin tap "Log In"
- Type Text: Enter text into the focused field.
pippin type "user@example.com" --submit
- Scroll: Scroll in a direction, optionally until an element is found.
pippin scroll down --until-visible "Submit"
- Gestures: Perform swipes.
pippin gesture swipe 100,200 100,400
System (Controlling the Environment)
- Launch App: Launch an app by Bundle ID.
pippin launch com.example.myapp --clean
- Open URL: Open a deep link.
pippin open "myapp://settings"
- Permissions: Manage privacy permissions.
pippin permission camera grant
- Location: Set simulated GPS coordinates.
pippin location 37.7749 -122.4194
Verification (Checking State)
- Assert: Verify UI state (exists, visible, hidden, text matches).
pippin assert "Welcome Message" visible
- Logs: Fetch recent app logs.
pippin logs --crash-report
- File Tree: List files in the app's sandbox.
pippin tree documents
Contributing
- Clone the repository.
- Install dependencies.
- Run tests:
python3 -m unittest discover tests
Metadata
Release files for pippin-ios 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pippin_ios-0.1.0.tar.gz | 23.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pippin_ios-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.5 kB
Release files / pippin_ios-0.1.0.tar.gz
| Download URL | pippin_ios-0.1.0.tar.gz |
|---|---|
| Size | 23.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
51238bf66e6d29f0bcb21221180cd7598f61685e25665bc067a7875eefbcfe0c
|
|
BLAKE2b-256 checksum How to use checksums |
6f71ad39c0df1f2eb46ac0f6853f72b17ea85cbbd0f1910512f79e14df7a0667
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.5
|
Release files / pippin_ios-0.1.0-py3-none-any.whl
| Download URL | pippin_ios-0.1.0-py3-none-any.whl |
|---|---|
| Size | 29.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06cb1dff42f97bd87c95f36aa3ffdbb93583a36b4bf6991cf3b194688b4e6d0f
|
|
BLAKE2b-256 checksum How to use checksums |
147760324f7f89fb993b83722dbe0974c4c51789294f7e3486275b0fc46e376d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.5
|