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 server → claude 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
| Aufgabe | Modus |
|---|---|
| Status checken, Logs lesen, Docker-Restart | 1 (Bash+SSH) |
| Einmalig Server aufsetzen / Deploy | 1 (Bash+SSH) |
| Längere Code-Arbeit auf Server-Files | 3 (Claude on server) |
| Debugging über viele Dateien | 3 (Claude on server) |
| Häufiges Admin, mehrere Services parallel | 2 (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.
Related
- Hetzner-Server-Setup-Pattern — noch nicht angelegt
- Research zu Discourse auf eigenem Server: 2026-04-19-research-discourse