Harness MaxxingDoku
📚 Alle Seiten

📚 Referenz · 12 Min. Lesezeit

⌨️Befehlszeilen-Referenz

maxxing ist in /usr/local/bin installiert. Führe maxxing <command> --help aus, um alle Optionen zu sehen.

Server und Einrichtung

Befehl Zweck
maxxing serve [--host IP] [--port N] startet den Webserver (wird vom Dienst claude-maxxing verwendet)
maxxing setup-link [--reset] gibt den einmaligen Einrichtungslink aus; --reset vergisst das Passwort und startet die Einrichtung neu
maxxing password legt ein neues Passwort für die Oberfläche fest (interaktiv)
maxxing 2fa status\|off\|forget-browsers zweistufige Anmeldung mit Telegram: Status, ausschalten (der Weg zurück hinein, wenn Telegram nicht antwortet), jeden Browser erneut fragen lassen
maxxing status [--json] Version, URL, Dienst, Claude-Anmeldung, Telegram, Backup, Pfade
maxxing doctor [--json] [--live] [--offline] [--deps] prüft die Installation; --live führt einen echten Claude-Aufruf aus, --offline überspringt die Update-Prüfungen (GitHub, Claude-Code-Release), --deps sucht zusätzlich nach bekannten Schwachstellen der installierten Pakete (osv.dev)
maxxing harden [--undo] [--no-restart] wendet die systemd-Sandbox des Dienstes an (oder entfernt sie) und startet ihn dann neu; stellt die vorherigen Einstellungen wieder her, wenn der Dienst nicht zurückkommt (siehe Sicherheit)

maxxing init

Erstellt oder aktualisiert die Konfiguration, den Workspace, die Skills und die Standard-Jobs. Kann gefahrlos erneut ausgeführt werden: Vorhandene Werte und Dateien bleiben erhalten, es sei denn, du übergibst eine Option. Workspace-Vorlagen (Standardprojekte general, system, tutorial) werden nur kopiert, wenn sie fehlen, und ein von dir gelöschtes Standardprojekt oder Thema wird nie neu angelegt. Standard-Jobs werden jeweils einmal angelegt (Speicherverdichtung, Nach Updates suchen, Morgenaufgaben und Verlängerungserinnerung deaktiviert).

Option Wirkung
--workspace PATH Workspace-Ordner (Standard /root/maxxing)
--files-root PATH Wurzelverzeichnis der Seite Dateien (Standard: Home-Ordner)
--port N HTTP-Port (Standard 8787)
--bind IP 127.0.0.1 oder die Tailscale-IP; öffentliche Adressen werden abgelehnt
--public-url URL z. B. https://ui.example.com; "" löscht sie
--timezone TZ IANA-Name (Standard: die Systemzone). Halte sie identisch mit der Systemzone (timedatectl), die cron verwendet - es sei denn, die Serveruhr bleibt unverändert
--system-clock follow\|keep follow: Wenn du die Zeitzone in der Oberfläche änderst, wird auch die Systemzone umgestellt; keep: sie wird nie angerührt (gemeinsam genutzter Server), Jobs prüfen ihren Zeitplan in deiner Zone
--claude-dir PATH Claude-Code-Ordner für Harness Maxxing (Standard ~/.claude; "" = zurück dazu). Ein anderer Ordner hält es getrennt von einem Claude Code, das schon auf dem Server genutzt wird (wird als CLAUDE_CONFIG_DIR an die Sessions übergeben)
--language en\|fr Sprache der Oberfläche
--secret-from-stdin NAME speichert ein von stdin gelesenes Geheimnis: claude_oauth_token, anthropic_api_key, github_update_token
--no-crons legt die Standard-Jobs nicht an
--quiet, --json Steuerung der Ausgabe

Beispiel: printf %s "$TOKEN" | maxxing init --quiet --secret-from-stdin claude_oauth_token.

Starte den Dienst nach einer Änderung von Port, Bind-Adresse oder öffentlicher URL neu: systemctl restart claude-maxxing.

maxxing update

