Remote For Xirp banner
AboveColin AboveColin

Remote For Xirp

Development community

Description

Remote For Xirp — mobile web control surface for the Xirp agent daemon: machines, projects, sessions, live tmux pane. Unofficial.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Remote For Xirp

**See and steer your coding agents from your phone.**

A mobile web app for [Xirp](https://xirp.dev), the agent desktop app from Spotify, so the sessions running on your Mac — Claude Code, Codex, Gemini, or whatever else Xirp is driving — can be watched and answered from an iPhone or Android without going back to the desk. It runs on your own network, not through anyone's cloud.

One Go binary with the UI embedded. No build step for the front end, no node_modules, no database.

**Unofficial.** Xirp is a Spotify product. This project is not made, endorsed or supported by Spotify, and is not derived from Xirp: the repository contains no code, stylesheets, icons or assets from the application — only this project's own client for the daemon's local WebSocket API. "Xirp" and "Spotify" are used to name what this talks to, and are trademarks of their owner.

The machines screen A session transcript, as chat A file diff The same transcript in dark mode

Install

curl -fsSL https://remote-for-xirp.cdevries.dev/install.sh | sh

That drops a checksum-verified universal binary into `~/.local/bin` and stops. Nothing starts listening, because you piped a script into a shell. Starting it is one explicit command, which also prints the QR code to scan:

xirp-remote interfaces                # which address can a phone reach?
xirp-remote install --generate-key    # start it, and print a pairing QR code

Scan the code with your phone, and that is the setup. `install` writes a launchd user agent, so it comes back at login and after a crash.

Building from source, every CLI subcommand, and pinning which address it serves on: [`docs/service.md`](docs/service.md).

R