Autohand-Konfigurationsreferenz

June 23, 2026 · View on GitHub

Vollständige Referenz für alle Konfigurationsoptionen in ~/.autohand/config.json (oder .toml/.yaml/.yml).

Tipp: Die meisten unten aufgeführten Einstellungen können interaktiv über den Befehl /settings geändert werden, anstatt die Datei manuell zu bearbeiten.

Lokalisierte Referenzen:

Inhaltsverzeichnis


Speicherort der Konfigurationsdatei

Autohand sucht die Konfiguration in dieser Reihenfolge:

  1. Umgebungsvariable AUTOHAND_CONFIG (benutzerdefinierter Pfad)
  2. ~/.autohand/config.toml
  3. ~/.autohand/config.yaml
  4. ~/.autohand/config.yml
  5. ~/.autohand/config.json (Standard)

Sie können auch das Basisverzeichnis überschreiben:

export AUTOHAND_HOME=/custom/path  # Ändert ~/.autohand zu /custom/path

Umgebungsvariablen

VariableBeschreibungBeispiel
AUTOHAND_HOMEBasisverzeichnis für alle Autohand-Daten/custom/path
AUTOHAND_CONFIGBenutzerdefinierter Konfigurationsdateipfad/path/to/config.toml
AUTOHAND_API_URLAPI-Endpunkt (überschreibt Konfiguration)https://api.autohand.ai
AUTOHAND_SECRETFirmen-/Team-Geheimschlüsselsk-xxx
AUTOHAND_PERMISSION_CALLBACK_URLURL für Berechtigungsrückruf (experimentell)http://localhost:3000/callback
AUTOHAND_PERMISSION_CALLBACK_TIMEOUTZeitlimit für Berechtigungsrückruf in ms5000
AUTOHAND_NON_INTERACTIVEIm nicht-interaktiven Modus ausführen1
AUTOHAND_YESAlle Eingabeaufforderungen automatisch bestätigen1
AUTOHAND_NO_BANNERStartbanner deaktivieren1
AUTOHAND_STREAM_TOOL_OUTPUTTool-Ausgabe in Echtzeit streamen1
AUTOHAND_DEBUGDebug-Protokollierung aktivieren1
AUTOHAND_THINKING_LEVELReasoning-Tiefenstufe festlegennormal
AUTOHAND_CLIENT_NAMEClient-/Editor-Kennung (gesetzt von ACP-Erweiterungen)zed
AUTOHAND_CLIENT_VERSIONClient-Version (gesetzt von ACP-Erweiterungen)0.169.0
AUTOHAND_CODEUmgebungserkennungsflag (automatisch gesetzt)1
AUTOHAND_CODE_SIMPLEBare-Modus aktivieren, ohne --bare zu übergeben1

Thinking Level

Die Umgebungsvariable AUTOHAND_THINKING_LEVEL steuert die Reasoning-Tiefe, die das Modell verwendet:

WertBeschreibung
noneDirekte Antworten ohne sichtbares Reasoning
normalStandard-Reasoning-Tiefe (Standard)
extendedTiefes Reasoning für komplexe Aufgaben, zeigt detaillierteren Gedankenprozess

Dies wird typischerweise durch ACP-Client-Erweiterungen (wie Zed) über das Konfigurations-Dropdown gesetzt.

# Beispiel: Erweitertes Thinking für komplexe Aufgaben verwenden
AUTOHAND_THINKING_LEVEL=extended autohand --prompt "refactor this module"

Bare-Modus

Der Bare-Modus startet Autohand nur mit explizit angefordertem Kontext und Runtime-Integrationen. Aktivieren Sie ihn mit einer der folgenden Optionen:

autohand --bare
AUTOHAND_CODE_SIMPLE=1 autohand

Wenn --bare übergeben wird, setzt Autohand außerdem AUTOHAND_CODE_SIMPLE=1 für den laufenden Prozess.

Der Bare-Modus deaktiviert automatischen Start und interaktive Integrationen:

  • Hooks und Hook-Benachrichtigungen
  • LSP-Start
  • Plugin-Synchronisierung, Plugin-Autoloading und Meta-Tool-Autoloading
  • Attribution, Telemetrie, Sitzungssynchronisierung, automatische Berichterstattung und Hintergrund-Pings
  • Automatischer Speicher-/Sitzungs-Bootstrap-Kontext
  • Hintergrund-Prompt-Vorschläge, Update-Prüfungen, Feature-Flag-Abrufe und Model-Metadata-Prefetches
  • Schlüsselbund- und Browser-OAuth-Authentifizierungs-Fallback
  • Automatische AGENTS.md- und Provider-Instruction-Erkennung
  • Alle Slash-Befehle, einschließlich eines bloßen / in der Eingabeaufforderung

Slash-förmige absolute Dateipfade wie /Users/alex/project/file.ts werden weiterhin als normaler Prompt-Text behandelt. Befehlsförmige Slash-Eingaben wie /help, /model oder /mcp geben Slash commands are disabled in bare mode. aus und werden nicht ausgeführt.

Die Authentifizierung im Bare-Modus erfolgt nur explizit. Autohand liest zuerst AUTOHAND_API_KEY, dann auth.apiKeyHelper, falls konfiguriert. Es werden keine Schlüsselbund-Anmeldeinformationen gelesen und kein OAuth-/Browser-Login gestartet. Drittanbieter-Provider verwenden weiterhin ihre providerspezifischen API-Schlüssel und Konfiguration.

Diese expliziten Eingaben bleiben im Bare-Modus verfügbar:

EingabeBeschreibung
--system-prompt <value>System-Prompt durch Inline-Text oder einen pfadähnlichen Wert ersetzen
--system-prompt-file <path>System-Prompt durch Dateiinhalte ersetzen
--append-system-prompt <value>Inline-Text oder einen pfadähnlichen Wert an den System-Prompt anhängen
--append-system-prompt-file <path>Dateiinhalte an den System-Prompt anhängen
--add-dir <path...>Explizite Verzeichnisse zum Arbeitsbereich hinzufügen
--mcp-config <path>Eine explizite MCP-Konfigurationsdatei laden
--settingsEinstellungen direkt über das CLI-Flag öffnen
--config <path>Eine explizite Autohand-Konfigurationsdatei verwenden
--agents <json|path>Explizite Inline-Agenten-JSON oder ein explizites Agentenverzeichnis laden
--plugin-dir <path>Ein explizites Plugin-/Meta-Tool-Verzeichnis laden

Anbieter-Einstellungen

provider

Aktiver LLM-Anbieter.

WertBeschreibung
"openrouter"OpenRouter API (Standard)
"ollama"Lokale Ollama-Instanz
"llamacpp"Lokaler llama.cpp-Server
"openai"OpenAI API direkt
"mlx"MLX auf Apple Silicon (lokal)
"llmgateway"LLM Gateway unified API
"deepseek"DeepSeek API
"zai"Z.ai GLM API
"sakana"Sakana.AI Fugu API
"bedrock"AWS Bedrock
"custom:<id>"Benutzerdefinierter OpenAI-kompatibler Provider aus customProviders

openrouter

OpenRouter-Anbieterkonfiguration.

{
  "openrouter": {
    "apiKey": "sk-or-v1-xxx",
    "baseUrl": "https://openrouter.ai/api/v1",
    "model": "your-modelcard-id-here",
    "contextWindow": 262144
  }
}
FeldTypErforderlichStandardBeschreibung
apiKeystringJa-Ihr OpenRouter API-Schlüssel
baseUrlstringNeinhttps://openrouter.ai/api/v1API-Endpunkt
modelstringJa-Modellkennung (z. B. your-modelcard-id-here)
contextWindownumberNeinAutoExaktes Modell-Kontextfenster. Autohand füllt dies aus OpenRouter, wenn bekannt.

zai

Z.ai-Anbieterkonfiguration.

{
  "zai": {
    "apiKey": "your-zai-api-key",
    "baseUrl": "https://api.z.ai/api/paas/v4",
    "model": "glm-5.2",
    "contextWindow": 1000000
  }
}
FeldTypErforderlichStandardBeschreibung
apiKeystringJa-Ihr Z.ai API-Schlüssel
baseUrlstringNeinhttps://api.z.ai/api/paas/v4API-Endpunkt
modelstringJaglm-5.2Modellkennung, zum Beispiel glm-5.2, glm-5.1, oder glm-4.5
contextWindownumberNeinAutoExaktes Modell-Kontextfenster. Autohand schließt 1M für GLM-5.2 und 200K für GLM-5.1.

sakana

Sakana.AI-Anbieterkonfiguration. Die API ist OpenAI-kompatibel und verwendet https://api.sakana.ai/v1 als Basis-URL.

{
  "sakana": {
    "apiKey": "your-sakana-api-key",
    "baseUrl": "https://api.sakana.ai/v1",
    "model": "fugu",
    "contextWindow": 1000000
  }
}
FeldTypErforderlichStandardBeschreibung
apiKeystringJa-Ihr Sakana API-Schlüssel
baseUrlstringNeinhttps://api.sakana.ai/v1API-Endpunkt
modelstringJafuguModellkennung, zum Beispiel fugu oder fugu-ultra
contextWindownumberNeinAutoExaktes Modell-Kontextfenster. Autohand schließt 1M für Fugu-Modelle.

customProviders

Benutzerdefinierte Anbieter ermöglichen es, einen OpenAI-kompatiblen Endpunkt ohne Codeänderung oder neuen gebündelten Anbieter hinzuzufügen. Fügen Sie den Anbieter unter customProviders hinzu und wählen Sie ihn mit provider: "custom:<id>". Derselbe Ablauf ist über /model mit New provider... verfügbar. Während der Einrichtung überprüft Autohand die Basis-URL, Authentifizierung und das ausgewählte Modell über den OpenAI-kompatiblen /models-Endpunkt, bevor der Anbieter gespeichert wird.

{
  "provider": "custom:acme",
  "customProviders": {
    "acme": {
      "id": "acme",
      "displayName": "Acme AI",
      "apiFormat": "openai-compatible",
      "baseUrl": "https://api.acme.example/v1",
      "apiKey": "acme-api-key",
      "apiKeyRequired": true,
      "model": "acme-code-1",
      "contextWindow": 256000,
      "reasoningEffort": "high",
      "models": [
        {
          "id": "acme-code-1",
          "label": "Acme Code 1",
          "contextWindow": 256000,
          "reasoningEffort": "high"
        }
      ]
    }
  }
}

Für lokale OpenAI-kompatible Server, die keine Authentifizierung erfordern, setzen Sie apiKeyRequired auf false und lassen Sie apiKey weg.