Option Wirkung
(keine) holt die neue Version, spielt deine Anpassungen darauf wieder ein, synchronisiert die Abhängigkeiten, aktualisiert Skills/Vorlagen, startet neu, prüft, ob der Dienst antwortet (sonst Rollback), und gibt das Änderungsprotokoll aus. Exit-Codes: 0 fertig, 3 Anpassungen stehen im Konflikt (nichts geändert - passe sie an, dann --resume), 4 zurückgesetzt, 1 anderer Fehler
--resume schließt ein Update ab, nachdem die Anpassungen von Hand angepasst wurden (Rebase abgeschlossen)
--rollback geht zurück zu dem Code, der vor dem letzten Update lief (verweigert dies, ohne etwas zu ändern, solange das Code-Verzeichnis ungespeicherte Änderungen hat)
--branch B wechselt zum Branch B und folgt ihm
--check prüft nur: installierte gegenüber der neuesten Version und die Zeilen des Änderungsprotokolls dazwischen. Ändert nichts; Exit-Code 0, egal ob ein Update existiert oder nicht, 1 nur, wenn die Prüfung fehlschlägt
--check --notify sendet zusätzlich eine Telegram-Nachricht (Thread Crons), wenn ein Update verfügbar ist; nichts passiert, wenn Telegram nicht eingerichtet ist. Wird vom wöchentlichen Job „Nach Updates suchen" verwendet
--check --json maschinenlesbares Ergebnis {ok, current, latest, behind, available, changelog, ...}
--no-restart startet den Dienst nicht neu
--preflight simuliert das Update auf einer Wegwerfkopie: pro Anpassung wird übernommen / auf geändertem Code / jetzt enthalten / Konflikte, dazu ungespeicherte Änderungen, Änderungen über die Weboberfläche, Erweiterungen, die die neue Version nicht unterstützt, anzuwendende Upgrade-Hinweise und ein Urteil (simple oder adapt). Ändert nichts; --json für maschinenlesbare Ausgabe
--verify prüft, dass jede Erweiterung lädt und jedes Widget antwortet, und führt die Prüfung jeder Anpassung aus. Exit 0 alles funktioniert, 1 etwas ist zu beheben
--smart wird vom Update-Button verwendet: Nach dem Neustart öffnet der Server eine system/harness-Session, die die Upgrade-Hinweise anwendet

Jede Installation holt die neue Version von ihrem Git-Remote (ein privater Fork oder Mirror: mit dem Lese-Token, das als github_update_token gespeichert ist). Ein Server, der vor 2.0.0a87 mit einem Schlüssel installiert wurde, wechselt zuerst von selbst zum öffentlichen Git-Repository (siehe Lizenz). Nach einem Update listet der Befehl die Upgrade-Hinweise für den Workspace der installierten Versionen auf (<code>/docs/upgrade/<version>.md): Anweisungen für Claude, um deinen Workspace anzupassen. Am einfachsten geht es über das Thema system/harness (system/update auf älteren Servern): Sag „update", und Claude prüft, erklärt, aktualisiert nach deinem Ja und wendet dann diese Hinweise an.

Nur signierte Updates (optional). Setze "update_verify_signature": true in /var/lib/claude-maxxing/config.json, und maxxing update installiert eine neue Version nur, wenn ihr Commit oder ein darauf zeigender Tag eine gültige Signatur eines Schlüssels trägt, dem git auf diesem Server vertraut (git verify-commit / git verify-tag: importiere den GPG-Schlüssel des Maintainers mit gpg --import, oder verweise gpg.ssh.allowedSignersFile auf seinen SSH-Schlüssel). Andernfalls stoppt das Update, bevor etwas geändert wird (Exit-Code 1, eine Warnung im Benachrichtigungs-Feed und auf Telegram), und die aktuelle Version läuft weiter. maxxing doctor zeigt, ob die zuletzt geholte Version die Prüfung besteht. Standardmäßig aus.

maxxing license

