⌨️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 |