FeldTypErforderlichStandardBeschreibung
idstringJa-Stabile Anbieter-ID. Sie muss dem Objektschlüssel entsprechen und wird als custom:<id> ausgewählt.
displayNamestringJa-Name, der in /model und den Anbietereinstellungen angezeigt wird.
apiFormatstringJa-Muss openai-compatible sein.
baseUrlstringJa-Endpunkt-Wurzel wie https://api.example.com/v1. Autohand überprüft /models und ruft /chat/completions auf.
apiKeystringBedingt-Bearer-Token für gehostete Endpunkte. Erforderlich, wenn apiKeyRequired true ist.
apiKeyRequiredbooleanNeintrueAuf false setzen für lokale oder bereits authentifizierte Gateways.
modelstringJa-Aktive Modell-ID.
contextWindownumberNeinAutoExaktes Kontextfenster für Token-Budgetierung, Status, Telemetrie und Sync-Metadaten.
reasoningEffortstringNein-Optional none, low, medium, high, oder xhigh. Wird als reasoning_effort für benutzerdefinierte OpenAI-kompatible Anfragen gesendet.
modelsarrayNein-Optionale Modellauswahl-Einträge mit kontext- und reasoning-spezifischen Metadaten pro Modell.

ollama

Ollama-Anbieterkonfiguration.

{
  "ollama": {
    "baseUrl": "http://localhost:11434",
    "port": 11434,
    "model": "llama3.2"
  }
}
FeldTypErforderlichStandardBeschreibung
baseUrlstringNeinhttp://localhost:11434Ollama-Server-URL
portnumberNein11434Serverport (Alternative zu baseUrl)
modelstringJa-Modellname (z. B. llama3.2, codellama)

llamacpp

llama.cpp-Serverkonfiguration.

{
  "llamacpp": {
    "baseUrl": "http://localhost:8080",
    "port": 8080,
    "model": "default"
  }
}
FeldTypErforderlichStandardBeschreibung
baseUrlstringNeinhttp://localhost:8080llama.cpp-Server-URL
portnumberNein8080Serverport
modelstringJa-Modellkennung

openai

OpenAI-API-Konfiguration.

{
  "openai": {
    "authMode": "api-key",
    "apiKey": "sk-xxx",
    "baseUrl": "https://api.openai.com/v1",
    "model": "gpt-5.4"
  }
}

OpenAI kann auch Ihr ChatGPT-Abonnement über Autohands integrierten OpenAI-Anmeldeflow nutzen:

{
  "openai": {
    "authMode": "chatgpt",
    "baseUrl": "https://api.openai.com/v1",
    "contextWindow": 1050000,
    "model": "gpt-5.4",
    "chatgptAuth": {
      "accessToken": "...",
      "refreshToken": "...",
      "accountId": "..."
    }
  }
}
FeldTypErforderlichStandardBeschreibung
authModestringNeinapi-keyAuthentifizierungsmodus: api-key oder chatgpt
apiKeystringJa für api-key-Modus-OpenAI API-Schlüssel
baseUrlstringNeinhttps://api.openai.com/v1API-Endpunkt
modelstringJa-Modellname (z. B. gpt-5.4, gpt-5.4-mini)
contextWindownumberNeinAutoExaktes Modell-Kontextfenster. Setzen Sie dies, um veraltete lokale Annahmen zu überschreiben.
chatgptAuthobjectJa für chatgpt-Modus-Gespeicherte ChatGPT/Codex-Auth-Tokens und Account-ID

mlx

MLX-Anbieter für Apple Silicon Macs (lokale Inferenz).

{
  "mlx": {
    "baseUrl": "http://localhost:8080",
    "port": 8080,
    "model": "mlx-community/Llama-3.2-3B-Instruct-4bit"
  }
}
FeldTypErforderlichStandardBeschreibung
baseUrlstringNeinhttp://localhost:8080MLX-Server-URL
portnumberNein8080Serverport
modelstringJa-MLX-Modellkennung

llmgateway

LLM Gateway unified API-Konfiguration. Ermöglicht Zugriff auf mehrere LLM-Anbieter über eine einzelne API.

{
  "llmgateway": {
    "apiKey": "your-llmgateway-api-key",
    "baseUrl": "https://api.llmgateway.io/v1",
    "model": "gpt-4o"
  }
}
FeldTypErforderlichStandardBeschreibung
apiKeystringJa-LLM Gateway API-Schlüssel
baseUrlstringNeinhttps://api.llmgateway.io/v1API-Endpunkt
modelstringJa-Modellname (z. B. gpt-4o, claude-3-5-sonnet-20241022)

API-Schlüssel erhalten: Besuchen Sie llmgateway.io/dashboard, um ein Konto zu erstellen und Ihren API-Schlüssel zu erhalten.

Unterstützte Modelle: LLM Gateway unterstützt Modelle von mehreren Anbietern, darunter:

  • OpenAI: gpt-4o, gpt-4o-mini, gpt-4-turbo claude-3-5-haiku-20241022
  • Google: gemini-1.5-pro, gemini-1.5-flash

deepseek

DeepSeek-Anbieterkonfiguration. Die API ist OpenAI-kompatibel und verwendet https://api.deepseek.com als Basis-URL.

{
  "deepseek": {
    "apiKey": "your-deepseek-api-key",
    "baseUrl": "https://api.deepseek.com",
    "model": "deepseek-v4-flash"
  }
}
FeldTypErforderlichStandardBeschreibung
apiKeystringJa-DeepSeek API-Schlüssel
baseUrlstringNeinhttps://api.deepseek.comAPI-Endpunkt
modelstringJa-Modellname, zum Beispiel deepseek-v4-flash oder deepseek-v4-pro

bedrock

AWS Bedrock-Anbieterkonfiguration. converse ist der Standardmodus und verwendet die AWS SDK-Anmeldekette. OpenAI-kompatible Modi verwenden Bedrock API-Schlüssel und Bedrock OpenAI-kompatible Endpunkte.

{
  "bedrock": {
    "apiMode": "converse",
    "authMode": "aws-credentials",
    "profile": "enterprise-prod",
    "region": "us-east-1",
    "model": "anthropic.claude-3-5-sonnet-20241022-v2:0"
  }
}
provider: bedrock
bedrock:
  apiMode: openai-chat
  authMode: bedrock-api-key
  apiKey: bedrock-api-key
  region: us-east-1
  model: openai.gpt-oss-120b-1:0
provider = "bedrock"

[bedrock]
apiMode = "openai-responses"
authMode = "bedrock-api-key"
apiKey = "bedrock-api-key"
region = "us-west-2"
endpoint = "https://vpce-abc123.bedrock-runtime.us-west-2.vpce.amazonaws.com/openai/v1"
model = "arn:aws:bedrock:us-west-2:123456789012:inference-profile/us.anthropic.claude-3-5-sonnet-20241022-v2:0"
FeldTypErforderlichStandardBeschreibung
modelstringJa-Bedrock-Modell-ID, Inferenzprofil-ID oder ARN
regionstringJaAWS_REGION, dann AWS_DEFAULT_REGION, dann us-east-1 in setupAWS-Region
apiModestringNeinconverseconverse, openai-chat, oder openai-responses
authModestringNeinaws-credentials für converse, bedrock-api-key für OpenAI-kompatible ModiAuthentifizierungsmodus
profilestringNein-Optionaler AWS-Profil für Anmeldekette-Auth
endpointstringNeinAbgeleitet aus Modus und RegionBenutzerdefinierter/privater Bedrock-Endpunkt
apiKeystringJa für OpenAI-kompatible Modi-Bedrock API-Schlüssel. Verwenden Sie keine OpenAI API-Schlüssel.

Führen Sie aws configure sso aus oder setzen Sie AWS_PROFILE=enterprise-prod autohand für profilbasierte AWS-Auth. IAM-Rollen-, Container- und Instanzmetadaten-Anmeldeinformationen werden vom AWS SDK unterstützt. Aktivieren Sie den Modellzugriff in der AWS-Konsole, bevor Sie ein Modell verwenden.


Arbeitsbereichs-Einstellungen

{
  "workspace": {
    "defaultRoot": "/path/to/projects",
    "allowDangerousOps": false
  }
}
FeldTypStandardBeschreibung
defaultRootstringAktuelles VerzeichnisStandard-Arbeitsbereich, wenn keiner angegeben
allowDangerousOpsbooleanfalseZerstörerische Operationen ohne Bestätigung erlauben

Arbeitsbereichssicherheit

Autohand blockiert automatisch Operationen in gefährlichen Verzeichnissen, um versehentliche Schäden zu vermeiden:

  • Dateisystemwurzeln (/, C:\, D:\, usw.)
  • Home-Verzeichnisse (~, /Users/<user>, /home/<user>, C:\Users\<user>)
  • Systemverzeichnisse (/etc, /var, /System, C:\Windows, usw.)
  • WSL-Windows-Mounts (/mnt/c, /mnt/c/Users/<user>)

Diese Prüfung kann nicht umgangen werden. Wenn Sie versuchen, autohand in einem gefährlichen Verzeichnis auszuführen, erhalten Sie einen Fehler und müssen ein sicheres Projektverzeichnis angeben.

# Dies wird blockiert
cd ~ && autohand
# Error: Unsafe Workspace Directory

# Dies funktioniert
cd ~/projects/my-app && autohand

Siehe Workspace Safety für alle Details.


UI-Einstellungen

