← All tutorials

Run an AI agent on a VPS and control it from your phone

Turn a $4 VPS into an agent you can text. Terminull runs headless on Linux, keeps your secrets encrypted, receives webhooks, and runs schedules — and you approve or redirect any of it from your phone.

  1. Rent a tiny VPS

    1 vCPU / 1 GB is plenty. One-line install, then pair with the QR the installer prints to the terminal — no GUI, no cable.

  2. Keep secrets encrypted

    Env keys live in ~/.config/terminull/.env and are used only in-process during a run. Every session is end-to-end encrypted between your phone and the box, so nothing sensitive rides the relay or lands in a plaintext log.

  3. Receive & control webhooks

    Ask the agent to create_webhook — you get a secret URL. Point GitHub, CI, or your monitoring at it: an inbound POST reaches your phone as an alert, or kicks off an agent run on the box. Revoke it any time.

  4. Run schedules on your box

    Cron-style script or agent schedules: nightly backups, cert renewals, log rotation, health checks. Only notable runs keeps them silent until one actually needs your attention.

  5. Automate from your pocket

    The agent runs commands on the VPS and streams output as cards; approve, redirect, or interrupt mid-run, and get a push when it finishes or hits a decision point.

Recipe · webhook → agent

Deploy on merge, reply on your phone

A GitHub push webhook triggers a run that pulls, builds, restarts the service, and pushes the result to you — with a script schedule as a safety-net health check afterward.

# GitHub webhook → your Terminull hook URL:
POST https://relay.terminull.dev/hook/<beacon>/<secret>
     { "title": "main pushed", "text": "deploy prod" }

# the agent, on the box:
git pull && docker compose up -d --build && curl -fsS localhost/health
# → push: "Deploy OK · health 200"  (or the error, if not)
Other roles: 📱 iOS Developer 🤖 Android 🌐 Web / Frontend ⚙️ Backend / API

Ready to try it?

Install the bridge on your Mac or VPS, grab the app, and pair in under a minute.