Your iPhone farm,
on autopilot.

Warm up accounts, post, reply and test on every iPhone at once. Drive them from your favorite agent or write an extension and put it on a schedule. Real taps, no jailbreak, no app on the phone.

sunny.brews

morning ritual ☕️ the pour never gets old #latteart #coffee

♫original sound - sunny.brews

biscuit.the.golden

he heard the word beach 🐶🌊 #goldenretriever

♫original sound - biscuit.the.golden

9:41
FollowingFor You
+
48.2K
1,204
8,921
2,310
HomeFriends+InboxProfile
tt-01Watching For You
9:41
wireless headphones⌾
⌖ Deliver to Alex - Berlin 10115
Visit the Auralis Store4.6 ★★★★★ 12,483

Auralis Q40 Wireless Noise Cancelling Headphones, 40H Playtime, Bluetooth 5.3, Deep Bass

#1 Best Seller

-20%$7999

List Price: $99.99

prime FREE delivery Tomorrow, Oct 15

In Stock

Qty: 1 ⌄
Add to Cart
Buy Now
HomeYouCartMenu
shop-01Browsing Amazon
9:41

Favorites

N
News
M
Maps
W
Weather
M
Mail
D
Docs
M
Music
T
Travel
R
Recipes

Privacy Report

42In the last seven days, Safari has prevented 42 trackers from profiling you.
qwertyuiop
asdfghjkl
⇧zxcvbnm⌫
123☺spacego
web-01Typing URL
9:41
1,204 comments✕

maya.k

the way he runs 😭😭

3hReply

jonas_berlin

golden hour + golden retriever = perfect

2hReply

lily.travels

where is this beach??

1hReply

sam.codes

need this energy on mondays

48mReply

Add comment...
↑
qwertyuiop
asdfghjkl
⇧zxcvbnm⌫
123☺spacesend
tt-02Reading comments

biscuit.the.golden

he heard the word beach 🐶🌊 #goldenretriever

♫original sound - biscuit.the.golden

nightmarket.eats

₩5,000 wok noodles at 1am hit different 🔥 #streetfood

♫original sound - nightmarket.eats

9:41
FollowingFor You
+
312K
4,876
21.4K
9,032
HomeFriends+InboxProfile
tt-03Liking
9:41
ALPINE TRAILS

TRAVEL · LAKES

The 10 most beautiful lakes in the Alps

By Lena Hofer · Oct 12 · 6 min read

From Lago di Braies to the Königssee, these alpine lakes look unreal in person. We hiked, paddled and waited for sunrise at each one, so you know exactly when to go.

1. Lago di Braies, Italy

Arrive before 7 a.m. to have the emerald water to yourself. Rowboats open at 9, and the loop trail around the lake takes about an hour at an easy pace.

2. Königssee, Germany

Take the electric boat to St. Bartholomä and listen for the famous echo off the cliffs.

alpinetrails.com
‹›⇪☐⧉
qwertyuiop
asdfghjkl
⇧zxcvbnm⌫
123☺spacego
web-02Reading article
9:41
wireless headphones⌾
⌖ Deliver to Alex - Berlin 10115
Visit the Auralis Store4.6 ★★★★★ 12,483

Auralis Q40 Wireless Noise Cancelling Headphones, 40H Playtime, Bluetooth 5.3, Deep Bass

#1 Best Seller

-20%$7999

List Price: $99.99

prime FREE delivery Tomorrow, Oct 15

In Stock

Qty: 1 ⌄
Add to Cart
Buy Now
HomeYouCart1Menu

Review your order

Delivering to Alex
Torstraße 1, 10115 Berlin

Paying with Visa •••• 4242