{
  "ui": {
    "theme": "dark",
    "customThemes": {
      "company": {
        "colors": {
          "accent": "#7c3aed",
          "success": "#22c55e"
        }
      }
    },
    "autoConfirm": false,
    "readFileCharLimit": 300,
    "silentToolOutput": false,
    "activityVerbs": ["Compiling", "Parsing", "Reviewing"],
    "activityVerbsEnabled": true,
    "activitySymbol": "✳",
    "statusLine": {
      "showProviderModel": true,
      "showContext": true,
      "showCommandHint": true,
      "showPullRequest": true,
      "showSessionLines": false,
      "showQueue": true,
      "showActiveStatus": true,
      "showActiveMetrics": true,
      "showCancelHint": true
    },
    "showCompletionNotification": true,
    "showThinking": true,
    "terminalBell": true,
    "checkForUpdates": true,
    "updateCheckInterval": 24
  }
}
FeldTypStandardBeschreibung
themestring"dark"Farbschema für Terminal-Ausgabe. Eingebaute Schemas umfassen dark, light, dracula, sandy, tui, github-dark, cappadocia, rio, und australia. Legacy-Werte turkey und brazil werden weiterhin als Aliase geladen.
customThemesobject{}Inline-Definitionen benutzerdefinierter Farbschemas, nach Themenname indiziert. Setzen Sie theme auf denselben Schlüssel, um eines zu verwenden.
autoConfirmbooleanfalseBestätigungsaufforderungen für sichere Operationen überspringen
readFileCharLimitnumber300Maximale Anzahl Zeichen, die aus read/find-Tool-Ausgaben angezeigt werden (der vollständige Inhalt wird weiterhin an das Modell gesendet)
silentToolOutputbooleanfalseTool-Ausgabeblöcke im Terminal ausblenden, während Tool-Ergebnisse für das Modell/die Sitzung erhalten bleiben
activityVerbsstring oder string[]eingebauter PoolBenutzerdefiniertes Aktivitätsverb oder Verb-Pool für den Arbeitsanzeiger, dargestellt als Verb...
activityVerbsEnabledbooleantrueRotierende Aktivitätsverben wie Compiling... anzeigen, während der Agent arbeitet
activitySymbolstring"✳"Symbol, das vor dem Aktivitätsverb in der Arbeitsanzeige angezeigt wird
statusLine.showProviderModelbooleantrueAktiven Anbieter und das Modell in der Composer-Statuszeile anzeigen
statusLine.showContextbooleantrueKontextprozentsatz in der Composer-Statuszeile anzeigen
statusLine.showCommandHintbooleantrueBefehls-, Mention-, Skill- und Terminal-Eingabe-Hinweise in der Composer-Statuszeile anzeigen
statusLine.showPullRequestbooleantrueZugehörige Pull-Request-Nummer anzeigen, oder PR #123, wenn keine PR zugeordnet ist
statusLine.showSessionLinesbooleanfalseWährend der aktuellen Sitzung hinzugefügte und entfernte Zeilen anzeigen
statusLine.showQueuebooleantrueAnzahl der eingereihten Anfragen in der Statuszeile anzeigen
statusLine.showActiveStatusbooleantrueAktiven Turn-Statustext anzeigen, während der Agent arbeitet
statusLine.showActiveMetricsbooleantrueVerstrichene Zeit und Token-Metriken anzeigen, während der Agent arbeitet
statusLine.showCancelHintbooleantrueDen Esc-Abbruch-Hinweis anzeigen, während der Agent arbeitet
completionReportEnabledbooleantrueDas Modell bitten, nach abgeschlossenen Action-Turns einen kurzen Abschlussbericht einzuschließen
showCompletionNotificationbooleantrueSystembenachrichtigung anzeigen, wenn eine Aufgabe abgeschlossen ist
showThinkingbooleantrueReasoning/Gedankenprozess des LLM anzeigen
terminalBellbooleantrueTerminalglocke läuten, wenn Aufgabe abgeschlossen ist (zeigt Badge auf Terminal-Tab/Dock)
checkForUpdatesbooleantrueBeim Start auf CLI-Updates prüfen
updateCheckIntervalnumber24Stunden zwischen Update-Prüfungen (verwendet zwischengespeichertes Ergebnis innerhalb des Intervalls)

Benutzerdefinierte Farbschemas können jedes semantische Farb-Token überschreiben. Fehlende Tokens werden vom Dark-Theme geerbt:

{
  "ui": {
    "theme": "company",
    "customThemes": {
      "company": {
        "vars": {
          "brand": "#7c3aed",
          "brandSoft": "#a78bfa"
        },
        "colors": {
          "accent": "brand",
          "borderAccent": "brandSoft",
          "mdHeading": "brand"
        }
      }
    }
  }
}

Hinweis: readFileCharLimit und silentToolOutput wirken sich nur auf die Terminal-Anzeige aus. Der vollständige Inhalt wird weiterhin an das Modell gesendet und in Tool-Nachrichten gespeichert.

Sie können stille Tool-Ausgabe ohne Bearbeitung der Datei umschalten:

autohand config set silent_tool_output true
autohand config set silent_tool_output false

Sie können rotierende Aktivitätsverben ohne Bearbeitung der Datei umschalten:

autohand config set verbs activity true
autohand config set verbs activity false

Passen Sie die Verben in der Konfigurationsdatei an, wenn Sie ein festes Statuslabel oder eine kleine projektspezifische Rotation wünschen:

{
  "ui": {
    "activityVerbs": "Compiling"
  }
}
{
  "ui": {
    "activityVerbs": ["Indexing", "Reviewing", "Testing"],
    "activitySymbol": ">"
  }
}

activityVerbs akzeptiert entweder einen einzelnen String oder ein nicht-leeres String-Array. Wenn activityVerbsEnabled false ist, fällt Autohand auf Working... zurück, anstatt durch benutzerdefinierte oder eingebaute Verben zu rotieren.

Sie können Abschlussberichte, einschließlich des strukturierten SITREP-Prompts, ohne Bearbeitung der Datei umschalten:

autohand config set sitrep true
autohand config set sitrep false

Terminalglocke

Wenn terminalBell aktiviert ist (Standard), läutet Autohand die Terminalglocke (\x07), wenn eine Aufgabe abgeschlossen ist. Dies löst Folgendes aus:

  • Badge auf Terminal-Tab - Zeigt einen visuellen Indikator, dass die Arbeit erledigt ist
  • Dock-Icon-Bounce - Zieht Ihre Aufmerksamkeit auf sich, wenn das Terminal im Hintergrund ist (macOS)
  • Ton - Wenn Terminal-Töne in Ihren Terminal-Einstellungen aktiviert sind

Terminalspezifische Einstellungen:

  • macOS Terminal: Einstellungen > Profile > Erweitert > Glocke (Visuell/Hörbar)
  • iTerm2: Einstellungen > Profile > Terminal > Benachrichtigungen
  • VS Code Terminal: Einstellungen > Terminal > Integrated: Enable Bell

So deaktivieren Sie es:

{
  "ui": {
    "terminalBell": false
  }
}

Ink Renderer

Autohand verwendet standardmäßig den Ink 7 + React 19 Renderer für interaktive Terminals. Das veraltete Konfigurationsfeld ui.useInkRenderer wird ignoriert, sodass alte Konfigurationsdateien den einfachen Terminal-Composer nicht erzwingen können. Ink bietet:

  • Flimmerfreie Ausgabe: Alle UI-Updates werden durch React-Reconciliation gebündelt
  • Arbeitswarteschlangenfunktion: Geben Sie Anweisungen ein, während der Agent arbeitet
  • Bessere Eingabeverarbeitung: Keine Konflikte zwischen Readline-Handlern
  • Komponierbare UI: Grundlage für zukünftige erweiterte UI-Funktionen

Notfall-Fallback für Terminal-Kompatibilität:

AUTOHAND_LEGACY_UI=1 autohand

Hinweis: Diese Funktion ist experimentell und kann Edge Cases haben. Die standardmäßige ora-basierte UI bleibt stabil und voll funktionsfähig.

Update-Prüfung

Wenn checkForUpdates aktiviert ist (Standard), prüft Autohand beim Start auf neue Releases:

> Autohand v0.6.8 (abc1234) ✓ Up to date

Wenn ein Update verfügbar ist:

> Autohand v0.6.7 (abc1234) ⬆ Update available: v0.6.8
  ↳ Run: curl -fsSL https://autohand.ai/install.sh | sh

So funktioniert es:

  • Ruft das neueste Release von der GitHub API ab
  • Speichert das Ergebnis zwischen in ~/.autohand/version-check.json
  • Prüft nur einmal pro updateCheckInterval Stunden (Standard: 24)
  • Nicht blockierend: Der Start läuft weiter, auch wenn die Prüfung fehlschlägt

So deaktivieren Sie es:

{
  "ui": {
    "checkForUpdates": false
  }
}

Oder über Umgebungsvariable:

export AUTOHAND_SKIP_UPDATE_CHECK=1

Agenten-Einstellungen

Steuern Sie das Agentenverhalten und die Iterationslimits.

{
  "agent": {
    "maxIterations": 100,
    "enableRequestQueue": true,
    "toolSelectionCache": true,
    "autoMemory": true,
    "idleLogoutEnabled": true,
    "debug": false
  }
}
FeldTypStandardBeschreibung
maxIterationsnumber100Maximale Tool-Iterationen pro Benutzeranfrage, bevor gestoppt wird
enableRequestQueuebooleantrueBenutzern erlauben, Nachrichten einzugeben und in die Warteschlange zu stellen, während der Agent arbeitet
toolSelectionCachebooleantrueLokale pro-Turn-Tool-Schema-Auswahl für gleichwertige Tool-Selection-Eingaben cachen
autoMemorybooleantrueLanglebige Benutzer-/Projekt-Memories nach erfolgreichen interaktiven Turns extrahieren und speichern
idleLogoutEnabledbooleantrueAuthentifizierte interaktive Sitzungen nach der Leerlaufzeit abmelden
debugbooleanfalseAusführliche Debug-Ausgabe aktivieren (protokolliert internen Agentenstatus nach stderr)

Tool-Schema-Auswahl

Autohand sendet nicht jedes vollständige Tool-Schema bei jeder LLM-Anfrage. Der System-Prompt enthält einen kompakten Tool-Fähigkeitenkatalog, und jede Anfrage legt nur eine kleine Menge konkreter Schemas offen, ausgewählt aus:

  • Kern-Erkennungstools wie tool_search, read_file, fff_find, und fff_grep
  • Absichtsübereinstimmende Tools für Bearbeitungs-, Verifizierungs-, Git-, Browser-, Web-, Abhängigkeits- oder Projekt-Tracking-Arbeit
  • Tools, die über kürzliche tool_search-Aufrufe angefordert wurden oder explizit namentlich erwähnt wurden

Dies vermeidet die großen upfront-Kontextkosten, alle Tool-Schemas zu senden, bevor die Benutzerabsicht bekannt ist. toolSelectionCache steuert nur den lokalen Selector-Cache für gleichwertige Turns; es führt kein Pre-User-LLM-Warmup durch und erzwingt kein großes gecachtes Prompt-Präfix.

So deaktivieren Sie den lokalen Selector-Cache:

{
  "agent": {
    "toolSelectionCache": false
  }
}

Um authentifizierte langlaufende Agentensitzungen am Leben zu erhalten, während sie auf Arbeit warten:

{
  "agent": {
    "idleLogoutEnabled": false
  }
}

Für einen einzelnen Prozess verwenden Sie autohand --no-idle-logout oder setzen Sie AUTOHAND_NO_IDLE_LOGOUT=1.

Debug-Modus

Aktivieren Sie den Debug-Modus, um ausführliche Protokolle des internen Agentenstatus zu sehen (React-Loop-Iterationen, Prompt-Aufbau, Sitzungsdetails). Die Ausgabe erfolgt nach stderr, um die normale Ausgabe nicht zu stören.

Drei Möglichkeiten, den Debug-Modus zu aktivieren (in Reihenfolge der Priorität):

  1. CLI-Flag: autohand -d oder autohand --debug
  2. Umgebungsvariable: AUTOHAND_DEBUG=1
  3. Konfigurationsdatei: Setzen Sie agent.debug: true

Anfragewarteschlange

Wenn enableRequestQueue aktiviert ist, können Sie weiterhin Nachrichten tippen, während der Agent eine vorherige Anfrage verarbeitet. Ihre Eingabe wird in die Warteschlange gestellt und automatisch verarbeitet, wenn die aktuelle Aufgabe abgeschlossen ist.

  • Tippen Sie Ihre Nachricht und drücken Sie Enter, um sie der Warteschlange hinzuzufügen
  • Die Statuszeile zeigt an, wie viele Anfragen in der Warteschlange sind
  • Anfragen werden in FIFO-Reihenfolge (First-In-First-Out) verarbeitet
  • Maximale Warteschlangengröße beträgt 10 Anfragen

Berechtigungseinstellungen

Feingranulare Steuerung über Tool-Berechtigungen.

{
  "permissions": {
    "mode": "interactive",
    "whitelist": [
      "run_command:npm *",
      "run_command:bun *",
      "run_command:git status"
    ],
    "blacklist": ["run_command:rm -rf *", "run_command:sudo *"],
    "rules": [
      {
        "tool": "run_command",
        "pattern": "npm test",
        "action": "allow"
      }
    ],
    "rememberSession": true
  }
}

mode

WertBeschreibung
"interactive"Bei gefährlichen Operationen um Zustimmung bitten (Standard)
"unrestricted"Keine Eingabeaufforderungen, alles erlauben
"restricted"Alle gefährlichen Operationen ablehnen

whitelist

Array von Tool-Mustern, die nie eine Genehmigung erfordern.

["run_command:npm *", "run_command:bun test"]

blacklist

Array von Tool-Mustern, die immer blockiert sind.

["run_command:rm -rf /", "run_command:sudo *"]

rules

Feingranulare Berechtigungsregeln.

| Feld | Typ | Beschreibung | | --------- | --------- | ------------------------------------------- | ---------- | -------------- | | tool | string | Tool-Name zum Abgleich | | pattern | string | Optionales Muster zum Abgleich mit Argumenten | | action | "allow" | "deny" | "prompt" | Auszuführende Aktion |

rememberSession

TypStandardBeschreibung
booleantrueGenehmigungsentscheidungen für die Sitzung merken

Lokale Projektberechtigungen

Jedes Projekt kann eigene Berechtigungseinstellungen haben, die die globale Konfiguration überschreiben. Diese werden in .autohand/settings.local.json im Projektstamm gespeichert.

Wenn Sie einen Dateioperation genehmigen (Bearbeiten, Schreiben, Löschen), wird sie automatisch in dieser Datei gespeichert, damit Sie für dieselbe Operation in diesem Projekt nicht erneut gefragt werden.

{
  "version": 1,
  "permissions": {
    "whitelist": [
      "apply_patch:src/components/Button.tsx",
      "write_file:package.json",
      "run_command:bun test"
    ]
  }
}

So funktioniert es:

  • Wenn Sie eine Operation genehmigen, wird sie in .autohand/settings.local.json gespeichert
  • Beim nächsten Mal wird dieselbe Operation automatisch genehmigt
  • Lokale Projekteinstellungen werden mit globalen Einstellungen zusammengeführt (lokale haben Vorrang)
  • Fügen Sie .autohand/settings.local.json zu .gitignore hinzu, um persönliche Einstellungen privat zu halten

Musterformat:

  • tool_name:path - Für Dateioperationen (z. B. apply_patch:src/file.ts)
  • tool_name:command args - Für Befehle (z. B. run_command:npm test)

Berechtigungen anzeigen

Sie können Ihre aktuellen Berechtigungseinstellungen auf zwei Arten anzeigen:

CLI-Flag (Nicht-interaktiv):

autohand --permissions

Dies zeigt an:

  • Aktuellen Berechtigungsmodus (interactive, unrestricted, restricted)
  • Arbeitsbereichs- und Konfigurationsdateipfade
  • Alle genehmigten Muster (Whitelist)
  • Alle abgelehnten Muster (Blacklist)
  • Zusammenfassende Statistiken

Interaktiver Befehl:

/permissions

Im interaktiven Modus bietet der Befehl /permissions dieselben Informationen sowie Optionen zum:

  • Entfernen von Einträgen aus der Whitelist
  • Entfernen von Einträgen aus der Blacklist
  • Löschen aller gespeicherten Berechtigungen

Patch-Modus

Der Patch-Modus ermöglicht es, einen teilbaren git-kompatiblen Patch zu generieren, ohne die Arbeitsbereichsdateien zu verändern. Dies ist nützlich für:

  • Code-Review vor dem Anwenden von Änderungen
  • Teilen KI-generierter Änderungen mit Teammitgliedern
  • Erstellen reproduzierbarer Änderungssätze
  • CI/CD-Pipelines, die Änderungen erfassen müssen, ohne sie anzuwenden

Verwendung

# Patch auf stdout ausgeben
autohand --prompt "add user authentication" --patch

# In Datei speichern
autohand --prompt "add user authentication" --patch --output auth.patch

# In Datei umleiten (Alternative)
autohand --prompt "refactor api handlers" --patch > refactor.patch

Verhalten

Wenn --patch angegeben ist:

  • Auto-Bestätigung: Alle Bestätigungen werden automatisch akzeptiert (--yes impliziert)
  • Keine Eingabeaufforderungen: Es werden keine Genehmigungsaufforderungen angezeigt (--unrestricted impliziert)
  • Nur Vorschau: Änderungen werden erfasst, aber NICHT auf die Festplatte geschrieben
  • Sicherheit erzwungen: Blacklist-Operationen (.env, SSH-Schlüssel, gefährliche Befehle) werden weiterhin blockiert

Patches anwenden

Empfänger können den Patch mit Standard-Git-Befehlen anwenden:

# Prüfen, was angewendet würde (Dry-Run)
git apply --check changes.patch

# Patch anwenden
git apply changes.patch

# Mit 3-Way-Merge anwenden (löst Konflikte besser)
git apply -3 changes.patch

# Anwenden und Änderungen stagen
git apply --index changes.patch

# Patch rückgängig machen
git apply -R changes.patch

Patch-Format

Der generierte Patch folgt dem git unified-diff-Format:

diff --git a/src/auth.ts b/src/auth.ts
new file mode 100644
--- /dev/null
+++ b/src/auth.ts
@@ -0,0 +1,15 @@
+export function authenticate(user: string, password: string) {
+  // Implementation here
+}

diff --git a/src/index.ts b/src/index.ts
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,5 +1,7 @@
 import express from 'express';
+import { authenticate } from './auth';

 const app = express();
+app.use(authenticate);

Exit-Codes

CodeBedeutung
0Erfolg, Patch generiert
1Fehler (fehlendes --prompt, Berechtigung verweigert, usw.)

Kombination mit anderen Flags

# Bestimmtes Modell verwenden
autohand --prompt "optimize queries" --patch --model gpt-4o

# Arbeitsbereich angeben
autohand --prompt "add tests" --patch --path ./my-project

# Benutzerdefinierte Konfiguration verwenden
autohand --prompt "refactor" --patch --config ~/.autohand/work.json

Team-Workflow-Beispiel

# Entwickler A: Patch für ein Feature generieren
autohand --prompt "implement user dashboard with charts" --patch --output dashboard.patch

# Über git teilen (PR nur mit der Patch-Datei erstellen)
git checkout -b patch/dashboard
git add dashboard.patch
git commit -m "Add dashboard feature patch"
git push

# Entwickler B: Reviewen und anwenden
git fetch origin patch/dashboard
git apply dashboard.patch
# Tests ausführen, Code reviewen, dann committen
git add -A && git commit -m "feat: add user dashboard with charts"

Netzwerkeinstellungen

{
  "network": {
    "maxRetries": 3,
    "timeout": 30000,
    "retryDelay": 1000
  }
}
FeldTypStandardMaxBeschreibung
maxRetriesnumber35Wiederholungsversuche für fehlgeschlagene API-Anfragen
timeoutnumber30000-Anfrage-Timeout in Millisekunden
retryDelaynumber1000-Verzögerung zwischen Wiederholungsversuchen in Millisekunden

Telemetrie-Einstellungen

Telemetrie ist standardmäßig deaktiviert (Opt-in). Aktivieren Sie sie, um Autohand zu verbessern.

{
  "telemetry": {
    "enabled": false,
    "apiBaseUrl": "https://api.autohand.ai",
    "batchSize": 20,
    "flushIntervalMs": 60000,
    "maxQueueSize": 500,
    "maxRetries": 3,
    "enableSessionSync": true,
    "companySecret": ""
  }
}
FeldTypStandardBeschreibung
enabledbooleanfalseTelemetrie aktivieren/deaktivieren (Opt-in)
apiBaseUrlstringhttps://api.autohand.aiTelemetrie-API-Endpunkt
batchSizenumber20Anzahl Ereignisse, die vor dem automatischen Flush gebündelt werden
flushIntervalMsnumber60000Flush-Intervall in Millisekunden (1 Minute)
maxQueueSizenumber500Maximale Warteschlangengröße, bevor alte Ereignisse verworfen werden
maxRetriesnumber3Wiederholungsversuche für fehlgeschlagene Telemetrieanfragen
enableSessionSyncbooleantrueSitzungen bei aktivierter Telemetrie mit der Cloud für Team-Features synchronisieren
companySecretstring""Firmengeheimnis für API-Authentifizierung

Provider-/Modell-Telemetrie umfasst die aktive Provider-ID, Modell-ID und verfügbare nicht-geheime Metadaten wie benutzerdefinierten Anzeigenamen, API-Format, Reasoning-Aufwand und Kontextfenster. API-Schlüssel und Bearer-Tokens werden niemals einbezogen.


Externe Agenten

Benutzerdefinierte Agentendefinitionen aus externen Verzeichnissen laden.

{
  "externalAgents": {
    "enabled": true,
    "paths": ["~/.autohand/agents", "/team/shared/agents"]
  }
}
FeldTypStandardBeschreibung
enabledbooleanfalseLaden externer Agenten aktivieren
pathsstring[][]Verzeichnisse, aus denen Agenten geladen werden

Skills-System