Befehl Wirkung
maxxing license status [--json] der optionale Enterprise-Schlüssel dieses Servers (Typ, E-Mail, Enddatum) und woher die Updates kommen
maxxing license activate [HM-…] hinterlegt einen Enterprise-Schlüssel, der vom Lizenzserver geprüft wird (Eingabe verdeckt; --key-from-stdin liest ihn von stdin)
maxxing license remove vergisst den Schlüssel und gibt seinen Platz in der Lizenz frei
maxxing license release gibt den Platz des Schlüssels frei, ohne ihn zu vergessen

Siehe Lizenz.

maxxing video, maxxing pdf

Befehl Wirkung
maxxing video new DIR legt ein Remotion-Projekt in DIR an (node_modules mit der gemeinsamen Installation verknüpft)
maxxing video status Node.js, Remotion und der Headless-Browser auf diesem Server (Exit 1, wenn nicht bereit)
maxxing pdf IN.html OUT.pdf druckt eine HTML-Datei oder eine https://-URL als PDF (A4, mit Hintergründen)
scrapling extract get\|fetch\|stealthy-fetch URL OUT.md holt eine Seite (HTTP / Browser / Stealth-Browser) als Markdown, Text oder HTML
scrapling-python SCRIPT.py führt ein Scraping-Skript mit Scrapling und seinem Browser aus
bash /opt/claude-maxxing/install.sh --tools installiert Node.js, Chromium, Remotion und Scrapling (neu) (= maxxing deps update)

maxxing import

Befehl Wirkung
maxxing import --prompt [hermes\|claude-code\|openclaw\|other] gibt den Prompt aus, den du deinem alten Agenten geben sollst
maxxing import ZIP --dry-run [--json] zeigt, was importiert würde
maxxing import ZIP [--json] importiert es (nichts wird überschrieben; siehe Import)

maxxing custom

Änderungen am Produktcode, die so festgehalten werden, dass Updates sie übernehmen (siehe Anpassen).

