A CLI for iOS Automation
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pippin_ios-0.1.0.tar.gz.
File metadata
- Download URL: pippin_ios-0.1.0.tar.gz
- Upload date:
- Size: 23.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51238bf66e6d29f0bcb21221180cd7598f61685e25665bc067a7875eefbcfe0c
|
|
| MD5 |
78019759c864d323dfa369f08f280f20
|
|
| BLAKE2b-256 |
6f71ad39c0df1f2eb46ac0f6853f72b17ea85cbbd0f1910512f79e14df7a0667
|
File details
Details for the file pippin_ios-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pippin_ios-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06cb1dff42f97bd87c95f36aa3ffdbb93583a36b4bf6991cf3b194688b4e6d0f
|
|
| MD5 |
89c1359ed1b744e5aa65ee01b56a6492
|
|
| BLAKE2b-256 |
147760324f7f89fb993b83722dbe0974c4c51789294f7e3486275b0fc46e376d
|