Zum Inhalt springen

Handbuch

Einstellungen vollständig erklärt

Globale und projektspezifische Einstellungen, Standardwerte und Freigaben für Modelle, Werkzeuge, Hooks und MCP verstehen.

Geprüfter CLI-Quellstand: 2.4.0 · Redaktionell aktualisiert:

Dateien und Ladeablauf

Globale Benutzerkonfiguration: ~/.lurus/settings.json. Projektkonfiguration: <cwd>/.lurus/settings.json. Verlassen Sie sich nicht auf eine zusätzliche settings.local.json-Ebene. Verwenden Sie JSON ohne Kommentare. Erhalten Sie bei Änderungen bestehende Werte und überschreiben Sie vorhandene Dateien nicht ungeprüft mit Beispielen.

Die CLI lädt zunächst Standardwerte, dann globale Dateien und Projektdateien. LURUS_API_URL und LURUS_MODEL können die entsprechenden Dateiwerte überschreiben. Ausführbare Einstellungen und Freigaben werden erst nach der erforderlichen Zustimmung aktiv.

Projektwerte haben nicht pauschal Vorrang. Anzeigeoptionen können direkt übernommen werden; Verbote werden ergänzt. Ausführung, Freigaben und Hilfsmodelle benötigen Zustimmung. Gleichnamige MCP-Serverobjekte ersetzen sich vollständig, statt feldweise zusammengeführt zu werden. /config zeigt die bereits geladene Konfiguration. Es unterstützt weder set, get noch reset und lädt manuelle Änderungen nicht neu. Starten Sie dafür eine neue CLI-Sitzung.

In den Tabellen bedeutet G global, P direkt Projektwert ohne zusätzliche Zustimmung, P Zustimmung Projektwert erst nach Zustimmung und P ignoriert beim normalen Laden nicht übernommener Projektwert. Modellabhängige Unterstützung und ausdrücklich gesetzte CLI-Optionen gelten zusätzlich.

Minimale Projektkonfiguration

.lurus/settings.json:

{
  "displayCost": true,
  "permissions": {
    "allow": [],
    "deny": [],
    "allowedCommands": ["git status"],
    "deniedCommands": ["git push"],
    "bashAutoApprove": false
  }
}

Die Kostenanzeige wird direkt übernommen. Freigaben benötigen Zustimmung; allowedCommands erlaubt nur den exakt angegebenen Bashbefehl, nicht beliebige strukturierte Prozessaufrufe. git push ergänzt die Sperren. Nach dem Neustart prüfen Sie die geladenen Werte und Freigabeangebote; das Beispiel erlaubt nicht sämtliche Gitbefehle.

Globales Gegenstück ~/.lurus/settings.json:

{
  "disableDangerousTrust": true,
  "indexing": false,
  "permissions": {
    "allow": [],
    "deny": [],
    "allowedCommands": ["git status"],
    "deniedCommands": ["git push"],
    "bashAutoApprove": false
  }
}

disableDangerousTrust und indexing werden hier global gesetzt. Beim normalen Laden der Projektkonfiguration werden dieselben Felder ignoriert; dort bieten sie deshalb keinen dauerhaften Schutz.

Alle Konfigurationsfelder

Die Typangaben string, number und boolean stehen für Text, Zahl und Wahrheitswert. Standardwerte gelten, soweit nicht anders angegeben, bei fehlender Einstellung.

