Skip to content

Troubleshooting

Black screen in the Mini App

Cause: Screen Recording permission is missing or was revoked.

Fix:

  1. Open System Settings → Privacy & Security → Screen Recording
  2. Find node (or Bun) in the list and enable the toggle
  3. Stop the daemon and start it again — permission changes take effect on restart

Swift binary

The screenshot binary is a compiled Swift tool. On some macOS versions you need to add it explicitly. Look for screenshot-bin in the Screen Recording list if node alone doesn't fix it.

Input is ignored (taps do nothing)

Cause: Accessibility permission is missing or was revoked.

Fix:

  1. Open System Settings → Privacy & Security → Accessibility
  2. Enable the toggle for node (or Bun)
  3. Restart the daemon

"SESSION_TOKEN required"

The daemon exits immediately at startup. Make sure the token is set before running:

bash
npx remote-claude-daemon@latest --token {{SESSION_TOKEN}}

Mini App shows "waiting for daemon…"

The relay is reachable but the daemon has not registered. Start the daemon on your Mac. The Mini App polls every few seconds and will connect automatically.

Stream freezes or stutters

Check the frame rate — the default is 6 fps. Raise it with FPS=15 if your network can handle it.

Check the connection — the daemon logs a reconnect message if the WebSocket drops. A yellow dot in the Mini App means it is reconnecting.

Slow network — bandwidth depends on your screen resolution, how much the picture changes, and the frame rate. An idle screen costs almost nothing (the daemon skips unchanged frames), while continuous full-screen motion at 6 fps can use several Mbit/s. Lower the frame rate or watch on a faster connection if the stream can't keep up. Make sure your Mac has an outbound connection to the relay.

Screenshot binary fails to compile

Run with --debug to see the full swiftc error output:

bash
npx remote-claude-daemon@latest --token {{SESSION_TOKEN}} --debug

Common causes:

  • Xcode Command Line Tools not installed — run xcode-select --install
  • macOS version too old — requires macOS 12+

Audio is silent or choppy

  • Check that the Mac's output device is not muted
  • The Swift audio binary requires microphone permission for the input direction — grant it in System Settings → Privacy & Security → Microphone
  • Restart the daemon after granting permission

AI tasks don't respond

  • Make sure the daemon is running and connected (green dot in Mini App)
  • The AI runner uses Claude; check that the ANTHROPIC_API_KEY environment variable is set if you are running a local relay
  • Long tasks time out after 5 minutes — break them into smaller steps

Daemon crashes immediately on Apple Silicon

If you see SIGILL or a "killed" message, the precompiled Swift binaries may not match your architecture. Delete them and let the daemon recompile:

bash
cd $(npm root -g)/remote-claude-daemon
rm -f screenshot-bin macos-universal-*
npx remote-claude-daemon@latest   # recompiles on start

Still stuck?

Open Telegram and describe the problem to the bot — include the error message from the daemon logs. You can also file an issue on GitHub.