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 / Beispiel | Typ, Standardwert und Wirkung | Geltungsbereich |
|---|---|---|
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. |
model | Text aus /model; ohne Wert wird eine verfügbare Standardauswahl verwendet. | G; P ignoriert; Umgebung und CLI können überschreiben. |
temperature: 0.2 | Optionale Zahl. Ohne Wert gilt der Modellstandard. Das Schema nennt 0 bis 1; Unterstützung und Prüfung sind modellabhängig. | G; P ignoriert. |
promptCaching: true | Wahrheitswert, 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: true | true 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: true | Nur 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: false | Nur true aktiviert das vollständige Modellfenster statt der normalen Kontextgrenze. | G; P ignoriert; CLI kann überschreiben. |
truncateToolOutput: 25000 | Optionale Zeichengrenze. Werkzeugabhängige Standardwerte und dynamische Grenzen stehen unten. | G/P direkt. |
autoLint: true | Wahrheitswert 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: true | Wahrheitswert oder Befehlstext; ohne Wert oder bei false aus. true verwendet npx tsc --noEmit --pretty. | G/P nach Zustimmung; Projektwert ersetzt globalen Wert. |
compactionModel | Optionale ö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. |
utilityModel | Optionale ö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: 5 | Zahl 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: 15000 | Tokenbudget, standardmäßig 15.000, davon 30 % für Memory. Begrenzt den Memoryblock, nicht Pflichtanweisungen oder das gesamte Modellfenster. | G; P ignoriert. |
costSavingMode: false | Kostenoptimierung ist aktiv, sofern nicht ausdrücklich false gesetzt. | G; P ignoriert. |
displayCost: true | Standardmäßig aus; nur true aktiviert die Anzeige. Kostenerfassung läuft unabhängig davon. | G/P direkt. |
indexing: false | Indexierung 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
| Feld | Typ / Beispiel | Wirkung |
|---|---|---|
allow | Textliste, ["Read"] | Toolregel Tool oder Tool(pattern) mit *, ** und ?. Globale und Projektregeln werden nach Zustimmung ergänzt. |
deny | Textliste, ["Delete"] | Globale Sperren wirken sofort, Projektregeln ergänzen sie. Freigaben überstimmen keine besonderen Schutzprüfungen. |
allowedCommands | Textliste, ["git status"] | Muss den vollständigen Bashbefehl nach Entfernen umgebender Leerzeichen exakt treffen. Keine Wildcards oder Präfixfreigaben; Zustimmung erforderlich. |
deniedCommands | Textliste, ["git push"] | Trifft exakt oder als Präfix mit folgendem Leerzeichen, etwa git push origin main. Sperren werden ergänzt. |
bashAutoApprove | Wahrheitswert, 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:
| Feld | Typ, Standardwert und Grenze |
|---|---|
type | stdio, http oder sse. Ohne Wert gilt bei URL http, bei Befehl stdio. |
command | Text, für stdio erforderlich. Nicht gemeinsam mit url verwenden. |
args | Textliste, 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. |
cwd | Optionaler auflösbarer Arbeitsverzeichnispfad, nur stdio. |
url | Text 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. |
timeout | Positive endliche Zahl in Millisekunden, standardmäßig 15.000. Das CLI-Flag benötigt eine positive Ganzzahl. |
trust | Nur globales true erteilt Toolvertrauen. Projektserver bleiben auch mit true nicht vertrauenswürdig. |
includeTools | Textliste mit exakten unqualifizierten Toolnamen; leer bedeutet keine Einschränkung. |
excludeTools | Exakte 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, optionaltimeout:numberms. - HTTPaction:
type:"http",url:string, optionalmethod:"POST"|"PUT"|"PATCH",headers:Record<string,string>,timeout:number. - Das Timeout beträgt standardmäßig 30.000 ms, die HTTP-Methode ist
POST. Eine separatehooks.jsonenthä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 vonmodein der Datei. permissionModeist eine Prozessoption, kein unterstützter Settingsschlüssel.disableBypassPermissionsist ein älterer globaler Alias fürdisableDangerousTrust; verwenden Sie in neuen Konfigurationen letzteres.costWarningThresholdwird ignoriert; verwenden SiecostLimit.lurus.config.json,.lurusrc,allowedPaths,blockedPaths,requireConfirmation,beforeWriteundafterCommitsind 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.
| Variable | Wirkung und Grenze |
|---|---|
LURUS_API_KEY | Ein 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_CONSENT | 1, 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_ENV | Kommaseparierte Variablennamen, die zusätzlich an Kindprozesse weitergereicht werden. Jeder freigegebene Wert ist dort vollständig sichtbar. |
HTTP_PROXY, HTTPS_PROXY, NO_PROXY und Kleinformen | Kleinschreibung hat Vorrang. NO_PROXY akzeptiert Kommas oder Leerraum als Trenner; Loopback wird ergänzt. |
NODE_EXTRA_CA_CERTS | Bindet vertrauenswürdige Unternehmenszertifikate ein. TLS-Prüfung nicht deaktivieren. |
EDITOR, VISUAL | Ausführbarer Editor für Prompts und Memory, kein beliebiger Shellcode. |
LURUS_GIT_CLONE_TIMEOUT_MS | Timeout 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.