AgentPulse

Control Claude Code from another computer or your phone

You start a long Claude Code task at your desk and walk away. Did it finish? Is it stuck on a permission prompt? Can you give it the next instruction without going back? This guide sets up remote access to your coding agents with a self-hosted AgentPulse server.

Two levels of remote access

Before setting anything up, it helps to know what "remote" can mean:

Watch remotelyControl remotely
What you can doSee status, prompts, tool calls and history for every sessionLaunch new sessions, send prompts, stop and retry
Which sessionsAny session with AgentPulse hooks installed, including ones you started in a terminalSessions AgentPulse launched through a supervisor (called managed sessions)
What you installHooks, plus a relay if the server is on another machineThe same, plus the supervisor on each machine that runs agents

The split is deliberate. AgentPulse can only type into a session whose process it holds. A session you started yourself in a terminal belongs to that terminal, so it can be watched but not steered.

Step 1: run the server somewhere you can reach

The simplest option is your own machine, with the dashboard opened up to your LAN and login turned on:

docker run -d -p 0.0.0.0:3000:3000 -v agentpulse-data:/app/data \
  -e HOST=0.0.0.0 \
  -e AGENTPULSE_LOCAL_ADMIN_USERNAME=admin \
  -e AGENTPULSE_LOCAL_ADMIN_PASSWORD='<strong-password>' \
  --restart unless-stopped --name agentpulse ghcr.io/jstuart0/agentpulse

Never combine a LAN-facing port with DISABLE_AUTH=true. That would give everyone on the network full control with no password.

To reach it from outside your home, put AgentPulse on a server behind HTTPS and single sign-on instead. AgentPulse works with any forwardauth identity provider: Authentik, Authelia, oauth2-proxy, Pomerium or Cloudflare Access. See self-hosting AgentPulse.

Step 2: connect each machine

On every machine that runs agents, install the relay. It sets up the hooks and forwards events to your server:

curl -sSL https://your-agentpulse-server.example.com/setup-relay.sh | bash

That's enough to watch every session from your phone. Open the dashboard in a mobile browser to see the same sessions, statuses and timelines you'd see at your desk.

Step 3: add a supervisor for control

The supervisor is a small process that runs on each machine and launches agents on AgentPulse's behalf. The one-command local install starts one for you. On other machines, create an enrollment token on the dashboard's Hosts page and use it to register that machine's supervisor.

With supervisors connected you can, from any browser:

AgentPulse session view showing a Claude Code session's prompt history and tool calls, viewable from any browser
A session's timeline looks the same from your phone as from your desk.

Step 4 (optional): approvals in Telegram

AgentPulse's experimental AI Labs layer includes a Telegram channel. When a session watcher wants a human decision, it sends the request to a Telegram chat with Approve and Decline buttons. The same chat accepts plain-language requests through the Ask assistant, such as "open a Claude session for myapp". Anything that changes state still goes through an approval card. Setup steps are in the README.

Security notes