Claude Code on a server

Run Claude Code on a server, and let it work while you sleep.

A refactor that takes two hours should not die because you closed the lid. Put Paw on a small Linux server, and your agents keep going. You still talk to them in the same chats, from your Mac or your phone.

Laptop and phone reach Paw on a server through Tailscale A sleeping laptop on the left, a server running pawd and its agents in the middle, a phone on the right. Dashed lines between them are labelled Tailscale. Underneath: the public internet gets nothing. Your Mac lid closed z z z Your server pawd, always on Builder Reviewer Planner still working Your phone same app Tailscale Tailscale public internet: nothing

What changes

The server does the work. You just look in.

With Paw on a server, the Mac app (or your phone) shows a Paw that runs somewhere else. Everything acts on the server: the agents, the files, the terminals and the browser.

  • Agents keep running when your laptop sleeps or goes offline
  • A deploy only restarts pawd. A small holder process keeps each agent alive
  • Your phone and your Mac see the same chats and the same project
  • Paw notifies you when an agent finishes or needs an answer
  • Only you can get in: your Tailscale login plus a token, no public port

The short version

Deploy, serve, connect.

The server page has the full steps and the security table. In short:

  1. Deploy

    One script builds Paw on the server and runs it as a service. You say which login may open it.

    scripts/deploy-vps.sh --host user@host --owner you@example.com
  2. Serve it to your tailnet

    On the server, point Tailscale at the owner-only port.

    tailscale serve --bg http://127.0.0.1:7291
  3. Connect and sign in

    In the Paw Mac app, open Settings, then Server, and paste the link. Agents on the server sign in to Claude with a token from claude setup-token.

Straight talk

When this is worth it, and when it is not.

Paw on a servertmux over ssh
Agents survive a closed laptopYesYes
A chat per agent, with a status ringYesYou watch windows
Answer from your phoneYes, as a chatA terminal on a small screen
Alerts when an agent needs youPush and Mac notificationsYou build it
Setup costA deploy script, Tailscale, a tokenYou probably have it

If you only ever run one agent in one terminal, tmux is enough. Paw earns its place when you run several agents, want to answer from your phone, and want to know without looking which one is stuck.

The real limits

What it needs, and what it does not do.

  • You need a small Linux machine you control. Paw runs there as its own user.
  • Claude Code has to work on the server. Agents sign in with a token from claude setup-token, kept in /etc/paw/paw.env.
  • If the server restarts, Paw comes back with it. Agents start again on their next message.
  • Agents that sit idle go to sleep after a day by default, and a starred chat never does. A sleeping agent wakes where it left off.
  • Agents run with Claude Code's permission prompts off, so they can run commands on that server. Use a machine and folders you can afford to lose, and keep your work in git.
  • The server link carries your token. Don't share it.
  • The Paw Mac app is the client for now. The phone uses the browser.

Keep reading

The full server guide

Every step, plus the table of who can reach which port.

Server setup and security

Use it from your phone

Tailscale, the home screen, and push notifications.

Claude Code on your phone

Questions

Server requirements, security, what is sent where.

Read the FAQ

Try it on your own agents.

Paw is a private beta for Apple Silicon Macs. Write for the next batch and say what you run Claude Code on.