Documentation Index
Fetch the complete documentation index at: https://docs.signalrooms.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Your first 30 minutes
Status: Current operator walkthrough. This is the path most new operators take on day one, install Warmr on a Mac, get one iPhone connected, install the runner, run a warmup on one TikTok account. This page is a single linear walkthrough. Each step is one thing. Don’t skip, most setup failures are skipped steps surfacing as obscure errors later.What you’ll have at the end
- Warmr.app installed on your Mac and showing one connected iPhone.
- The on-device runner (RodmanRunner) installed on that iPhone, with the developer profile trusted.
- One TikTok account added to an account list, already logged into TikTok on the iPhone.
- One template configured for activity workflow (warmup) mode.
- One thread that combines the iPhone, the account list, and the template, running.
Before you start (5 minutes)
You need:- A Mac on Apple Silicon (M1 or later), macOS 14 (Sonoma) or newer.
- An iPhone 12 or newer running iOS 17 or later, with at least 5 GB free.
- An original Apple or MFi-certified USB cable.
- An Apple Developer account, paid ($99/year) or free Apple ID. Paid is recommended; the runner cert lasts a year instead of 7 days. You can do this whole walkthrough on a free Apple ID and upgrade later.
- One TikTok account already logged into the TikTok app on the iPhone you’re going to use.
Stage 1: Install Warmr on your Mac (2 min)
- Download the latest Warmr DMG (the link comes from the SignalRoom team during onboarding. Warmr is not on a public download page yet).
- Double-click the DMG to open it.
- Drag Warmr.app into your Applications folder.
- Launch Warmr from Launchpad or Applications.
- macOS will warn about an unidentified developer the first time you open it: System Settings → Privacy & Security → scroll to the warning → click Open Anyway.
Stage 2: Connect your first iPhone (3 min)
- Plug the iPhone into the Mac with the USB cable.
- On the iPhone, tap Trust This Computer? → Trust → enter your passcode.
- Make sure the iPhone is unlocked (the home screen visible, not the lock screen).
- In Warmr, open the Devices page from the sidebar.
- Your iPhone should appear in the device list with its UDID, model name, and a green “connected” indicator.
- Reseat the cable.
- Confirm the trust prompt on the iPhone again (sometimes it appears more than once).
- Try a different USB port, front-of-Mac ports are usually more reliable than dock-station ports.
- If you’re on Windows, you’re not, see Mac host setup; SignalRoom requires macOS on Apple Silicon.
Stage 3: Configure required iPhone settings (5 min)
Run through every one of these on the iPhone before touching the runner. Two of them, Light appearance and StandBy off, are the most common reason a session looks like it’s hanging.| # | Setting | Where | Value |
|---|---|---|---|
| 1 | Developer Mode | Settings → Privacy & Security → Developer Mode | On (reboot, confirm again) |
| 2 | Auto-Lock | Settings → Display & Brightness → Auto-Lock | Never |
| 3 | Brightness | Settings → Display & Brightness | Slider ≥ 50% |
| 4 | Appearance | Settings → Display & Brightness → Appearance | Light (not Dark, not Automatic) |
| 5 | iCloud Photos | Settings → Photos → iCloud Photos | Off |
| 6 | StandBy | Settings → StandBy | Off |
| 7 | Reduce Motion (optional) | Settings → Accessibility → Motion | On |
Stage 4: Install the runner on the iPhone (5–10 min)
This installs the on-device test runner (called RodmanRunner) that Warmr uses to drive TikTok. The runner is signed with your Apple Developer account, not a SignalRoom-controlled cert. You have two paths. Pick one.Path A (recommended): App Store Connect API
Use this if you have a paid Apple Developer account ($99/year) and App Manager role or higher. Five minutes from start to install. Cert lasts a year.- Go to appstoreconnect.apple.com/access/integrations/api.
- Switch to the Team Keys tab (not Individual Keys).
- Click Generate API Key → role = App Manager.
- Apple shows the Issuer ID and Key ID, and lets you download the .p8 file. Save the .p8 now: you only get one download.
- In Warmr, open Devices, expand the App Store Connect API section.
- Paste Key ID, Issuer ID, and drop the .p8 file into the upload area.
- Click Test connection & save. Warmr auto-detects the Team ID.
- The Install button next to your iPhone activates. Click it. Wait 30–60 seconds.
Path B: Xcode (free Apple ID)
Use this if you’re using a free Apple ID. Takes a few more clicks. Cert lasts 7 days, you’ll re-install once a week.- In Warmr, open Devices and scroll all the way down to the manual signing section.
- Click Sign via Xcode Manually → Download Xcode Project.
- Extract the ZIP. You’ll get a folder containing RodmanRunner.xcodeproj.
- Double-click RodmanRunner.xcodeproj to open it in Xcode.
- In Xcode, Settings → Accounts (
⌘,) → click+→ Apple ID → sign in with your free or paid Apple ID. - In Xcode’s project navigator (left sidebar), click the top-level RodmanRunner project to open the target settings.
- Select the RodmanRunner target → Signing & Capabilities tab → check Automatically manage signing → pick your Team from the dropdown.
- Repeat step 7 for the RodmanRunnerUITests target (it’s in the target list under RodmanRunner).
- With the iPhone connected over USB, click the device selector at the top of the Xcode window → pick your iPhone.
- Product → Build For → Testing (
⌘⇧U). Xcode compiles, signs, and installs the runner. The build takes 30–90 seconds the first time.
Stage 5: Trust the developer profile on the iPhone (1 min)
Apple won’t let an iPhone launch an app signed by an unknown developer until you say it’s OK. Do this once per iPhone, regardless of which install path you used.- On the iPhone: Settings → General → VPN & Device Management.
- Find the entry under Developer App with your Apple ID or Team ID.
- Tap it → Trust (the button shows your Apple ID or Team ID) → confirm.
isConnected: true and a non-null rodmanInstalledVersion. If rodmanInstalledVersion is null, the runner isn’t installed yet, go back to Stage 4.
Stage 6: Add your TikTok account (1 min)
- In Warmr’s sidebar, click Accounts.
- Click Add List.
- Give the list a name (e.g. “My First List”).
-
In the accounts field, type your TikTok username: one per line. For this first run, one username is fine:
- Click Save.
Important: the account has to already be logged into the TikTok app on the iPhone. Warmr’s activity workflows don’t log accounts in, they assume you’ve already done that step manually (or you’re running an onboarding/seeding workflow, which is a separate mode covered elsewhere).
Stage 7: (Optional) Per-account proxy via Shadowrocket or Stash
Skip this stage for your first run unless you specifically need to assign a proxy to your account. Adds 5 minutes if you do. If you want each TikTok account to route through its own IP, install a proxy client on the iPhone:- Shadowrocket ($2.99, App Store), simpler, widely used.
- Stash ($3.99, App Store), more features, integrates more cleanly with Warmr’s per-account rotation.
signalroom/how-to/per-account-proxy and not part of this walkthrough, for now, manual Shadowrocket is the simplest path.
Stage 8: Create your first template, warmup mode (3 min)
A template defines what the run does. For your first run, do an activity workflow (warmup), no publishing yet. You’ll watch the iPhone scroll the feed and occasionally like a video.- In Warmr’s sidebar, click Templates.
- Click New Template.
- Name it “First warmup”.
- Run Mode → select Warmup.
- Type → select Feed (the simpler of the two. Search needs keywords).
- Feed parameters:
- Videos in feed (min / max): 5 – 10
- Time per video (min / max sec): 4 – 12
- Feed rates:
- Like: 8%
- Follow: 1%
- Favorite: 1%
- Pause between accounts: 10 seconds (doesn’t matter much for a one-account run, but set it).
- Debug → Save screenshots: keep this On: it’ll save screenshots to disk at each step, which is gold for support if something goes wrong.
- Click Save.
Stage 9: Create the thread (2 min)
A thread combines a template + one or more devices + an account list into one runnable unit.- In Warmr’s sidebar, click Threads.
- Click Add Configuration.
-
Fill in:
Field Value Name ”First warmup run” Devices Check the box next to your iPhone Upload template ”First warmup” (the template you just made) Account list ”My First List” Proxy None (or Manual if you set up Shadowrocket in Stage 7) Cyclic Off Pause between accounts 10 sec - Click Save. A new thread configuration row appears.
Stage 10: Launch the thread (1 min + watch)
- On the thread configuration row, click Start.
- Warmr connects to the iPhone, launches the runner if it isn’t running, opens TikTok, switches to (or stays on) your account, and starts the activity workflow.
What success looks like
- The iPhone showed TikTok scrolling smoothly. No app crashes, no stuck screens.
- The thread row in Warmr shows status finished with
videosWatched ≈ 5–10,likesGiven ≈ 0–2. - The Logs view shows a sequence of INFO lines ending with something like “thread complete: 1/1 accounts processed”.
- No red ERROR lines.
- Add 2–4 more TikTok accounts to the same list and re-run to confirm multi-account works.
- Once warmup looks reliable across 5–10 runs, set up a posting run: Posting runs.
What usually goes wrong: and how to fix it
| Symptom | Most likely cause | Fix |
|---|---|---|
| iPhone doesn’t show up in Devices | Cable / port / trust prompt not confirmed | Replug, confirm Trust on the iPhone, try a different USB port |
rodmanInstalledVersion is null after Stage 4 | Runner build/install didn’t finish | Re-run Build For Testing in Xcode, or click Install again in Warmr |
| iPhone says “Untrusted Developer” when the runner tries to launch | Didn’t trust the developer profile | Stage 5 again |
| Thread starts but the iPhone sits idle for minutes, then errors | StandBy is on (most common new-operator failure) | Stage 3, item 6, turn StandBy off |
| Thread starts but the iPhone screen renders weirdly and the runner stalls | Appearance is Dark or Automatic | Stage 3, item 4, set Appearance to Light, restart the thread |
| Thread errors with “TikTok not installed” | TikTok app missing on the iPhone | Install TikTok from the App Store and open it once; sign into the account; restart the thread |
| Thread errors with “automation disabled” | Warmr’s automation toggle is off | In Warmr’s app menu / Settings, enable automation |
| Thread starts but immediately stops with “No keywords for warmup search” | You picked Search mode without filling keywords | Stage 8, switch to Feed mode, or fill in keywords for Search |
| iPhone disconnects mid-run | USB cable | Swap to an Apple-original or MFi cable |
| Logs are empty or the Monitoring view is blank | Logs subscription not active / wrong filter | Run warmrctl --json logs --follow from a terminal to confirm logs are flowing |
Next stops
Now that one lane works:- Posting runs: your first actual video upload.
- Content folder structure: where videos and captions live on disk.
- Captions: four ways to set descriptions.
- Device lanes: scaling past one iPhone.
- Logs and evidence: auditing every run.
- Failure recovery: when sessions need operator attention.
- Agent docs: driving Warmr from
warmrctlfor AI agents and scripts.