Invi Labs Python SDK
Automate real iPhones through the Invi Labs API using your API key and phone ID. Non-jailbroken iPhones require Invi Dongle.
Install
python -m pip install invilabs
Requires Python 3.10 or newer. No third-party runtime dependencies.
Connect and run an action
Set INVI_API_KEY and INVI_PHONE_ID in your environment. Keep your API key private.
import os
from invilabs import Client
client = Client(os.environ["INVI_API_KEY"])
phone = client.phone(os.environ["INVI_PHONE_ID"])
print(phone.details())
phone.tap(100, 200)
phone.save_screenshot("screen.png")
Coordinates use full-resolution screenshot pixels. Calls block until completion;
the SDK waits and retries when the phone reports device_busy. Uncertain execution
is not automatically repeated. Use the operation key to look up its status.
AI generation
result = client.generate(
"Generate an email address using example.com",
result_type="email",
)
print(result["data"]["text"])
print(client.balance())
Generation supports text, usernames and email address strings, optionally using a local PNG/JPEG image. It does not create mailboxes. OCR, AI prompts and generation use your shared Account AI balance. No AI-provider key is required.
Features
- Tap, swipe, scroll, type, explicit key presses and opening installed apps.
- Screenshots as PNG bytes or saved to your computer.
- Grouped OCR with text and bounding boxes.
- Single-action AI prompts and structured screen answers.
- Image/video import through Invi Helper on supported dongle phones.
- Device details, balance and operation recovery.
All network operations use the public HTTPS API with your API key. The package contains client code and response contracts; phone control and AI processing run on Invi Labs services. API keys remain on your computer and are sent only as an authentication header to the configured API. HTTP redirects are not followed.
This is an initial release. Device support and feature verification limits are listed in the release notes.
Documentation · Quickstart · Generation and outputs · Errors and recovery
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 invilabs-0.1.0.tar.gz.
File metadata
- Download URL: invilabs-0.1.0.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
887ef6ec16b0b77a5625e422c70c76803735924bfed94aabf9b32734c5fcc130
|
|
| MD5 |
416933f62a3b838868cd3123217d2c35
|
|
| BLAKE2b-256 |
4d71b8f578b74915c8a4203820b53511d9963b027d00b2f568535b9d64c560b3
|
Provenance
The following attestation bundles were made for invilabs-0.1.0.tar.gz:
Publisher:
publish-sdk.yml on invictusro/invilabs-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
invilabs-0.1.0.tar.gz -
Subject digest:
887ef6ec16b0b77a5625e422c70c76803735924bfed94aabf9b32734c5fcc130 - Sigstore transparency entry: 2795786614
- Sigstore integration time:
-
Permalink:
invictusro/invilabs-api@3c110a07b34e595435ac4c9f4927ba8d2bfed292 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/invictusro
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@3c110a07b34e595435ac4c9f4927ba8d2bfed292 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file invilabs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: invilabs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
844ceaa2be25b0c483212bb32d2624535dd6b9b18704eabc9003b30df7d96d18
|
|
| MD5 |
79c57ac108c799353549e7a8848a5a60
|
|
| BLAKE2b-256 |
b82da80acc63329d42e47af288a3494efac9becf858210268c64e41a03ae43c1
|
Provenance
The following attestation bundles were made for invilabs-0.1.0-py3-none-any.whl:
Publisher:
publish-sdk.yml on invictusro/invilabs-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
invilabs-0.1.0-py3-none-any.whl -
Subject digest:
844ceaa2be25b0c483212bb32d2624535dd6b9b18704eabc9003b30df7d96d18 - Sigstore transparency entry: 2795786672
- Sigstore integration time:
-
Permalink:
invictusro/invilabs-api@3c110a07b34e595435ac4c9f4927ba8d2bfed292 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/invictusro
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@3c110a07b34e595435ac4c9f4927ba8d2bfed292 -
Trigger Event:
workflow_dispatch
-
Statement type: