Run Claude Code on a server you control

Manta runs Claude Code on your own VPS, home server or Mac. The agent outlives the laptop because it lives in real tmux on the box, and you reach it from any device with the same session on every one.

box-fra-1· manta-server · systemd --user

The box is the source of truth

   Desktop      Phone      Browser
       │            │            │
       └──── HTTPS ─┴──── HTTPS ─┘
                │
   <box_id>.boxes.mantaui.com
   or your tailnet, if Tailscale is upYOUR BOX (VPS / Mac)
   manta-server ── owns tmux, files, secrets
        ├── tmux ── your sessions
        │       (keep running with 0 clients)
        └── opencode ── chat + agent tools

How the box reaches you

Auto

The installer detects and picks. Tailnet when Tailscale is already running, public hostname otherwise. You do not choose.

Tailnet

HTTP at a tailnet IP. Caddy, public DNS and Let's Encrypt are skipped entirely. Devices reach the box at http://<tailnet-ip>:8787.

Public

HTTPS at a per-box hostname. <box_id>.boxes.mantaui.com, with a Let's Encrypt certificate. Caddy terminates TLS, proxies to the box.

Force

Either, on demand. Set MANTA_INGRESS=public or MANTA_INGRESS=tailnet at install time if you want a specific path regardless of detection.

Self-hosted

On a VPS, a home server, or a Mac you own

Manta is the box. There is no hosted control plane, no seat count, and no account. You bring the hardware and the model provider. Everything else lives on the machine you control.

Ingress

The installer chooses how devices reach the box

There is one decision to make before you install: do you want a tailnet, a public hostname, or whatever the installer picks. Most people pick the third option and forget about it.

Persistence

The agent outlives every client

The whole point of running Claude Code on a server is that the work keeps going when you are not there. Manta is built around that. Close every client, lose the network, reboot the laptop. When you come back, the session is exactly where you left it.

FAQ

Questions about running Claude Code on a server

Five questions, answered in full.

Can I run Claude Code on a VPS?

Yes. The installer runs on Debian, Ubuntu and the usual Linux suspects, with Caddy and a Let's Encrypt certificate when you need public ingress. The agent runs in a real tmux session on the box, so it outlives every device that connects to it.

Do I have to forward a port?

No. If Tailscale is already running on the box, devices connect over your tailnet and nothing is published to the internet. If Tailscale is not running, the installer provisions a hostname and a certificate, which is the only public surface. You never forward a port by hand.

What happens when I close my laptop?

The agent keeps running, because it lives in a tmux session on the box. The box is a system service. When you open a browser or pair your phone again, the same session is there with the full history. The mobile page covers what the phone sees when this happens.

Does this work without a public DNS record?

Yes. Pick the tailnet path at install time and the box has no public DNS, no certificate, and no open port. Devices reach it over your tailnet at a private IPv4.

Is this self-hosted Claude Code?

Yes, and the install script is auditable before you pipe it into bash. The repository is MIT licensed and the server runs on hardware you control. The open source page covers what that means in practice.

Put it on your own box

Free, open source, MIT. Runs on a Linux VPS or a Mac you already own.

$ curl -fsSL https://mantaui.com/install.sh | bash