Schlüssel / BeispielTyp, Standardwert und WirkungGeltungsbereich
apiUrl: "https://example.invalid"Text; standardmäßig der Lurus-Dienst. Verwenden Sie nur einen bewusst gewählten unterstützten Endpunkt. $VAR wird nicht garantiert ersetzt.G; P ignoriert; LURUS_API_URL hat Vorrang.
modelText aus /model; ohne Wert wird eine verfügbare Standardauswahl verwendet.G; P ignoriert; Umgebung und CLI können überschreiben.
temperature: 0.2Optionale Zahl. Ohne Wert gilt der Modellstandard. Das Schema nennt 0 bis 1; Unterstützung und Prüfung sind modellabhängig.G; P ignoriert.
promptCaching: trueWahrheitswert, standardmäßig true. Aktiviert Prompt-Caching, garantiert aber keinen Cachetreffer.G; P ignoriert.
permissions: {}Objekt mit den unten beschriebenen Regeln. Eine Dateiänderung allein erteilt keine Freigabe.G/P; Regeln werden gemäß Zustimmung zusammengeführt.
globalHooks: {}Eventzuordnung; ohne Wert keine eigenen Aktionen. Siehe Hooks.Nur G; P ignoriert.
projectHooks: {}Eventzuordnung; ohne Wert keine eigenen Aktionen.Nur P, nach Zustimmung; G ignoriert.
mcpServers: {}Objekt mit Servernamen und Konfigurationen; ohne Wert keine eigenen Server.G/P; gleichnamige Objekte werden vollständig ersetzt; Projektstart nach Zustimmung.
modelAliases: {}Objekt mit Aliasnamen und Modellwerten; ohne Wert keine eigenen Aliase.G/P nach Zustimmung; Zusammenführung nach Namen.
disableDangerousTrust: truetrue sperrt /trust on und den gefährlichen Startmodus. Ohne Wert besteht diese Sperre nicht.G; P ignoriert.
announcements: []Textliste; ohne Einträge keine Anzeige. Verwaltete Ankündigungen können ergänzt werden.G; P ignoriert.
notifications: trueNur true aktiviert Benachrichtigungen bei Dialogen und abgeschlossenen Runden; abhängig von der Plattform.G/P direkt.
thinkingMode: "on"on, adaptive oder off; bei fehlendem oder ungültigem Wert on. Bei dauerhaft denkenden Modellen nicht abschaltbar.G; P ignoriert; CLI und aktuelle Sitzung können überschreiben.
effort: "high"minimal, low, medium, high, xhigh oder max; ohne gültigen Wert high. Unterstützung ist modellabhängig.G; P ignoriert; CLI kann überschreiben.
maxMode: falseNur true aktiviert das vollständige Modellfenster statt der normalen Kontextgrenze.G; P ignoriert; CLI kann überschreiben.
truncateToolOutput: 25000Optionale Zeichengrenze. Werkzeugabhängige Standardwerte und dynamische Grenzen stehen unten.G/P direkt.
autoLint: trueWahrheitswert oder Befehlstext; ohne Wert oder bei false aus. true führt npm run lint im Prüfworkflow nach Änderungen aus.G/P nach Zustimmung; Projektwert ersetzt globalen Wert.
autoTest: "npm run test:unit"Wahrheitswert oder Befehlstext; ohne Wert oder bei false aus. true verwendet npm test.G/P nach Zustimmung; Projektwert ersetzt globalen Wert.
autoTypeCheck: trueWahrheitswert oder Befehlstext; ohne Wert oder bei false aus. true verwendet npx tsc --noEmit --pretty.G/P nach Zustimmung; Projektwert ersetzt globalen Wert.
compactionModelOptionale öffentliche Modellauswahl für Komprimierung und Memory. Ohne gültigen Wert folgt das Hilfsmodell, sonst eine verfügbare Standardauswahl oder das aktuelle Modell.G/P nach Zustimmung; Slashänderung global, Neustart erforderlich.
utilityModelOptionale öffentliche Modellauswahl für Zusammenfassungen, Hintergrundanalysen und Sitzungstitel. Ohne gültigen Wert gilt eine verfügbare Standardauswahl oder das aktuelle Modell.G/P nach Zustimmung; Änderung global, Neustart erforderlich.
costLimit: 5Zahl in EUR pro Sitzung. Ohne Wert oder bei 0 kein Stopp. Bei positiven Kosten stoppt die Sitzung nach Erreichen des Limits; kein harter Kostendeckel. Orchestrierung hat ein separates Budget.G; P ignoriert.
contextBudget: 15000Tokenbudget, standardmäßig 15.000, davon 30 % für Memory. Begrenzt den Memoryblock, nicht Pflichtanweisungen oder das gesamte Modellfenster.G; P ignoriert.
costSavingMode: falseKostenoptimierung ist aktiv, sofern nicht ausdrücklich false gesetzt.G; P ignoriert.
displayCost: trueStandardmäßig aus; nur true aktiviert die Anzeige. Kostenerfassung läuft unabhängig davon.G/P direkt.
indexing: falseIndexierung ist standardmäßig aktiv, sofern nicht deaktiviert. Eine Kontosperre kann die Aktivierung verhindern.G; P beim normalen Laden ignoriert.
tddGuard: "warn"off, warn oder strict; standardmäßig off. Der Schutz ist unabhängig vom TDD-Prompt.G; P ignoriert.
hooks: {}Ältere unterstützte Eventeinbettung: global als globalHooks, im Projekt als projectHooks. Separate Hookdateien werden zusätzlich geladen.G/P gemäß Quelle.

Verwenden Sie für optionale Modellfelder eine tatsächliche Auswahl aus /model.

Outputkürzung und Indexneustart

