Claude ↔ Remote Server — drei Modi

Wenn Claude Code lokal auf dem MacBook läuft, aber auf einem Server (Hetzner o.ä.) arbeiten soll, gibt’s drei saubere Modi. Je nach Aufgabe passt ein anderer.

Modus 1: Bash + SSH (Default)

Claude ruft ssh user@server "<befehl>" über den Bash-Tool auf.

Gut für: Logs ansehen, Docker-Services neustarten, Deploys anstoßen, Status-Checks, kleine Edits per ssh ... "cat > datei". Schlecht für: Viele Dateien editieren (jedes Read/Edit = neuer SSH-Call, nervig).

Setup einmalig in ~/.ssh/config auf dem Mac:

Host agentur-server
  HostName <ip>
  User marvin
  ControlMaster auto
  ControlPath ~/.ssh/cm-%r@%h:%p
  ControlPersist 10m

→ Erste Verbindung baut auf, alle weiteren nutzen den Socket wieder. Kein Latenz-Overhead pro Call.

Modus 2: SSH-MCP

Ein MCP-Server wrapt SSH als strukturierte Tool-Calls (ssh_exec, ssh_read_file, ssh_write_file).

Gut für: Regelmäßiges Arbeiten gegen den Server, wenn Modus 1 sich als zu nervig rausstellt. Schlecht für: Gelegenheits-Ops (Overhead für den Setup lohnt nicht).

Status: optional, noch nicht evaluiert welcher MCP dafür der richtige ist. Bei Bedarf Rule 18 anwenden (eigenes Forken von ~/source/mcps/ prüfen).

Modus 3: Claude Code direkt auf dem Server

ssh serverclaude starten. Claude läuft dann auf dem Server, nicht lokal.

Gut für: Tiefe Arbeit im Server-Dateisystem (Code editieren, mehrere Dateien parallel, Git-Ops), Langzeit-Sessions mit vielen File-Operationen. Schlecht für: Gelegentliches Admin (Overkill für „schnell was checken”), Sessions die nichts mit Server-Dateien zu tun haben.

Voraussetzung für persistente Sessions: zellij oder tmux auf dem Server, damit Claude-Runs nicht sterben wenn SSH abbricht. Gerade bei längeren Agent-Jobs Pflicht.

Multi-User-Setup: jeder User (marvin, alex) eigener Linux-Account mit eigener ~/.claude/-Config und eigenem Anthropic-API-Key. Sauberer als shared-Account mit tmux-Session-Sharing.

Entscheidungsmatrix

AufgabeModus
Status checken, Logs lesen, Docker-Restart1 (Bash+SSH)
Einmalig Server aufsetzen / Deploy1 (Bash+SSH)
Längere Code-Arbeit auf Server-Files3 (Claude on server)
Debugging über viele Dateien3 (Claude on server)
Häufiges Admin, mehrere Services parallel2 (SSH-MCP) wenn 1 nervt

Faustregel: Starte mit Modus 1. Wechsle zu Modus 3 wenn du merkst „ich schreibe gerade Code auf dem Server”. Modus 2 nur wenn Modus 1 im Alltag zu umständlich wird.

Was das für Server-Sizing heißt

Claude-Sessions laufen lokal → Server braucht kein RAM-Budget für Claude. Nur für die Services die auf dem Server laufen (Discourse, n8n, MCPs, etc.).

Ausnahme: Modus 3. Da läuft Claude Code auf dem Server → rechne ~500 MB RAM pro aktive Session dazu.