Skills sind Instruktionspakete, die dem KI-Agenten spezialisierte Anweisungen bereitstellen. Sie funktionieren wie On-Demand-AGENTS.md-Dateien, die für bestimmte Aufgaben aktiviert werden können.

Skill-Erkennungsorte

Skills werden an mehreren Orten erkannt, wobei spätere Quellen Vorrang haben:

OrtQuellen-IDBeschreibung
~/.codex/skills/**/SKILL.mdcodex-userBenutzer-level Codex skills (rekursiv)
~/.claude/skills/*/SKILL.mdclaude-userBenutzer-level Claude skills (eine Ebene)
~/.autohand/skills/**/SKILL.mdautohand-userBenutzer-level Autohand skills (rekursiv)
<project>/.claude/skills/*/SKILL.mdclaude-projectProjekt-level Claude skills (eine Ebene)
<project>/.autohand/skills/**/SKILL.mdautohand-projectProjekt-level Autohand skills (rekursiv)

Auto-Copy-Verhalten

Von Codex- oder Claude-Orten erkannte Skills werden automatisch in den entsprechenden Autohand-Ordner kopiert:

  • ~/.codex/skills/ und ~/.claude/skills/~/.autohand/skills/
  • <project>/.claude/skills/<project>/.autohand/skills/

Vorhandene Skills in Autohand-Ordnern werden niemals überschrieben.

SKILL.md-Format

Skills verwenden YAML-Frontmatter gefolgt von Markdown-Inhalt:

---
name: my-skill-name
description: Kurzbeschreibung des Skills
license: MIT
compatibility: Works with Node.js 18+
allowed-tools: read_file write_file run_command
metadata:
  author: your-name
  version: "1.0.0"
---

# My Skill

Detaillierte Anweisungen für den KI-Agenten...
FeldErforderlichMax. LängeBeschreibung
nameJa64 ZeichenKleinbuchstaben, alphanumerisch mit Bindestrichen
descriptionJa1024 ZeichenKurzbeschreibung des Skills
licenseNein-Lizenzkennung (z. B. MIT, Apache-2.0)
compatibilityNein500 ZeichenKompatibilitätshinweise
allowed-toolsNein-Leerzeichen-getrennte Liste erlaubter Tools
metadataNein-Zusätzliche Schlüssel-Wert-Metadaten

Eingabe-Präfixe

Autohand unterstützt spezielle Präfixe im Eingabe-Prompt:

PräfixBeschreibungBeispiel
/Slash-Befehle/help, /model, /quit, /exit
@Datei-Erwähnungen (Autovervollständigung)@src/index.ts
$Skill-Erwähnungen (Autovervollständigung)$frontend-design, $code-review
!Terminal-Befehle direkt ausführen! git status, ! ls -la

Skill-Erwähnungen ($):

  • Tippen Sie $ gefolgt von Zeichen, um verfügbare Skills mit Autovervollständigung zu sehen
  • Tab akzeptiert den obersten Vorschlag (z. B. $frontend-design)
  • Skills werden aus ~/.autohand/skills/ und <project>/.autohand/skills/ erkannt
  • Aktivierte Skills werden als spezielle Anweisungen für die aktuelle Sitzung an den Prompt angehängt
  • Das Vorschaufenster zeigt Skill-Metadaten (Name, Beschreibung, Aktivierungsstatus)

Shell-Befehle (!):

  • Befehle werden in Ihrem aktuellen Arbeitsverzeichnis ausgeführt
  • Ausgabe wird direkt im Terminal angezeigt
  • Geht nicht an das LLM
  • 30-Sekunden-Timeout
  • Kehrt nach Ausführung zum Prompt zurück

Slash-Befehle

/skills - Paketmanager

BefehlBeschreibung
/skillsAlle verfügbaren Skills auflisten
/skills use <name>Einen Skill für die aktuelle Sitzung aktivieren
/skills deactivate <name>Einen Skill deaktivieren
/skills info <name>Detaillierte Skill-Informationen anzeigen
/skills installCommunity-Registry durchsuchen und installieren
/skills install @<slug>Community-Skill per Slug installieren
/skills search <query>Community-Skills-Registry durchsuchen
/skills trendingTrendige Community-Skills anzeigen
/skills remove <slug>Community-Skill deinstallieren
/skills newInteraktiv einen neuen Skill erstellen
/skills feedback <slug> <1-5>Einen Community-Skill bewerten

/learn - LLM-gestützter Skill-Berater

BefehlBeschreibung
/learnProjekt analysieren und Skills empfehlen (schneller Scan)
/learn deepProjekt tiefer scannen (liest Quelldateien) für gezieltere Ergebnisse
/learn updateProjekt erneut analysieren und veraltete LLM-generierte Skills neu generieren

/learn verwendet einen zweiphasigen LLM-Ablauf:

  1. Phase 1 - Analysieren + Rangordnen + Auditieren: Scannt Ihre Projektstruktur, auditiert installierte Skills auf Redundanz/Konflikte und ordnet Community-Skills nach Relevanz (0-100).
  2. Phase 2 - Generieren (bedingt): Wenn kein Community-Skill über 60 Punkte erreicht, bietet es an, einen maßgeschneiderten Skill für Ihr Projekt zu generieren.

Generierte Skills enthalten Metadaten (agentskill-source: llm-generated, agentskill-project-hash), sodass /learn update erkennen kann, wenn sich Ihre Codebasis ändert und veraltete Skills neu generiert.

Auto-Skill-Generierung (--auto-skill)

Das --auto-skill CLI-Flag generiert Skills ohne den interaktiven Berater-Ablauf:

autohand --auto-skill

Dies wird:

  1. Ihre Projektstruktur analysieren (package.json, requirements.txt, usw.)
  2. Sprachen, Frameworks und Muster erkennen
  3. 3 relevante Skills mit LLM generieren
  4. Skills unter <project>/.autohand/skills/ speichern

Für eine gezieltere, interaktive Erfahrung verwenden Sie stattdessen /learn innerhalb einer Sitzung.

Erkannte Muster umfassen:

  • Sprachen: TypeScript, JavaScript, Python, Rust, Go
  • Frameworks: React, Next.js, Vue, Express, Flask, Django
  • Muster: CLI-Tools, Testing, Monorepo, Docker, CI/CD

API-Einstellungen

Backend-API-Konfiguration für Team-Features.

{
  "api": {
    "baseUrl": "https://api.autohand.ai",
    "companySecret": "sk-team-xxx"
  }
}
FeldTypStandardBeschreibung
baseUrlstringhttps://api.autohand.aiAPI-Endpunkt
companySecretstring-Team-/Firmengeheimnis für gemeinsame Features

Kann auch über Umgebungsvariablen gesetzt werden:

  • AUTOHAND_API_URLapi.baseUrl
  • AUTOHAND_SECRETapi.companySecret

Authentifizierungseinstellungen

Authentifizierungs- und Benutzersitzungskonfiguration.

{
  "auth": {
    "token": "your-auth-token",
    "user": {
      "id": "user-id",
      "email": "user@example.com",
      "name": "User Name",
      "avatar": "https://example.com/avatar.png"
    },
    "expiresAt": "2025-12-31T23:59:59Z"
  }
}
FeldTypStandardBeschreibung
tokenstring-Authentifizierungstoken für API-Zugriff
userobject-Authentifizierte Benutzerinformationen
user.idstring-Benutzer-ID
user.emailstring-E-Mail-Adresse des Benutzers
user.namestring-Anzeigename des Benutzers
user.avatarstring-Avatar-URL des Benutzers (optional)
expiresAtstring-Ablaufzeitstempel des Tokens (ISO-8601-Format)

Community-Skills-Einstellungen

Konfiguration für Community-Skills-Erkennung und -Verwaltung.

{
  "communitySkills": {
    "enabled": true,
    "showSuggestionsOnStartup": true,
    "autoBackup": true
  }
}
FeldTypStandardBeschreibung
enabledbooleantrueCommunity-Skills-Features aktivieren
showSuggestionsOnStartupbooleantrueSkill-Vorschläge beim Start anzeigen, wenn keine Vendor-Skills existieren
autoBackupbooleantrueErkannte Vendor-Skills automatisch an API sichern

Teilen-Einstellungen

Konfiguration für das Teilen von Sitzungen über den Befehl /share. Sitzungen werden unter autohand.link gehostet.

{
  "share": {
    "enabled": true
  }
}
FeldTypStandardBeschreibung
enabledbooleantrueDen /share-Befehl aktivieren/deaktivieren

YAML-Format

share:
  enabled: true

Sitzungsteilen deaktivieren

Wenn Sie das Teilen von Sitzungen aus Sicherheits- oder Datenschutzgründen deaktivieren möchten:

{
  "share": {
    "enabled": false
  }
}

Wenn deaktiviert, zeigt die Ausführung von /share an:

Session sharing is disabled.
To enable, set share.enabled: true in your config file.

Einstellungen-Synchronisierung

Autohand kann Ihre Konfiguration über Geräte hinweg für angemeldete Benutzer synchronisieren. Einstellungen werden sicher in Cloudflare R2 gespeichert und vor dem Upload verschlüsselt.

{
  "sync": {
    "enabled": true,
    "interval": 300000,
    "exclude": [],
    "includeTelemetry": false,
    "includeFeedback": false
  }
}
FeldTypStandardBeschreibung
enabledbooleantrue (angemeldet)Einstellungs-Synchronisierung aktivieren/deaktivieren
intervalnumber300000Synchronisierungsintervall in Millisekunden (Standard: 5 Minuten)
excludestring[][]Glob-Muster, die von der Synchronisierung ausgeschlossen werden
includeTelemetrybooleanfalseTelemetriedaten synchronisieren (erfordert Benutzereinwilligung)
includeFeedbackbooleanfalseFeedbackdaten synchronisieren (erfordert Benutzereinwilligung)

CLI-Flag

# Synchronisierung für diese Sitzung deaktivieren
autohand --sync-settings=false

# Synchronisierung aktivieren (Standard für angemeldete Benutzer)
autohand --sync-settings

Was wird synchronisiert

Standardmäßig werden diese Elemente für angemeldete Benutzer synchronisiert:

  • Konfiguration (config.json) - API-Schlüssel werden vor dem Upload verschlüsselt
  • Benutzerdefinierte Agenten (agents/)
  • Community-Skills (community-skills/)
  • Benutzer-Hooks (hooks/)
  • Memory (memory/)
  • Projektwissen (projects/)
  • Sitzungsverlauf (sessions/)
  • Geteilte Inhalte (share/)
  • Benutzerdefinierte Skills (skills/)