Befehl Wirkung
maxxing custom / status [--json] Anpassungen, ungespeicherte Änderungen im Code-Verzeichnis, ausstehendes Update
maxxing custom save "TITLE" --why "REASON" [--files F…] [--check "CMD"] committet die nicht committeten Änderungen als eine Anpassung (unter web/ verweigert); --check = ein Befehl, der erfolgreich ist, solange alles funktioniert, und nach jedem Update ausgeführt wird
maxxing custom check ID "CMD" setzt die Prüfung einer Anpassung (oder löscht sie mit "")
maxxing custom drop ID entfernt eine Anpassung
maxxing custom export schreibt <workspace>/CUSTOMIZATIONS.md und customizations/*.patch neu
maxxing custom restore [--from DIR] wendet die gespeicherten Patches erneut an (neuer Server)

maxxing deps

Die externen Komponenten (server/maxxing/deps.toml: uv, Python, Node.js, Claude Code, Caddy, Scrapling, Chromium, Remotion, die Whisper-Modelle, Garage). Als root.

Befehl Wirkung
maxxing deps list [--json] installierte und erwartete Version jeder Komponente (Exit 1, wenn eine fehlt oder veraltet ist)
maxxing deps verify [NAME...] Prüfsummen der installierten Binärdateien, Dateien, die nicht root gehören oder für andere schreibbar sind
maxxing deps update [NAME...] [--notify] installiert die festgelegten Versionen neben den alten und schaltet um, sobald sie funktionieren (jedes maxxing update tut das)
maxxing deps remove NAME [--force] löscht, was das Manifest dafür aufführt (--force für uv, Python, Claude Code)
maxxing deps clean [--dry-run] [--caches] alte Versionen, ungenutzte Browser, Überreste, übergroße Logs (wöchentlicher Job); --caches leert zusätzlich die uv-/npm-/pip-/npx-Caches von root, die mit den anderen Tools des Servers geteilt werden
maxxing deps check [--notify] bekannte Schwachstellen (osv.dev) in den Lockfiles und Komponenten (wöchentlicher Job, Benachrichtigung)

maxxing uninstall

Option Wirkung
(keine) entfernt den Dienst, die Caddy-Site, den verwalteten Crontab-Block, die Produkt-Skills und /usr/local/bin/maxxing; Code, Zustand und Workspace bleiben erhalten
--purge löscht zusätzlich den Code (/opt/claude-maxxing), den Zustand (/var/lib/claude-maxxing) und die externen Komponenten aus deps.toml (uv, Node.js, die Tools; Claude Code und Caddy, wenn der Installer sie installiert hat; seine Swap-Datei)
--purge-workspace löscht zusätzlich den Workspace (unwiderruflich)
--yes fragt nicht nach Bestätigung

Geplante Jobs

Befehl Zweck
maxxing cron list Jobs, Zeitpläne, letzte Ergebnisse
maxxing cron run <id> führt einen Job jetzt in deinem Terminal aus und wartet darauf; --detach startet ihn in einer eigenen systemd-Unit mit den Speicherlimits und kehrt sofort zurück (das, was die Crontab aufruft); --if-due führt ihn nur aus, wenn sein Zeitplan jetzt in deiner Zone passt (Serveruhr beibehalten)
maxxing cron sync schreibt den verwalteten Crontab-Block anhand der Jobliste neu

Benachrichtigungs-Feed

Befehl Zweck
maxxing feed post "Title" [--body] [--level info\|success\|warning\|error] [--source NAME] [--url] [--dedupe KEY] [--group KEY] [--quiet] [--json] fügt ein Ereignis hinzu (Dashboard, und Telegram gemäß der Regel der Quelle); --dedupe ignoriert eine Wiederholung, --group fasst Wiederholungen zusammen
maxxing feed list [--unread] [--source] [--limit] [--json] neueste Ereignisse
maxxing feed read-all markiert alles als gelesen
maxxing packs list [--json] Starterprojekte und ob sie installiert sind
maxxing packs add ID [ID...] [--json] fügt Starterprojekte hinzu (überschreibt nie: nur fehlende Dateien werden hinzugefügt; Jobs werden deaktiviert angelegt)

Schlüssel

Befehl Zweck
maxxing keys list [--json] Namen, Notizen und ob jeder Schlüssel freigegeben ist (nie die Werte)
maxxing keys get NAME gibt einen Wert aus (Exit-Code 1, wenn er fehlt)
printf %s "$VALUE" \| maxxing keys set NAME [--note TEXT] [--no-expose] legt einen Schlüssel an oder aktualisiert ihn; der Wert kommt von stdin, nie von der Befehlszeile. Ein neuer Schlüssel wird freigegeben (Umgebungsvariable jeder Session und jedes Shell-Jobs), außer mit --no-expose; bei einer Aktualisierung bleiben Notiz und Freigabe erhalten
maxxing keys delete NAME entfernt einen Schlüssel
maxxing infra status / infra list [--kind K] [--json] das Infra-Inventar: Quellen, Probleme, jede Site / Datenbank / jeder Bucket / jede Domain / jeder Server (letzter Snapshot)
maxxing infra refresh liest jetzt alles ein (dieser Server, andere Server per SSH, Cloudflare, Hostinger, URL-Prüfungen)
maxxing infra site add NAME (--dir D \| --port N) [--host H] [--dns] [--project P] stellt eine Site online: https://<Harness address>/<NAME>/ (in einer Sandbox) oder unter einem eigenen Host; site remove, site list, reserved
maxxing infra db install / db create NAME / db sqlite PATH / db backup PostgreSQL auf localhost, pro App eine Datenbank und ein Benutzer (URL im Tresor als DB_<NAME>_URL), nächtliche Backups
maxxing infra bucket install / bucket create NAME [--public] S3-Buckets auf diesem Server (Garage), Schlüssel im Tresor als S3_<NAME>_*
maxxing infra server add NAME HOST [--user U] [--key K] liest einen anderen Server per SSH ein (server remove, server list)
maxxing infra annotate ID [--project P] [--note T] [--hide\|--show] ordnet eine Ressource einem Projekt zu, versieht sie mit einer Notiz, blendet sie aus

Skripte lesen Schlüssel aus der Umgebung (os.environ["NAME"], $NAME); ein Skript, das ein Token erneuert (ein 24-Stunden-Shop-Token, ein gerade erstelltes Webhook-Geheimnis), schreibt es mit maxxing keys set zurück.

MCP-Server

Befehl Zweck
maxxing mcp list [--json] [--no-check] jeder MCP-Server von Claude Code, wo er gilt und sein Status (fragt zuerst Claude Code, einige Sekunden)
maxxing mcp add NAME URL [--where projects/P/topics/T] [--header 'Name: value'] [--sse] fügt einen Server per Adresse hinzu, für alle Sessions oder ein Thema; Geheimnisse als ${KEY} aus dem Tresor
maxxing mcp add NAME --command 'npx -y pkg' [--env KEY=VALUE] [--where …] fügt ein lokales Programm hinzu
maxxing mcp remove NAME [--where …] entfernt es

OAuth-Anmeldungen (Status „Zu verbinden") werden unter Einstellungen -> MCP -> Verbinden durchgeführt. Siehe MCP-Server.

Gedächtnis und Sessions

Befehl Zweck
maxxing memory [--json] jede memory.md mit ihrer Zeilenzahl und dem Zeilenlimit (Einstellungen -> Gedächtnis)
maxxing sessions compact-logs [--dry-run] kürzt die Tool-Ausgaben bestehender Session-Logs und entfernt die umfangreichen Startlisten und Fortschrittszeilen von Claude (schafft Speicherplatz; --dry-run zeigt nur, was eingespart würde)
maxxing sessions token-report [--days N] [--json] wohin die Tokens deiner Sessions fließen, aus den Transkripten von Claude Code gelesen: Kontextgröße pro Aufruf, nach einer Leerlaufstunde oder einem Modellwechsel neu geschriebener Cache, die Tools, deren Ausgaben den Kontext füllen, und was eine automatische Verdichtung bei 400k / 300k / 250k / 200k bei denselben Aufrufen eingespart hätte

Backup

Befehl Zweck
maxxing backup status [--json] Konfiguration und letzter Lauf
maxxing backup run sichert jetzt (Exit-Code 2, wenn ein Geheimnis gefunden wurde)
maxxing backup restore [--ref COMMIT] stellt die Dateien auf der Whitelist wieder her
maxxing backup restore --from OWNER/NAME [--token T] neuer Server: richtet ein vorhandenes Backup-Repository ein und stellt dann wieder her (Token auch aus $MAXXING_GITHUB_TOKEN)

Telegram

Befehl Zweck
maxxing telegram status [--json] Bot, Chat, Threads, Einstellungen, letzter Fehler
maxxing telegram test sendet eine Testnachricht
maxxing voice status [--json] Sprachnachrichten: Engine, Modell, Bereitschaft
maxxing voice set [--engine] [--model] [--language] ändert die Spracheinstellungen
maxxing voice download [model] lädt ein lokales Sprachmodell herunter
maxxing voice transcribe <file> transkribiert eine Audiodatei mit der eingestellten Engine

Installer

curl -fsSL https://get.harness-maxxing.com | bash          # install / repair (from the public git repository, no key)
bash /opt/claude-maxxing/install.sh --update                # = maxxing update
bash /opt/claude-maxxing/install.sh --uninstall [--purge] [--purge-workspace]
bash /opt/claude-maxxing/install.sh --tools                 # (re)install Node.js, Chromium, Remotion, Scrapling (= maxxing deps update)
SOURCE_DIR=/path/to/copy bash /path/to/copy/install.sh      # install a local copy of the code (no download)
bash /opt/claude-maxxing/install.sh --secure                # security updates, fail2ban, firewall (FIREWALL=0: no firewall)
curl -fsSL https://get.harness-maxxing.com | bash -s -- --check   # look at the server first, change nothing

Variablen: siehe Installation.

Umgebungsvariablen

Variable Verwendung
MAXXING_STATE Zustandsverzeichnis (Standard /var/lib/claude-maxxing); wird vom Dienst und vom CLI-Wrapper gesetzt
MAXXING_GITHUB_TOKEN Token für maxxing backup restore --from
NO_COLOR schlichte Ausgabe
💡 Nicht weiter? Öffne eine Session im Topic system › help und frag in deinen eigenen Worten: Claude liest diese Doku auf deinem Server und antwortet.✏️ Diese Seite verbessern