Ohne truncateToolOutput gelten je nach Werkzeug unterschiedliche Zeichenlimits: 40.000 für Lesen, Shellausgabe und Webinhalte, 25.000 für Text- und semantische Suche, 10.000 für Datei- und Verzeichnislisten, 80.000 für Unteragentantworten und 8.000 für andere Ausgaben. Gewöhnliche Toolausgaben werden außerdem dynamisch auf 5.000 bis 80.000 Zeichen begrenzt; Unteragentantworten und Plandokumente sind von dieser Reduktion ausgenommen.

/indexing on|off ändert die aktuelle Einstellung und speichert einen Projektwert. Dieser Wert wird beim normalen Neustart jedoch nicht übernommen. Für einen dauerhaften Opt-out genügt der Slashbefehl nicht. Setzen Sie global "indexing": false und prüfen Sie die Kontoeinstellung. /indexing clear|delete löscht den Index, nicht die Einstellung.

Permissions-Unterfelder

FeldTyp / BeispielWirkung
allowTextliste, ["Read"]Toolregel Tool oder Tool(pattern) mit *, ** und ?. Globale und Projektregeln werden nach Zustimmung ergänzt.
denyTextliste, ["Delete"]Globale Sperren wirken sofort, Projektregeln ergänzen sie. Freigaben überstimmen keine besonderen Schutzprüfungen.
allowedCommandsTextliste, ["git status"]Muss den vollständigen Bashbefehl nach Entfernen umgebender Leerzeichen exakt treffen. Keine Wildcards oder Präfixfreigaben; Zustimmung erforderlich.
deniedCommandsTextliste, ["git push"]Trifft exakt oder als Präfix mit folgendem Leerzeichen, etwa git push origin main. Sperren werden ergänzt.
bashAutoApproveWahrheitswert, false empfohlen.Steuert die Freigabe sicher eingestufter Bashbefehle, nicht pauschal strukturierter Prozessaufrufe.

allowedCommands:["git"] erlaubt nicht beliebige Gitbefehle. git status --short ist nicht der String git status. Prüfungen zu Skripten, Arbeitsverzeichnis, Secrets und gefährlichen Aktionen gelten weiterhin. Details: Berechtigungen.

Verlassen Sie sich bei bashAutoApprove nicht auf einen universellen Standardwert. Die aktive Wirkung hängt von den geladenen Regeln und der erteilten Zustimmung ab.

Wichtig: Ein Projektwert false ist kein dauerhaftes Veto gegen einen genehmigten globalen Wert true. Setzen Sie zum Schutz bashAutoApprove bewusst global auf false und prüfen oder widerrufen Sie bestehende Freigaben.

MCP-Unterfelder

Alle Felder unter mcpServers.<name>, vollständiger MCP-Ablauf:

FeldTyp, Standardwert und Grenze
typestdio, http oder sse. Ohne Wert gilt bei URL http, bei Befehl stdio.
commandText, für stdio erforderlich. Nicht gemeinsam mit url verwenden.
argsTextliste, nur stdio. Ohne Einträge keine Argumente.
env, env.<NAME>Objekt mit Textwerten, nur stdio. Ergänzt oder überschreibt die zugelassene Kindprozessumgebung. Keine Secrets einchecken.
cwdOptionaler auflösbarer Arbeitsverzeichnispfad, nur stdio.
urlText mit HTTP-/HTTPS-URL, für Remote-Server erforderlich. Zielprüfungen sind kein umfassender SSRF-Schutz.
headers, headers.<NAME>Objekt mit Textwerten, nur remote. Headerprüfung bleibt aktiv; für Secrets die CLI-Verwaltung verwenden.
headerRefs, headerRefs.<NAME>Geschützte, von der CLI verwaltete Referenzen für die jeweilige Quelle, den Server und Projektpfad. Nicht manuell erzeugen oder bearbeiten.
timeoutPositive endliche Zahl in Millisekunden, standardmäßig 15.000. Das CLI-Flag benötigt eine positive Ganzzahl.
trustNur globales true erteilt Toolvertrauen. Projektserver bleiben auch mit true nicht vertrauenswürdig.
includeToolsTextliste mit exakten unqualifizierten Toolnamen; leer bedeutet keine Einschränkung.
excludeToolsExakte Toolnamen, keine Globs. Hat Vorrang vor includeTools.

Ein Projektserver ersetzt ein gleichnamiges Globalobjekt komplett. Wird die Projektquelle abgelehnt, ist kein Start des globalen Ersatzservers garantiert.

Hook-Unterfelder

hooks|globalHooks|projectHooks.<Event>: Definition[]; Definition mit optionalem matcher:string und hooks:Action[]:

  • Commandaction: type:"command", command:string, optional timeout:number ms.
  • HTTPaction: type:"http", url:string, optional method:"POST"|"PUT"|"PATCH", headers:Record<string,string>, timeout:number.
  • Das Timeout beträgt standardmäßig 30.000 ms, die HTTP-Methode ist POST. Eine separate hooks.json enthält direkt die Eventzuordnung.

