Metadata-Version: 2.4
Name: nomix-clicker
Version: 0.1.0
Summary: iOS device automation via the Nomix Clicker API — simulated touch input with AI screen recognition.
Author: Timofey Ivanenko
License-Expression: MIT
Project-URL: Homepage, https://panel.nomixclicker.com
Project-URL: Documentation, https://panel.nomixclicker.com/docs
Project-URL: Repository, https://github.com/timofeyivanenko/ClickerScriptingLibrary
Keywords: automation,ios,clicker,nomix,ui-automation,device-automation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.32
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"
Dynamic: license-file

## NomixClicker Scripting Library

This is a library of ready-made scripts written in Python and using the free [Clicker API](https://panel.nomixclicker.com/docs).

### What Is Clicker?

NomixClicker is a controlling dongle for iOS. It allows manual control, automatic control via API, and fully autonomous AI mode.

Part of the features are work-in-progress, see the [Roadmap](https://nomixclicker.com/).

<p align="center">
  <img src="res/reddit-script-example.gif" width="480" height="360">
  <br>
  <em style="font-size: 0.85em; opacity: 0.7;">Example: quick script for Reddit warmup.</em>
</p>

### Installation

Requires Python 3.10+. Install from PyPI:

```commandline
pip install nomix-clicker
```

Buy a Clicker device if you don't have it (delivery takes ~2 weeks to any place in the world), then open the [Panel](https://panel.nomixclicker.com/choose_device) and get your API token.

[Purchase on the official site only.](https://panel.nomixclicker.com/payment)

### Configuration

Provide your API token and device id in either of two ways (environment variables take precedence):

**Environment variables:**

```commandline
export NOMIX_API_KEY="your-api-key"
export NOMIX_DEVICE_ID="your-device-id"
```

**Or a `config.json`** in your working directory (copy `config.example.json`):

```json
{
  "API_KEY": "your-api-key",
  "DEVICE_ID": "your-device-id",
  "API_URL": "https://panel.nomixclicker.com/clicker/v1"
}
```

### Quick start

```python
from nomix_clicker import Clicker, parse_screen, open_app, DEVICE_ID

clicker = Clicker(DEVICE_ID)
open_app(clicker, "Instagram")

screen = parse_screen(clicker)
screen.find_and_click(clicker, "like")
```

Manual control of iPhones will work out-of-the-box, no setup needed.

### Examples

Ready-made example scripts live in the [`examples/`](examples/) folder. After installing the package, run one directly, for example:

```commandline
python3 examples/airplane-mode-iphone-12.py
```

- [**instagram-warmup.py**](examples/instagram-warmup.py) - Scrolling Instagram Reels, liking, and commenting with configurable probabilities.
- [**restart_all_devices.py**](examples/restart_all_devices.py) - Restarts all devices associated with your account.
- [**airplane-mode-iphone-12.py**](examples/airplane-mode-iphone-12.py) - Toggles airplane mode on and off on iPhone 12.
- [**switch-screen-viewing-iphone-12.py**](examples/switch-screen-viewing-iphone-12.py) - Turns on/off Clicker screen viewing.

### Local development

To work on the library itself, install it in editable mode:

```commandline
pip install -e .
```

