HORUSdocs
Docs menu
horus CLI

Recipes

Everyday workflows: dev servers, syncing, many phones.

Short, copy-pasteable workflows for using your phone as a dev machine. Each assumes you've paired a phone called pixel. With only one phone plugged in, you can drop the name.

Run a web app on the phone, open it on your laptop

Start the dev server on the phone, then forward its port.

your computer
# 1. on your computer: open a shell on the phone
horus ssh pixel
# 2. now on the phone: start the app
cd /workspace/projects/my-app
npm install
npm run dev

Note the port it prints (often 3000 or 5173). In a second terminal window on your computer:

your computer
horus forward pixel 3000
you'll see something like
http://localhost:3000 → pixel port 3000 (until the phone is unplugged)

Open http://localhost:3000 in your laptop's browser. On the phone itself, you can also tap the localhost link in a Horus terminal.

Drive a coding agent from your laptop keyboard

A real keyboard and a big screen, with the agent running on the phone.

your computer
horus ssh pixel
cd /workspace/projects/my-app
claude

The first run installs the agent into your home folder on the phone (a minute or two), then starts it. That copy is separate from the one the app's tile uses, so you may need to sign in once more. Works the same with codex and opencode.

Edit on your laptop, run on the phone

Keep a folder on the phone matching one on your computer. Run it again whenever you want to send changes.

your computer
horus sync ./my-app/ pixel:/workspace/projects/my-app/
horus ssh pixel -- "cd /workspace/projects/my-app && npm test"

Put quotes around a command that uses && or |. Otherwise your computer's shell handles those parts instead of the phone.

Get results back

your computer
# one file
horus cp pixel:/workspace/projects/my-app/report.html .
# a whole folder
horus cp -r pixel:/workspace/projects/my-app/dist ./dist-from-phone

Many phones at once

Pair each phone once with its own name, like horus pair SERIAL --name p1. Then treat them as a small fleet:

your computer
# who's here?
horus devices
# update every phone's copy of a project
horus exec --all -- git -C /workspace/projects/app pull
# run the test suite everywhere at once
horus exec --all -- "cd /workspace/projects/app && npm test"
# check battery and temperature on each
horus status p1
horus status p2
you'll see something like
p1 | 42 passing
p2 | 42 passing

Jobs that should outlive the connection

When you close horus ssh or unplug the cable, commands started in that shell are usually stopped too. For long jobs, start them in the background and send their output to a file:

your computer
horus ssh pixel -- "cd /workspace/projects/app && nohup npm run build > build.log 2>&1 &"
# later
horus ssh pixel -- tail -n 20 /workspace/projects/app/build.log