Hooks beschreibt vollständige Beispiele, unterstützte Events, Headerverbote, Matcher und die Grenzen bei Fehlern.

Fortgeschrittene Projektszenarien

.lurus/settings.json für vorhandene geprüfte npm-Skripte:

{
  "autoLint": true,
  "autoTest": "npm run test:unit",
  "displayCost": true
}

Nach Zustimmung zum Projekt werden die vorhandenen Skripte lint und test:unit im Prüfworkflow verwendet. Prüfen Sie npm-Lifecycle, Arbeitsverzeichnis und Skriptinhalt; Änderungen können eine neue Freigabe erfordern. Erstellen Sie keine Umgehungsskripte für verweigerte Operationen.

Ermitteln Sie für modelAliases zuerst die öffentliche Auswahl mit /model. Die Objektform ist {"my-review":"<selected-public-model>"}; ersetzen Sie den Platzhalter vor Verwendung. Projektaliase benötigen Zustimmung und ergänzen globale Aliase nach Namen. Der Projektwert für model selbst wird dagegen nicht übernommen.

Verwaltete Werte und Altlasten

Verwalten Sie Skillaktivierung mit /skills activate|deactivate und Agentfreigaben mit /agents trust|untrust, statt gespeicherte Verwaltungsdaten von Hand zu ändern. Eingebaute Skills sind standardmäßig aktiv.

  • Wählen Sie den Interaktionsmodus über ein CLI-Flag oder /mode, nicht durch manuelles Setzen von mode in der Datei.
  • permissionMode ist eine Prozessoption, kein unterstützter Settingsschlüssel.
  • disableBypassPermissions ist ein älterer globaler Alias für disableDangerousTrust; verwenden Sie in neuen Konfigurationen letzteres.
  • costWarningThreshold wird ignoriert; verwenden Sie costLimit.
  • lurus.config.json, .lurusrc, allowedPaths, blockedPaths, requireConfirmation, beforeWrite und afterCommit sind keine aktuelle CLI-Konfiguration.

Schema und öffentliche Umgebung

Das lokale Settingsschema beschreibt nicht alle unterstützten Optionen und Standardwerte vollständig. Verlassen Sie sich nicht allein auf dessen Validierung oder eine vermeintlich öffentliche $schema-URL. Nutzen Sie die hier beschriebenen Feldtypen und Geltungsbereiche.

VariableWirkung und Grenze
LURUS_API_KEYEin nichtleerer Wert nach Entfernen umgebender Leerzeichen hat Vorrang vor gespeicherter Anmeldung. Ungültige Werte führen zu einem Fehler, nicht zum Rückgriff. Secretmanager verwenden; nie einchecken.
LURUS_API_URL, LURUS_MODELÜberschreiben die entsprechenden Dateiwerte.
LURUS_AUTO_CONSENT1, true, yes oder on aktiviert nach Entfernen umgebender Leerzeichen und unabhängig von Großschreibung weitreichende Freigaben für Einstellungen, Hooks und MCP. Nur für bewusst vertrauenswürdige Automation, nicht als Standard.
LURUS_BASH_PASS_ENV, LURUS_HOOK_PASS_ENV, LURUS_MCP_PASS_ENVKommaseparierte Variablennamen, die zusätzlich an Kindprozesse weitergereicht werden. Jeder freigegebene Wert ist dort vollständig sichtbar.
HTTP_PROXY, HTTPS_PROXY, NO_PROXY und KleinformenKleinschreibung hat Vorrang. NO_PROXY akzeptiert Kommas oder Leerraum als Trenner; Loopback wird ergänzt.
NODE_EXTRA_CA_CERTSBindet vertrauenswürdige Unternehmenszertifikate ein. TLS-Prüfung nicht deaktivieren.
EDITOR, VISUALAusführbarer Editor für Prompts und Memory, kein beliebiger Shellcode.
LURUS_GIT_CLONE_TIMEOUT_MSTimeout beim Klonen für Installationen: standardmäßig 90.000 ms, zulässig sind 5.000 bis 600.000 ms.

Fehlersuche und Automation erklären die sichere Verwendung.

Eine bewusste Entscheidung

Vor dem ersten Prompt.

Interaktive Demo
Lurus Codeprivacy-demo · beispielhafter Workspace

Demo-Sitzung bereit. Modellwahl und Datenweg sind getrennte Entscheidungen.

Inszeniertes Beispiel. Keine echte Anmeldung, Sicherheitsprüfung oder Codeübertragung.

Bildvorschau