Was nicht synchronisiert wird (standardmäßig)

  • Geräte-ID (device-id) - Pro Gerät eindeutig
  • Fehlerprotokolle (error.log) - Nur lokal
  • Versions-Cache (version-*.json) - Lokale Cachedateien

Einwilligungsbasierte Synchronisierung

Diese Elemente erfordern eine explizite Opt-in in Ihrer Konfiguration:

  • Telemetriedaten - Setzen Sie sync.includeTelemetry: true zur Synchronisierung
  • Feedbackdaten - Setzen Sie sync.includeFeedback: true zur Synchronisierung
{
  "sync": {
    "enabled": true,
    "includeTelemetry": true,
    "includeFeedback": true
  }
}

Konfliktlösung

Bei Konflikten ( dieselbe Datei auf mehreren Geräten geändert) gewinnt die Cloud-Version. Dies stellt Konsistenz beim Anmelden auf neuen Geräten sicher.

Sicherheit

API-Schlüssel und andere sensible Daten in config.json werden mit Ihrem Authentifizierungstoken verschlüsselt, bevor sie hochgeladen werden. Sie können nur mit Ihren Anmeldedaten entschlüsselt werden.

Was verschlüsselt wird:

  • Felder namens apiKey
  • Felder, die mit Key, Token, Secret enden
  • Das Feld password

Wie es funktioniert

  1. Beim Start: Wenn Sie angemeldet sind, startet der Synchronisierungsdienst automatisch
  2. Alle 5 Minuten: Einstellungen werden mit dem Cloud-Speicher verglichen
  3. Cloud gewinnt: Remote-Änderungen werden zuerst heruntergeladen
  4. Lokale Uploads: Neue lokale Änderungen werden hochgeladen
  5. Beim Beenden: Synchronisierungsdienst wird ordnungsgemäß beendet

Dateien ausschließen

Sie können bestimmte Dateien oder Muster von der Synchronisierung ausschließen:

{
  "sync": {
    "enabled": true,
    "exclude": ["custom-local-config.json", "temp/*"]
  }
}

YAML-Format

sync:
  enabled: true
  interval: 300000
  exclude: []
  includeTelemetry: false
  includeFeedback: false

MCP-Einstellungen

Konfigurieren Sie MCP (Model Context Protocol)-Server, um Autohand mit externen Tools zu erweitern.

{
  "mcp": {
    "enabled": true,
    "servers": [
      {
        "name": "filesystem",
        "transport": "stdio",
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
        "env": {},
        "autoConnect": true
      },
      {
        "name": "context7",
        "transport": "http",
        "url": "https://mcp.context7.com/mcp",
        "headers": {
          "CONTEXT7_API_KEY": "ctx7sk-your-api-key"
        },
        "autoConnect": true
      }
    ]
  }
}

mcp.enabled

  • Typ: boolean
  • Standard: true
  • Beschreibung: Aktivieren oder deaktivieren Sie die gesamte MCP-Unterstützung. Wenn false, werden keine Server beim Start verbunden und MCP-Tools sind nicht verfügbar.

mcp.servers

  • Typ: McpServerConfigEntry[]
  • Standard: []
  • Beschreibung: Array von MCP-Serverkonfigurationen.

Server-Eintragsfelder

FeldTypErforderlichStandardBeschreibung
namestringJa-Eindeutige Serverkennung
transport"stdio" | "sse" | "http"Ja-Transporttyp
commandstringJa (stdio)-Befehl zum Starten des Serverprozesses
argsstring[]Nein[]Argumente für den Befehl
urlstringJa (sse/http)-Server-Endpunkt-URL
headersRecord<string, string>Nein{}Benutzerdefinierte HTTP-Header für http/sse-Transport (z. B. Auth-Tokens)
envRecord<string, string>Nein{}An den Server übergebene Umgebungsvariablen
autoConnectbooleanNeintrueOb beim Start automatisch verbunden werden soll

Server verbinden sich asynchron im Hintergrund während des Starts, ohne den Prompt zu blockieren. Verwenden Sie /mcp, um Server interaktiv zu verwalten, oder /mcp add, um die Community-Registry zu durchsuchen oder benutzerdefinierte Server hinzuzufügen.

Für die vollständige MCP-Dokumentation siehe docs/mcp.md.


Hooks-Einstellungen

Konfiguration für Lifecycle-Hooks, die Shell-Befehle bei Agenten-Ereignissen ausführen. Siehe Hooks-Dokumentation für alle Details.

{
  "hooks": {
    "enabled": true,
    "hooks": [
      {
        "event": "pre-tool",
        "command": "echo \"Running tool: $HOOK_TOOL\" >> ~/.autohand/hooks.log",
        "description": "Log all tool executions",
        "enabled": true
      },
      {
        "event": "file-modified",
        "command": "./scripts/on-file-change.sh",
        "description": "Custom file change handler",
        "filter": { "path": ["src/**/*.ts"] }
      },
      {
        "event": "post-response",
        "command": "curl -X POST https://api.example.com/webhook -d '{\"tokens\": $HOOK_TOKENS}'",
        "description": "Track token usage",
        "async": true
      }
    ]
  }
}

hooks

FeldTypStandardBeschreibung
enabledbooleantrueAlle Hooks global aktivieren/deaktivieren
hooksarray[]Array von Hook-Definitionen

Hook-Definition

FeldTypErforderlichStandardBeschreibung
eventstringJa-Ereignis, in das eingehakt wird
commandstringJa-Auszuführender Shell-Befehl
descriptionstringNein-Beschreibung für die Anzeige in /hooks
enabledbooleanNeintrueOb der Hook aktiv ist
timeoutnumberNein5000Timeout in Millisekunden
asyncbooleanNeinfalseOhne Blockierung ausführen
filterobjectNein-Nach Tool oder Pfad filtern

Hook-Ereignisse

EreignisWann ausgelöst
pre-toolBevor ein Tool ausgeführt wird
post-toolNachdem das Tool abgeschlossen ist
file-modifiedWenn eine Datei erstellt/bearbeitet/gelöscht wird
pre-promptBevor an das LLM gesendet wird
post-responseNachdem das LLM geantwortet hat
session-errorWenn ein Fehler auftritt

Umgebungsvariablen

Wenn Hooks ausgeführt werden, sind diese Umgebungsvariablen verfügbar:

VariableBeschreibung
HOOK_EVENTEreignisname
HOOK_WORKSPACEArbeitsbereichs-Stammverzeichnis
HOOK_TOOLTool-Name (Tool-Ereignisse)
HOOK_ARGSJSON-kodierte Tool-Argumente
HOOK_SUCCESStrue/false (post-tool)
HOOK_PATHDateipfad (file-modified)
HOOK_TOKENSVerwendete Tokens (post-response)

Chrome-Erweiterungs-Einstellungen

Steuern Sie die Autohand Chrome-Erweiterungs-Integration. Siehe die vollständige Anleitung unter Autohand in Chrome.

{
  "chrome": {
    "extensionId": "your-extension-id",
    "enabledByDefault": false,
    "browser": "auto",
    "userDataDir": "/path/to/chrome/user-data",
    "profileDirectory": "Default",
    "installUrl": "https://autohand.ai/chrome"
  }
}
SchlüsselTypStandardBeschreibung
extensionIdstringInstallierte Chrome-Erweiterungs-ID für direkte Übergabe
enabledByDefaultbooleanfalseBrowser-Bridge automatisch mit dem CLI starten
browserstring"auto"Bevorzugter Chromium-Browser: auto, chrome, chromium, brave, edge
userDataDirstringBrowser-Benutzerdatenverzeichnis, um das richtige Profil anzusprechen
profileDirectorystringBrowser-Profilverzeichnisname (z. B. "Default", "Profile 1")
installUrlstringFallback-URL, wenn die Erweiterungs-ID nicht konfiguriert ist

CLI-Flags

autohand --chrome          # Mit aktivierter Browser-Bridge starten
autohand --no-chrome       # Mit deaktivierter Browser-Bridge starten

Slash-Befehle

/chrome                    # Chrome-Integrationspanel öffnen
/chrome disconnect         # Browser-Bridge-Verbindung schließen

Vollständiges Beispiel

JSON-Format (~/.autohand/config.json)

{
  "provider": "openrouter",
  "openrouter": {
    "apiKey": "sk-or-v1-your-key-here",
    "baseUrl": "https://openrouter.ai/api/v1",
    "model": "your-modelcard-id-here"
  },
  "ollama": {
    "baseUrl": "http://localhost:11434",
    "model": "llama3.2"
  },
  "workspace": {
    "defaultRoot": "~/projects",
    "allowDangerousOps": false
  },
  "ui": {
    "theme": "dark",
    "autoConfirm": false,
    "showCompletionNotification": true,
    "showThinking": true,
    "terminalBell": true,
    "checkForUpdates": true,
    "updateCheckInterval": 24
  },
  "agent": {
    "maxIterations": 100,
    "enableRequestQueue": true,
    "toolSelectionCache": true,
    "idleLogoutEnabled": true,
    "debug": false
  },
  "permissions": {
    "mode": "interactive",
    "whitelist": ["run_command:npm *", "run_command:bun *"],
    "blacklist": ["run_command:rm -rf /"],
    "rememberSession": true
  },
  "network": {
    "maxRetries": 3,
    "timeout": 30000,
    "retryDelay": 1000
  },
  "telemetry": {
    "enabled": false,
    "apiBaseUrl": "https://api.autohand.ai",
    "batchSize": 20,
    "flushIntervalMs": 60000,
    "maxQueueSize": 500,
    "maxRetries": 3,
    "enableSessionSync": true
  },
  "externalAgents": {
    "enabled": false,
    "paths": []
  },
  "api": {
    "baseUrl": "https://api.autohand.ai"
  },
  "auth": {
    "token": "your-auth-token",
    "user": {
      "id": "user-id",
      "email": "user@example.com",
      "name": "User Name"
    }
  },
  "communitySkills": {
    "enabled": true,
    "showSuggestionsOnStartup": true,
    "autoBackup": true
  },
  "share": {
    "enabled": true
  },
  "sync": {
    "enabled": true,
    "interval": 300000,
    "includeTelemetry": false,
    "includeFeedback": false
  }
}

YAML-Format (~/.autohand/config.yaml)

provider: openrouter

openrouter:
  apiKey: sk-or-v1-your-key-here
  baseUrl: https://openrouter.ai/api/v1
  model: your-modelcard-id-here

ollama:
  baseUrl: http://localhost:11434
  model: llama3.2

workspace:
  defaultRoot: ~/projects
  allowDangerousOps: false

ui:
  theme: dark
  autoConfirm: false
  showCompletionNotification: true
  showThinking: true
  terminalBell: true
  checkForUpdates: true
  updateCheckInterval: 24

