subnera: a menu bar app to watch Train at Home
Verified with T@H 3.7.0 on macOS 26.6.2 (October 5, 2026)
Published October 5, 2026 · 7 min read
The optimal setup guide already mentioned the core problem: Train at Home's own UI can't show your real queue position, because the endpoint it relies on (register.queue_state) returns a 503 with no handler behind it. subnera exists specifically to fix that, by reading the same log the official app already writes.
What it actually is
subnera is a tiny macOS menu bar app. It runs one process, holds no Dock icon, and by default only reads local files — the log, plus the official app's update files, read-only — on a timer and repaints its menu. Its one network request out of the box is an anonymous daily check for a newer version, which you can turn off (details). It never connects to Train at Home's own local control port (127.0.0.1:8010): that port's access token rotates on every app restart, and the official Electron host already owns the one connection it needs, so tapping it would only risk interfering with a running miner.
If this Mac is already linked by subnera-agent, the subnera menu bar app shows that link read-only and does not report on its own, so the Mac is never counted twice. Run subnera-agent unlink to use the app instead.
What it shows
Depending on where you are, the menu bar itself changes to reflect it. Queued:
⛏ 1564 ▼ ← menu bar title: queue position + trend
─────────────────
State: queued
Queue: 1564 (-2.0/min)
ETA: ~8h40m (→ Sun 6 Jul 03:20)
Since: 00:12:22
Work: idle (not assigned)
Speedtest: fail (cosmetic, non-blocking)
Backend: 11×503 queue_state, 11×404
Updated: 17:56:07
Registering, waiting for a layer slot:
🟡 confirmed ← menu bar: registration status
─────────────
State: registering
Queue: confirmed — waiting for a layer slot
Since: 18:50:33
Updated: 13:42:17
Actually training:
🟢 L1 · 358k tok/h ← menu bar: layer + throughput
─────────────────
State: working
Since: 03:45:12
Work: training · layer 1 · opt step #24
Rate: 358k tok/h · 112 passes/h (over 18 min)
Updated: 12:34:56
The ETA is a rough estimate from the recent trend, not a promise — queue movement is noisy, and the figure is meant to give you a sense of scale, not a countdown to trust exactly.
Requirements
- macOS 13 (Ventura) or later.
- An Apple silicon Mac. There is no Intel build.
- Nothing else: no developer tools and no runtime dependencies.
Download and install
- Go to the download page and download the DMG.
- Open the DMG.
- Drag subnera onto the Applications shortcut in the window.
- Open it from Applications. The app is signed with an Apple Developer ID and notarized by Apple, so macOS opens it without a warning beyond the usual “downloaded from the internet” prompt.
- Turn on Launch at Login (next section) so it comes back after a restart.
Prefer Homebrew? This installs the same signed app from the DMG above:
brew install --cask subnera/tap/subnera
Update it later with the in-app update or brew upgrade --cask subnera.
Launch at Login
Toggle it directly from the menu (Options ▸ Launch at Login) or from Settings… ⌘,. It uses Apple's SMAppService, and the first time you enable it, macOS may list the app under System Settings → General → Login Items pending your approval.
Reading the menu bar at a glance
| Menu bar | Meaning |
|---|---|
🟢 working |
assigned and training |
🟡 confirmed |
registering, waiting for a layer slot |
🟡 1564 ▼ |
queued at 1564, advancing toward the front (good) |
🟡 1564 ▲ |
queued, falling back (usually from restarting the app) |
🟡 … |
starting, resetting, or running a speed test |
🔴 off |
the official app isn't running, or the log has gone stale (over 2 minutes) |
⚪️ ? |
running, but the state isn't recognized yet |
Clicking the menu bar item opens a detail menu with your full status, plus controls to launch/quit/restart the official app. The Options ▸ submenu holds toggles for auto-restart on crash, online data, unknown-line capture, and bandwidth measurements; also Menu bar shows: This Mac / Fleet (if enrolled). The bottom of the menu has Open log ⌘L, Settings… ⌘,, Remote Dashboard Settings… (if enrolled), and Quit subnera ⌘Q.
Optional: online data
By default subnera reads only local files and makes one network request, the anonymous daily update check (what it sends). It reads your log and, read-only, Squirrel's ShipItState.plist and the downloaded update's version. It never writes to them. You can separately opt in to Online data from the menu, which reads the public hotkey from your local wallet file and anonymously queries Macrocosmos's public API for your run's tier, occupancy, and rewards. Your password and private key never leave the Mac in either case — only the public hotkey (part of the request URL) and your IP address are visible to that request, the same as any normal web request. Uncheck it from the menu at any time to stop. The online data guide lists exactly what it reads and sends.
Optional: watching more than one Mac
If you're running Train at Home on several machines, the hosted subnera hub (at app.subnera.com) gives you one live dashboard for the whole fleet, a CLI-log viewer, and alerts. It's off by default: without enrollment the app sends nothing to the hub, enrolling a Mac is a deliberate action from the menu (Remote Dashboard Settings…), and remote start/stop/restart only works on a machine where you've explicitly ticked Allow remote control. See the multi-Mac guide.
If something looks off with the monitor itself
| Symptom | Likely cause |
|---|---|
⛏ off while Train at Home is clearly running |
The log isn't updating — confirm the official app is actually running, and that ~/Library/Logs/IOTA Train at Home/ exists. |
| Login toggle says "requires approval" | Approve it under System Settings → General → Login Items. |
Position climbing (▲) instead of falling |
You (or something else) restarted the official app; each restart re-queues you at the back — see the queue position guide. |
⚪️ ? |
The app is running but the monitor doesn't recognize the current state yet, for instance after an official update changes the log wording. Turn on Capture unknown lines in the menu to save the unrecognized line shapes (check them for your hotkey before sharing). |
Work always shows idle |
Expected until you actually reach the front of the queue and get assigned a layer. |
Checklist
- Confirm you're on macOS 13 or later, on an Apple silicon Mac.
- Download the DMG, drag the app to Applications and open it.
- Open the app and enable Launch at Login if you want it to persist across reboots.
- Leave Online data off unless you specifically want the extra public rewards/tier rows.
- If you're running more than one Mac, look at the fleet hub guide. For a Mac run as a headless server, see the command-line agent.
- Use the queue position guide if you'd rather understand the raw log the app is reading.
For everything else about running Train at Home well — install, keep-awake, network — see the full optimal setup guide. If you haven't installed the official app yet, start with the install guide.
Related guides
Want to see this on your own Mac?
subnera shows the real queue position and phase in your menu bar.
Install subnera