Auralis Q40 Wireless HeadphonesArriving tomorrow
Order total$79.99
Place your order
shop-02Checking out
my-farm · 7 iPhones3,482 actions today
    5–7
    iPhones per Mac
    No caps
    on runs or schedules
    0
    jailbreaks or phone apps
    $50
    a month, flat

    Three ways to drive.
    Mix them however you like.

    Ask

    Say it in plain language

    Type a task, pick a phone. The built-in agent works the screen until it has your answer.

    warm up tt-03 for 10 minutes
    Agents

    Let your agent drive

    Claude Code, Codex, Cursor: anything with MCP gets tools for every iPhone.

    phonepilot · tap_text(“Post”)
    Extensions

    Automate it for good

    One TypeScript file becomes a button, a schedule, an agent tool and an endpoint.

    schedule: "0 9,14,20 * * *"
    Agents

    Your agent.
    Your phones.

    Connect once over MCP and your agent can list phones, see their screens, tap, type and open apps, or hand a whole task to a phone with ask_phone. Scripts get the same tools over REST.

    • Claude Code
    • Codex
    • Cursor
    • Claude Desktop
    • Any MCP client
    • Your scripts
    $claude mcp add --transport http phonepilot http://127.0.0.1:7788/mcp
    tt-01
    tt-02
    tt-03
    tt-04
    tt-05
    tt-06

    A whole day of work,
    scheduled once.

    09:00 · all tt- phones

    Warm up

    Scroll For You 15 min, like a few

    14:00 · all tt- phones

    Post

    Today’s draft on every account

    20:00 · all tt- phones

    Engage

    Reply to new comments

    Extensions

    Write your own.
    Automate anything.

    An extension is a TypeScript file you write yourself, for whatever you need: run a TikTok farm, watch prices, test your app, pull data out of any app. If you can do it with your thumbs, an extension can do it on a schedule.

    Write it by hand, or ask your agent to write it for you. Save the file and PhonePilot loads it. An extension can show up in four places:

    Button
    Run it from the app on any phone
    Schedule
    Cron, in your Mac’s time zone
    Agent tool
    Your agents call it over MCP
    Endpoint
    127.0.0.1:7788/x/<name>/…

    Extensions can also have Claude read the screen into typed data, keep their own storage and call the internet. Each runs in its own process, so one crashing never takes down the rest.

    extensions/tiktok-farm/extension.ts
    1import { Duration, Effect, Schema } from "effect"
    2import { HttpRouter, HttpServerResponse } from "effect/http"
    3import { Extension, Phone } from "phonepilot"
    4
    5// Scroll the For You feed like a person would.
    6const warmUp = Effect.gen(function* () {
    7 const phone = yield* Phone.Service
    8 yield* phone.openApp("TikTok")
    9 yield* phone.tapText("For You")
    10 for (let i = 0; i < 40; i++) {
    11 yield* phone.scroll(800)
    12 yield* Effect.sleep(Duration.seconds(4 + Math.random() * 8))
    13 }
    14})
    15
    16// Every phone named tt-…, all at once: each has its own queue.
    17const warmUpFarm = Effect.gen(function* () {
    18 const phones = yield* Phone.list
    19 yield* Effect.forEach(
    20 phones.filter((p) => p.name.startsWith("tt-")),
    21 (p) => Phone.session("warm-up", warmUp, { phone: p.name }),
    22 { concurrency: "unbounded" }
    23 )
    24})
    25
    26const done = () => HttpServerResponse.jsonUnsafe({ ok: true })
    27
    28export default Extension.make({
    29 name: "TikTok farm",
    30 tools: [Extension.tool({
    31 name: "warm-up",
    32 description: "Warm up every tt- account now.",
    33 input: Schema.Struct({}),
    34 run: () => warmUpFarm
    35 })],
    36 http: HttpRouter.add("POST", "/warm-up", warmUpFarm.pipe(Effect.map(done))),
    37 actions: [Extension.action({
    38 id: "warm-up",
    39 title: "Warm up every account",
    40 schedule: "0 9,14,20 * * *",
    41 run: warmUpFarm
    42 })]
    43})

    Not just TikTok.
    Any app, any iPhone.

    01

    Social & TikTok farms

    Warm up accounts, post drafts and reply to comments on every phone at once, each with its own account and schedule.

    02

    Agents with real phones

    Give Claude Code, Codex or Cursor an iPhone. They see the screen, tap, type and report back.

    03

    App testing & QA

    Smoke-test every TestFlight build on real devices and keep screenshots of each step.

    04

    Data from apps without APIs

    WHOOP, Health, banking, delivery apps: read them into typed JSON on a schedule.

    05

    Ops & support

    Check a customer’s flow on a real iPhone, reproduce bugs, verify push notifications.

    06

    Your own idea

    If you can do it with your thumbs, an extension can do it on a schedule.

    Under the hood.
    Real taps, really seen.

    tap “WHOOP” ✓

    Real taps

    Your Mac is a Bluetooth mouse. PhonePilot watches the screen to aim, and only taps once it’s on target.

    Settings

    • Airplane Mode
    • Wi‑Fi
    • Bluetooth
    • Cellular
    • Personal Hotspot
    • Battery

    On-device OCR

    Find text to tap and wait for it to appear. Fast, free, and no pixel leaves your Mac.

    Runs on your Mac

    Capture, control and storage stay local. The server only listens on 127.0.0.1.

    Pricing

    One plan.
    No caps from us.

    Every automation and every update, running on the Claude subscription you already have. The only ceiling is hardware: about 5–7 iPhones per Mac.

    PhonePilot Pro

    No caps

    $50/ month

    Control your iPhones for whatever you want, about 5–7 per Mac.

    • ✓No cap on iPhones from us; about 5–7 per Mac is the hardware limit
    • ✓Unlimited runs, agents and schedules
    • ✓Unlimited extensions, tools and endpoints
    • ✓MCP for Claude Code, Codex, Cursor and more
    • ✓Run history with steps, logs and screenshots
    • ✓Every update
    Get PhonePilot

    Uses your Claude

    The built-in agent and extensions run Claude through Claude Code on your Mac, signed in with your own plan. No API key to manage, and no token bill from us.

    • ✓Works with the Claude plan you already pay for
    • ✓Bring Codex, Cursor or any MCP client too
    • ✓Phone control itself needs no AI at all
    $claude mcp add --transport http phonepilot http://127.0.0.1:7788/mcp
    FAQ

    Frequently asked
    questions.

    How PhonePilot connects, what it can run, and where your data goes.

    No. PhonePilot sees the screen over USB or AirPlay, and your Mac acts as a Bluetooth keyboard and mouse. iOS shows the mouse as an AssistiveTouch pointer, and PhonePilot aims it by watching the screen. Nothing is installed on the phone.

    Put your iPhone farm on autopilot.

    $50 a month. No caps from us. Works with your Claude subscription.