agent:
  maxIterations: 100
  enableRequestQueue: true
  toolSelectionCache: true
  idleLogoutEnabled: true
  debug: false

permissions:
  mode: interactive
  whitelist:
    - "run_command:npm *"
    - "run_command:bun *"
  blacklist:
    - "run_command:rm -rf /"
  rememberSession: true

network:
  maxRetries: 3
  timeout: 30000
  retryDelay: 1000

telemetry:
  enabled: false
  apiBaseUrl: https://api.autohand.ai
  batchSize: 20
  flushIntervalMs: 60000
  maxQueueSize: 500
  maxRetries: 3
  enableSessionSync: true

externalAgents:
  enabled: false
  paths: []

api:
  baseUrl: https://api.autohand.ai

auth:
  token: your-auth-token
  user:
    id: user-id
    email: user@example.com
    name: User Name

communitySkills:
  enabled: true
  showSuggestionsOnStartup: true
  autoBackup: true

share:
  enabled: true

sync:
  enabled: true
  interval: 300000
  includeTelemetry: false
  includeFeedback: false

TOML-Format (~/.autohand/config.toml)

provider = "openrouter"

[openrouter]
apiKey = "sk-or-v1-your-key-here"
baseUrl = "https://openrouter.ai/api/v1"
model = "your-modelcard-id-here"

[ollama]
baseUrl = "http://localhost:11434"
model = "llama3.2"

[workspace]
defaultRoot = "~/projects"
allowDangerousOps = false

[ui]
theme = "dark"
autoConfirm = false
showCompletionNotification = true
showThinking = true
terminalBell = true
checkForUpdates = true
updateCheckInterval = 24

[ui.customThemes.company.vars]
brand = "#7c3aed"
brandSoft = "#a78bfa"

[ui.customThemes.company.colors]
accent = "brand"
borderAccent = "brandSoft"
mdHeading = "brand"

[agent]
maxIterations = 100
enableRequestQueue = true
toolSelectionCache = true
idleLogoutEnabled = true
debug = false

[permissions]
mode = "interactive"
whitelist = ["run_command:npm *", "run_command:bun *"]
blacklist = ["run_command:rm -rf /"]
rememberSession = true

Verzeichnisstruktur

Autohand speichert Daten in ~/.autohand/ (oder $AUTOHAND_HOME):

~/.autohand/
├── config.json          # Hauptkonfiguration
├── config.toml          # Alternative TOML-Konfiguration
├── config.yaml          # Alternative YAML-Konfiguration
├── device-id            # Eindeutige Gerätekennung
├── error.log            # Fehlerprotokoll
├── feedback.log         # Feedback-Einreichungen
├── sessions/            # Sitzungsverlauf
├── projects/            # Projektwissensdatenbank
├── memory/              # Benutzer-level Memory
├── commands/            # Benutzerdefinierte Befehle
├── agents/              # Agentendefinitionen
├── tools/               # Benutzerdefinierte Meta-Tools
├── feedback/            # Feedback-Status
└── telemetry/           # Telemetriedaten
    ├── queue.json
    └── session-sync-queue.json

Projekt-level Verzeichnis (im Stammverzeichnis Ihres Arbeitsbereichs):

<project>/.autohand/
├── settings.local.json  # Lokale Projektberechtigungen (in gitignore)
├── memory/              # Projektspezifisches Memory
├── skills/              # Projektspezifische Skills
└── tools/               # Projektspezifische Meta-Tools

CLI-Flags (überschreiben Konfiguration)

Diese Flags überschreiben Konfigurationsdatei-Einstellungen:

Kern-Flags

FlagBeschreibung
-v, --versionAktuelle Version ausgeben
-p, --prompt [text]Einzelne Anweisung im Befehlsmodus ausführen
--path <path>Arbeitsbereichs-Stammverzeichnis überschreiben
--config <path>Benutzerdefinierte Konfigurationsdatei verwenden
--model <model>Modell überschreiben
--temperature <n>Sampling-Temperatur festlegen (0-1)
--thinking [level]Thinking/Reasoning-Tiefe festlegen (none, normal, extended)
-y, --yesEingabeaufforderungen automatisch bestätigen
--dry-runVorschau ohne Ausführung
-d, --debugAusführliche Debug-Ausgabe aktivieren
--bareMinimaler expliziter Modus; setzt außerdem AUTOHAND_CODE_SIMPLE=1 und deaktiviert Slash-Befehle

Berechtigungen & Sicherheit

FlagBeschreibung
--unrestrictedKeine Genehmigungsaufforderungen
--restrictedGefährliche Operationen ablehnen
--permissionsAktuelle Berechtigungseinstellungen anzeigen und beenden
--no-idle-logoutAuthentifizierten Idle-Logout für langlaufende Agentensitzungen deaktivieren
--yolo [pattern]Tool-Aufrufe, die dem Muster entsprechen, automatisch genehmigen (z. B. allow:read,write oder deny:delete)
--timeout <seconds>Timeout in Sekunden für den Auto-Genehmigungsmodus

Git & Worktree

FlagBeschreibung
--worktree [name]Sitzung in isoliertem Git-Worktree ausführen (optionaler Worktree-/Branch-Name)
--tmuxIn dedizierter tmux-Sitzung starten (impliziert --worktree; kann nicht mit --no-worktree verwendet werden)
--no-worktreeGit-Worktree-Isolierung im Auto-Modus deaktivieren
-c, --auto-commitÄnderungen nach Abschluss der Aufgaben automatisch committen
--patchGit-Patch generieren, ohne Änderungen anzuwenden
--output <file>Ausgabedatei für Patch (verwendet mit --patch)

Auto-Modus

FlagBeschreibung
--auto-mode [prompt]Interaktiven Auto-Modus aktivieren oder eigenständige Schleife mit Inline-Aufgabe starten
--max-iterations <n>Maximale Auto-Modus-Iterationen (Standard: 50)
--completion-promise <text>Abschlussmarker-Text (Standard: "DONE")
--checkpoint-interval <n>Bei jeder N-ten Iteration committen (Standard: 5)
--max-runtime <m>Maximale Laufzeit in Minuten (Standard: 120)
--max-cost <d>Maximale API-Kosten in Dollar (Standard: 10)
--interactive-on-completeNach Beenden des Auto-Modus direkt an den interaktiven Modus übergeben (nur TTY)

Skills & Lernen

FlagBeschreibung
--auto-skillSkills basierend auf Projektanalyse automatisch generieren (siehe auch /learn für interaktiven Berater)
--learn/learn-Skill-Berater nicht-interaktiv ausführen (empfohlene Skills analysieren und installieren)
--learn-updateProjekt erneut analysieren und veraltete LLM-generierte Skills nicht-interaktiv neu generieren
--skill-install [name]Community-Skill installieren (öffnet Browser, wenn kein Name angegeben)
--projectSkill auf Projektebene installieren (mit --skill-install)

Authentifizierung & Konto

FlagBeschreibung
--loginBei Ihrem Autohand-Konto anmelden
--logoutVon Ihrem Autohand-Konto abmelden
--sync-settingsEinstellungssynchronisierung aktivieren/deaktivieren (Standard: true für angemeldete Benutzer)

Einrichtung & Info

FlagBeschreibung
--setupEinrichtungsassistenten ausführen, um Autohand zu konfigurieren oder neu zu konfigurieren
--aboutInformationen über Autohand anzeigen (Version, Links, Beitragsinfo)
--feedbackFeedback an das Autohand-Team senden
--settingsAutohand-Einstellungen konfigurieren (gleich wie /settings im interaktiven Modus)

Arbeitsbereich & Verzeichnisse

FlagBeschreibung
--add-dir <path...>Zusätzliche Verzeichnisse zum Arbeitsbereich hinzufügen (kann mehrmals verwendet werden)

Ausführungsmodi

FlagBeschreibung
--mode <mode>Ausführungsmodus: interactive (Standard), rpc, oder acp
--acpKurzform für --mode acp (Agent Client Protocol über stdio)
--teammate-mode <mode>Team-Anzeigemodus: auto, in-process, oder tmux

UI & Sprache

FlagBeschreibung
--display-language <locale>Anzeigesprache festlegen (z. B. en, id, zh-cn, fr, de, ja)
--search-engine <provider>Web-Suchanbieter festlegen (google, brave, duckduckgo, parallel)
--cc, --context-compactKontextkomprimierung aktivieren (Standard: an)
--no-cc, --no-context-compactKontextkomprimierung deaktivieren

Chrome-Integration

FlagBeschreibung
--chromeChrome-Browser-Integration aktivieren (gleich wie /chrome)
--no-chromeChrome-Browser-Integration deaktivieren

System-Prompt

FlagBeschreibung
--sys-prompt <value>Gesamten System-Prompt ersetzen (Inline-String oder Dateipfad)
--append-sys-prompt <value>An System-Prompt anhängen (Inline-String oder Dateipfad)
--system-prompt <value>Gesamten System-Prompt ersetzen (Inline-String oder Dateipfad)
--system-prompt-file <path>Gesamten System-Prompt durch Dateiinhalte ersetzen
--append-system-prompt <value>An System-Prompt anhängen (Inline-String oder Dateipfad)
--append-system-prompt-file <path>Dateiinhalte an System-Prompt anhängen
--mcp-config <path>Explizite MCP-Konfigurationsdatei laden
--agents <json|path>Explizite Inline-Agenten-JSON oder ein explizites Agentenverzeichnis laden
--plugin-dir <path>Explizites Plugin-/Meta-Tool-Verzeichnis laden

Experiment-Schalter-Befehle

BefehlBeschreibung
autohand experiments listLokale und entfernte Feature-IDs, Quelle, Lebenszyklusstadium und Status auflisten
autohand experiments status <feature>Einen Feature-Schalter, Konfigurationspfad oder Remote-Metadaten und Status anzeigen
autohand experiments refreshEntfernte Feature-Flags von der Autohand API herunterladen
autohand experiments enable <feature>Einen konfigurationsgestützten Feature-Schalter aktivieren
autohand experiments disable <feature>Einen konfigurationsgestützten Feature-Schalter deaktivieren

Entfernte Feature-Flags werden von /v1/feature-flags/evaluate abgerufen, in ~/.autohand/feature-flags.json zwischengespeichert und nach Ablauf der von der API bereitgestellten TTL aktualisiert. Verwenden Sie features.environment, um eine entfernte Flag-Umgebung auszuwählen, und features.remoteOverrides für lokale Opt-outs von benutzerüberschreibbaren entfernten Flags.

