Metadata-Version: 2.4
Name: unjiggle
Version: 0.2.0
Summary: AI-powered iPhone home screen organizer. One command to scan, score, and fix your layout over USB.
Author: chungty
License: GPL-3.0-or-later
Project-URL: Homepage, https://unjiggle.com
Project-URL: Repository, https://github.com/chungty/unjiggle
Project-URL: Issues, https://github.com/chungty/unjiggle/issues
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pymobiledevice3>=9.0.0
Requires-Dist: click>=8.0
Requires-Dist: rich>=13.0
Requires-Dist: jinja2>=3.0
Requires-Dist: httpx>=0.25.0
Requires-Dist: pillow>=10.0
Provides-Extra: ai
Requires-Dist: anthropic>=0.40.0; extra == "ai"
Requires-Dist: openai>=1.0; extra == "ai"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
Dynamic: license-file

# Unjiggle

**Your iPhone home screen is a mess. You know it. You've given up fixing it. Unjiggle fixes it for you.**

Unjiggle is an AI-powered CLI that reads your iPhone home screen, scores your organization, tells you what's wrong (and why), and fixes it — one step at a time or all at once.

<p align="center">
  <img src="assets/cli-demo.png" width="600" alt="unjiggle go — one command to scan, score, and analyze your iPhone">
</p>

## Quick Start

```bash
pip install unjiggle
```

Connect your iPhone via USB, then:

```bash
unjiggle go
```

That's it. One command. It scans your phone, scores your organization, runs AI analysis, and generates a shareable report card.

## The Share Card

Unjiggle generates a Wrapped-style share card with your archetype, score, and App DNA mosaic. Screenshot it. Post it. Challenge your friends.

<p align="center">
  <img src="assets/share-card.png" width="400" alt="Unjiggle share card — The Agile Optimizer, score 70/100">
</p>

## What It Does

**`unjiggle go`** — The full experience in one command:
- Reads your entire home screen layout over USB (226 apps, 8 pages, 14 folders... or whatever yours looks like)
- Scores your organization (0-100) across four dimensions
- Runs AI analysis that actually *sees* your phone: duplicate apps, abandoned apps, scattered categories, cryptic folder names
- Generates a share card with your archetype and App DNA mosaic

**`unjiggle suggest`** — Interactive AI walkthrough:
- The AI walks you through 5-7 observations, each with a specific fix
- For cleanup suggestions: choose **Delete** (with a Marie Kondo gratitude moment), **Archive** (App Library), or **Keep**
- Every change is previewed before applying
- Auto-backup before any write. One-command undo.

**`unjiggle safety-test`** — Prove it's safe first:
- Reads your layout, writes it back unchanged, reads again
- Verifies the result is identical
- Your phone doesn't change at all. Run this first if you're nervous.

## Commands

| Command | What it does |
|---------|-------------|
| `unjiggle go` | Full experience: scan, score, AI analysis, share card |
| `unjiggle scan` | See your layout color-coded by category |
| `unjiggle score` | Organization score (0-100) with breakdown |
| `unjiggle analyze` | AI observations (Claude or GPT-4.1) |
| `unjiggle suggest` | Interactive walkthrough — apply changes step by step |
| `unjiggle suggest --apply-all` | Just Fix It mode — apply everything at once |
| `unjiggle report --open` | Generate share card + full report |
| `unjiggle safety-test` | Prove read/write works (changes nothing) |
| `unjiggle backup` | Save current layout |
| `unjiggle restore` | Undo any changes |

## Requirements

- **macOS** (USB communication with iPhone)
- **iPhone connected via USB** with "Trust This Computer" accepted
- **Python 3.10+**
- **API key** for AI features: set `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`

## How It Works

Unjiggle uses [pymobiledevice3](https://github.com/doronz88/pymobiledevice3) to communicate with your iPhone's SpringBoard services over USB. It reads the `IconState` (your home screen layout), enriches it with App Store metadata, and uses an LLM to generate observations and layout suggestions.

The write path is validated on iPhone 16 Pro, iOS 26.0. Every write is preceded by a verified backup and an optional round-trip safety test.

## GUI Coming Soon

A native Mac app with live preview, drag-and-drop editing, animated before/after transformations, and a slider to control aggressiveness is in development.

The CLI validates the core value prop. The GUI is the full product.

**Sign up for early access:** [unjiggle.com](https://unjiggle.com)

## License

GPL-3.0 (matching pymobiledevice3)
