133 lines
3.3 KiB
Markdown
133 lines
3.3 KiB
Markdown
# iPhone Photo Inbox
|
|
|
|
Local HTTP receiver for sending JPEGs from iPhone Shortcuts into a Mac folder.
|
|
The transport is intentionally generic: the iPhone uploads a JPEG, and the Mac
|
|
chooses the destination folder.
|
|
|
|
Default destination:
|
|
|
|
```text
|
|
ai/inbox/photos/
|
|
```
|
|
|
|
That default is useful for OpenCode because the images land inside this
|
|
workspace as raw evidence. For broader use, point the receiver at a neutral
|
|
folder such as `~/Pictures/iPhone Inbox`.
|
|
|
|
## Start the receiver
|
|
|
|
OpenCode/workspace inbox:
|
|
|
|
```bash
|
|
IPHONE_PHOTO_TOKEN="choose-a-token" python3 scripts/iphone-photo-inbox/receiver.py
|
|
```
|
|
|
|
General-purpose photo inbox:
|
|
|
|
```bash
|
|
IPHONE_PHOTO_TOKEN="choose-a-token" \
|
|
IPHONE_PHOTO_OUTPUT_DIR="$HOME/Pictures/iPhone Inbox" \
|
|
python3 scripts/iphone-photo-inbox/receiver.py
|
|
```
|
|
|
|
Find the Mac IP address on the current network:
|
|
|
|
```bash
|
|
ipconfig getifaddr en0
|
|
```
|
|
|
|
The iPhone Shortcut should send each JPEG to:
|
|
|
|
```text
|
|
http://MAC_IP:8787/upload?token=choose-a-token
|
|
```
|
|
|
|
## Shortcut shape
|
|
|
|
### Fastest reliable flow
|
|
|
|
Put this Shortcut on the Home Screen, Lock Screen, Action Button, or Back Tap.
|
|
This is the most reliable "take photo and send immediately" flow because the
|
|
Shortcut owns the capture and upload sequence.
|
|
|
|
Use this when you want the camera itself to be the capture flow:
|
|
|
|
```text
|
|
Take Photo
|
|
Show Camera Preview: On
|
|
Get Contents of URL
|
|
URL: http://MAC_IP:8787/upload?token=choose-a-token
|
|
Method: POST
|
|
Request Body: File
|
|
File: Photo
|
|
Show Notification
|
|
Sent to Mac photo inbox
|
|
```
|
|
|
|
On the tested iPhone flow, `Take Photo` already produces a JPEG, so the
|
|
conversion step is intentionally omitted for the fastest path.
|
|
|
|
### Existing Photos flow
|
|
|
|
Use this when you want to send existing images from Photos:
|
|
|
|
```text
|
|
Receive Images and Media from Share Sheet
|
|
Repeat with Each Item in Shortcut Input
|
|
Convert Image
|
|
Image: Repeat Item
|
|
Format: JPEG
|
|
Get Contents of URL
|
|
URL: http://MAC_IP:8787/upload?token=choose-a-token
|
|
Method: POST
|
|
Request Body: File
|
|
File: Converted Image
|
|
End Repeat
|
|
Show Notification
|
|
Sent to Mac photo inbox
|
|
```
|
|
|
|
### Semi-automatic Camera.app flow
|
|
|
|
iOS does not expose a clean "new photo was taken" automation trigger. The
|
|
closest option is a Personal Automation:
|
|
|
|
```text
|
|
When Camera is Closed
|
|
Get Latest Photos
|
|
Include Screenshots: Off
|
|
Limit: 1
|
|
Convert Image
|
|
Format: JPEG
|
|
Get Contents of URL
|
|
URL: http://MAC_IP:8787/upload?token=choose-a-token
|
|
Method: POST
|
|
Request Body: File
|
|
File: Converted Image
|
|
```
|
|
|
|
This is convenient, but it can resend the latest photo if you open and close
|
|
Camera without taking a new one. Prefer the Shortcut-owned camera flow when
|
|
duplicates would be annoying.
|
|
|
|
## Usage profiles
|
|
|
|
OpenCode analysis:
|
|
|
|
- Use the default `ai/inbox/photos/` destination.
|
|
- Reference the received file directly from this workspace.
|
|
- Treat received files as raw evidence until reviewed.
|
|
|
|
Mattermost / Jeff:
|
|
|
|
- Use a neutral destination such as `~/Pictures/iPhone Inbox`.
|
|
- Attach the latest received JPEG from Mattermost on the Mac.
|
|
- Keep the same Shortcut and URL; only the Mac receiver destination changes.
|
|
|
|
General capture:
|
|
|
|
- Use the neutral destination when the photo is not specifically workspace
|
|
evidence.
|
|
- Keep JPEG validation enabled in the receiver so downstream tools get a
|
|
predictable format.
|