usage_v2 ist ein experimenteller Feature-Schalter für das /usage-Dashboard und die erweiterte Registerkarte /status Usage. Aktivieren Sie ihn mit autohand experiments enable usage_v2.

token_usage_status ist ein experimenteller Feature-Schalter (Konfigurationspfad features.tokenUsageStatus, standardmäßig aus), der die Echtzeit-Token-Nutzung in der Arbeitsstatuszeile anzeigt — kumulative Tokens hoch () und runter () plus Kontextfenster-Auslastung, z. B. ↑15.7k ↓3.2k · context: 6.0% (15.7k/262.1k). Das Kontextfenster wird pro Modell über alle Anbieter hinweg aufgelöst. Aktivieren Sie ihn mit autohand experiments enable token_usage_status.


Slash-Befehle

Autohand bietet eine umfangreiche Reihe von Slash-Befehlen für die interaktive Nutzung. Tippen Sie / in der REPL, um Vorschläge zu sehen.

Sitzungsverwaltung

BefehlBeschreibung
/quitAktuelle Sitzung beenden
/exitAktuelle Sitzung beenden
/newNeue Konversation starten (mit Memory-Extraktion)
/clearKonversation mit automatischer Memory-Extraktion löschen
/sessionAktuelle Sitzungsdetails anzeigen
/sessionsVergangene Sitzungen auflisten
/resumeVorherige Sitzung fortsetzen
/historySitzungsverlauf mit Paginierung durchsuchen
/undoGit-Änderungen und letzten Turn rückgängig machen
/exportSitzung nach Markdown/JSON/HTML exportieren
/shareAktuelle Sitzung teilen
/statusSitzungsstatus anzeigen
/usageModell, Anbieter, Kontext und Nutzungslimits anzeigen

Modell & Anbieter

BefehlBeschreibung
/modelLLM-Modell wechseln oder konfigurieren
/ccKontext manuell komprimieren

Projekt-Setup

BefehlBeschreibung
/initAGENTS.md-Datei im aktuellen Verzeichnis erstellen
/setupEinrichtungsassistenten ausführen, um Autohand zu konfigurieren
/add-dirVerzeichnisse zum Arbeitsbereich hinzufügen

Agenten & Teams

BefehlBeschreibung
/agentsVerfügbare Sub-Agenten auflisten
/agents-newNeuen Agenten über Assistenten erstellen
/squadEigenständige Autohand Squad Runtime öffnen/verwalten
/teamTeam für parallele Arbeit verwalten
/tasksAufgaben im Team verwalten
/messageNachricht an Teammitglied senden

Skills

BefehlBeschreibung
/skillsSkills auflisten und verwalten
/skills-newNeuen Skill erstellen
/learnEmpfohlene Skills lernen und installieren

Memory & Einstellungen

BefehlBeschreibung
/memoryGespeicherte Memories anzeigen und verwalten
/settingsAutohand-Einstellungen konfigurieren
/statuslineComposer-Statuszeilenfelder konfigurieren
/experimentsExperimentelle Feature-Schalter umschalten
/syncEinstellungen über Geräte hinweg synchronisieren
/importSitzungen, Einstellungen, MCP, Memory, Skills und Hooks von unterstützten Agenten importieren

Berechtigungen & Hooks

BefehlBeschreibung
/permissionsTool-Berechtigungen verwalten
/hooksLifecycle-Hooks verwalten

Authentifizierung

BefehlBeschreibung
/loginMit Autohand API authentifizieren
/logoutVon Autohand-Konto abmelden

Tools & Dienstprogramme

BefehlBeschreibung
/searchDas Web durchsuchen
/formattersVerfügbare Code-Formatierer auflisten
/lintVerfügbare Code-Linter auflisten
/completionShell-Completion-Skripte generieren
/planImplementierungsplan erstellen
/reviewCode-Review durchführen
/pr-reviewEinen Pull Request reviewen

IDE-Integration

BefehlBeschreibung
/ideLaufende IDEs erkennen und verbinden

MCP (Model Context Protocol)

BefehlBeschreibung
/mcpInteraktiver MCP-Server-Manager

Automatisierung

BefehlBeschreibung
/automodeAutonomen Coding-Modus starten
/repeatWiederkehrende Aufgaben planen
/yoloYOLO-Modus umschalten (Tools automatisch genehmigen)

Chrome-Integration

BefehlBeschreibung
/chromeChrome-Browser-Integration aktivieren

UI & Anzeige

BefehlBeschreibung
/helpVerfügbare Slash-Befehle und Tipps anzeigen
/aboutInformationen über Autohand anzeigen
/themeFarbschema ändern
/languageAnzeigesprache ändern
/feedbackFeedback an das Autohand-Team senden

System-Prompt-Anpassung

Autohand ermöglicht es Ihnen, den vom KI-Agenten verwendeten System-Prompt anzupassen. Dies ist nützlich für spezialisierte Workflows, benutzerdefinierte Anweisungen oder die Integration mit anderen Systemen.

CLI-Flags

FlagBeschreibung
--sys-prompt <value>Gesamten System-Prompt ersetzen
--append-sys-prompt <value>Inhalt an den Standard-System-Prompt anhängen

Beide Flags akzeptieren entweder:

  • Inline-String: Direkter Textinhalt
  • Dateipfad: Pfad zu einer Datei mit dem Prompt (automatisch erkannt)

Dateipfad-Erkennung

Ein Wert wird als Dateipfad behandelt, wenn er:

  • Mit ./, ../, /, oder ~/ beginnt
  • Mit einem Windows-Laufwerksbuchstaben beginnt (z. B. C:\)
  • Mit .txt, .md, oder .prompt endet
  • Pfadtrennzeichen ohne Leerzeichen enthält

Andernfalls wird er als Inline-String behandelt.

--sys-prompt (vollständiger Ersatz)

Wenn angegeben, ersetzt dies vollständig den Standard-System-Prompt. Der Agent lädt NICHT:

  • Standard-Autohand-Anweisungen
  • AGENTS.md-Projektanweisungen
  • Benutzer-/Projekt-Memories
  • Aktive Skills
# Inline-String
autohand --sys-prompt "You are a Python expert. Be concise." --prompt "Write hello world"

# Aus Datei
autohand --sys-prompt ./custom-prompt.txt --prompt "Explain this code"

# Home-Verzeichnis
autohand --sys-prompt ~/.autohand/prompts/python-expert.md --prompt "Debug this function"

Beispiel für benutzerdefinierte Prompt-Datei (custom-prompt.txt):

You are a specialized Python debugging assistant.

Rules:
- Focus only on Python code
- Always explain the root cause
- Suggest fixes with code examples
- Be concise and direct

--append-sys-prompt (zum Standard hinzufügen)

Wenn angegeben, hängt dies Inhalt an den vollständigen Standard-System-Prompt an. Der Agent lädt weiterhin:

  • Standard-Autohand-Anweisungen
  • AGENTS.md-Projektanweisungen
  • Benutzer-/Projekt-Memories
  • Aktive Skills

Der angehängte Inhalt wird ganz am Ende hinzugefügt.

# Inline-String
autohand --append-sys-prompt "Always use TypeScript instead of JavaScript" --prompt "Create a function"

# Aus Datei
autohand --append-sys-prompt ./team-guidelines.md --prompt "Add error handling"

Beispiel für Anhangsdatei (team-guidelines.md):

## Team Guidelines

- Use 2-space indentation
- Prefer functional patterns
- Add JSDoc comments to public APIs
- Run tests before committing

Priorität

Wenn beide Flags angegeben sind:

  1. --sys-prompt hat volle Priorität
  2. --append-sys-prompt wird ignoriert
# --append-sys-prompt wird in diesem Fall ignoriert
autohand --sys-prompt "Custom only" --append-sys-prompt "This is ignored"

Anwendungsfälle

AnwendungsfallEmpfohlenes Flag
Benutzerdefinierte Agenten-Persona--sys-prompt
Minimale Anweisungen--sys-prompt
Team-Richtlinien hinzufügen--append-sys-prompt
Projekt-Konventionen hinzufügen--append-sys-prompt
Integration mit externen Systemen--sys-prompt
Spezialisiertes Debugging--sys-prompt

Fehlerbehandlung

SzenarioVerhalten
Leerer WertFehler
Datei nicht gefundenWird als Inline-String behandelt
Leere DateiFehler
Datei > 1MBFehler
Berechtigung verweigertFehler
VerzeichnispfadFehler

Beispiele

# Python-Expertenmodus
autohand --sys-prompt "You are a Python expert. Only write Python code." \
  --prompt "Create a web scraper"

# TypeScript-Durchsetzung
autohand --append-sys-prompt "Always use TypeScript, never JavaScript." \
  --prompt "Create a REST API"

# CI/CD-Integration (nicht-interaktiv)
autohand --sys-prompt ./ci-prompt.txt \
  --prompt "Fix the failing tests" \
  --unrestricted \
  --patch

# Benutzerdefinierter Team-Workflow
autohand --append-sys-prompt ~/.company/coding-standards.md \
  --prompt "Refactor this module"

Multi-Directory-Unterstützung

Autohand kann mit mehreren Verzeichnissen über den Hauptarbeitsbereich hinaus arbeiten. Dies ist nützlich, wenn Ihr Projekt Abhängigkeiten, gemeinsame Bibliotheken oder verwandte Projekte in verschiedenen Verzeichnissen hat.

CLI-Flag

Verwenden Sie --add-dir, um zusätzliche Verzeichnisse hinzuzufügen (kann mehrmals verwendet werden):

# Ein einzelnes zusätzliches Verzeichnis hinzufügen
autohand --add-dir /path/to/shared-lib

# Mehrere Verzeichnisse hinzufügen
autohand --add-dir /path/to/lib1 --add-dir /path/to/lib2

# Mit unrestricted-Modus (Schreibvorgänge in alle Verzeichnisse automatisch genehmigen)
autohand --add-dir /path/to/shared-lib --unrestricted

Interaktiver Befehl

Verwenden Sie /add-dir während einer interaktiven Sitzung:

/add-dir              # Aktuelle Verzeichnisse anzeigen
/add-dir /path/to/dir # Neues Verzeichnis hinzufügen

Sicherheitsbeschränkungen

Die folgenden Verzeichnisse können nicht hinzugefügt werden:

  • Home-Verzeichnis (~ oder $HOME)
  • Stammverzeichnis (/)
  • Systemverzeichnisse (/etc, /var, /usr, /bin, /sbin)
  • Windows-Systemverzeichnisse (C:\Windows, C:\Program Files)
  • Windows-Benutzerverzeichnisse (C:\Users\username)
  • WSL-Windows-Mounts (/mnt/c, /mnt/c/Windows)