Desktop-Konfiguration (Windows, Linux und macOS)
Memories liest eine UTF-8-TOML-Datei für lokale Einstellungen ohne Geheimnisse. CLI, Daemon,
Windows-Tray, macOS-Menüleisten-App und WebUI verwenden denselben Konfigurationslader.
Das Release-Archiv enthält memories.example.toml; die Quellvorlage befindet sich
in crates/cli/assets/memories.example.toml.
Erstellen und prüfen
memories config path
memories config init
memories config show
config init erstellt ein kommentiertes Beispiel am normalen Konfigurationsort.
Eine vorhandene Datei wird niemals überschrieben. config path gibt den genau ausgewählten
Pfad aus, und config show zeigt die wirksamen Werte an, ohne den
verschlüsselten Speicher zu öffnen oder zu erstellen. Für eine separate Entwicklungskonfiguration:
memories config init --output ./development.toml
memories --config ./development.toml config show
memories --config ./development.toml daemon
memories --config ./development.toml tray
Bei der Auswahl der Konfigurationsdatei gilt zuerst --config, dann MEMORIES_CONFIG, dann der
OS-Standard. Eine Datei im aktuellen Verzeichnis wird niemals implizit gefunden. Eine ausdrücklich
ausgewählte, fehlende Datei ist ein Fehler, außer wenn sie mit config init erstellt wird.
| Plattform | Standard-Konfigurationsdatei |
|---|---|
| Windows | %APPDATA%\memories\memories\config\config.toml |
| Linux | $XDG_CONFIG_HOME/memories/config.toml oder ~/.config/memories/config.toml |
| macOS | ~/Library/Application Support/app.memories.memories/config.toml |
Verwenden Sie memories config path als maßgeblichen Pfad für das aktuelle Konto.
Allein durch die Installation oder den Start eines Releases wird keine persönliche Konfiguration erstellt.
Einstellungen
# Windows example: storage_dir = "D:/MemoriesData"
storage_dir = "~/MemoriesData"
relay_url = "wss://relay.example.com"
[desktop]
port = 0
open_browser = true
| Schlüssel | Bedeutung | Überschreibung durch Umgebung | Überschreibung durch Befehlszeile |
|---|---|---|---|
storage_dir |
Verzeichnis mit dem verschlüsselten Speicher und lokalem Zustand | MEMORIES_HOME |
--home PATH |
relay_url |
Standard-Basis-URL des Relays für sync send und sync receive |
MEMORIES_RELAY_URL |
--relay URL |
desktop.port |
Loopback-Port des Dashboards; 0 wählt einen freien Port |
MEMORIES_WEBUI_PORT |
tray/webui --port PORT |
desktop.open_browser |
Beim Start von Tray/WebUI einen Browser öffnen | MEMORIES_OPEN_BROWSER (true/false oder 1/0) |
--open oder --no-open |
Für jede Einstellung haben Befehlszeilenoptionen Vorrang vor Umgebungsvariablen,
danach folgen der TOML-Wert und der eingebaute Standardwert. Ohne storage_dir bleibt das
bestehende OS-Datenverzeichnis unverändert. Es gibt kein eingebautes öffentliches Relay.
Das Öffnen des Browsers ist standardmäßig aktiviert, und der Dashboard-Port ist standardmäßig null.
Relative storage_dir-Pfade werden relativ zum Verzeichnis der Konfigurationsdatei aufgelöst, nicht zum
Arbeitsverzeichnis der Shell. Ein führendes ~/ wird zum Home-Verzeichnis des aktuellen Benutzers erweitert.
Verwenden Sie Schrägstriche oder literale TOML-Zeichenfolgen für Windows-Pfade. Eine Änderung dieser
Einstellung wählt einen anderen Speicher aus; vorhandene Daten werden weder migriert noch kopiert.
Starten Sie Daemon und Tray nach Änderungen an Speicher- oder Desktop-Einstellungen gemeinsam neu.
Das Tray reicht seine ausgewählte Konfiguration und den aufgelösten Speicher an untergeordnete Prüfprozesse
und Daemon-Starts weiter.
Die Sprache wird weiterhin durch die bestehenden Einstellungen --lang, MEMORIES_LANG und
memories language gesteuert. Eine gespeicherte Sprache wird aus dem konfigurierten Speicherverzeichnis
gelesen. Die WebUI besitzt außerdem eine eigene Sprachauswahl im Browser.
Relay-Beispiele
memories --config ./development.toml sync receive --room ROOM
memories --config ./development.toml sync send VAULT_ID RECIPIENT_DEVICE_PUBLIC_KEY --room ROOM
memories sync receive --relay wss://another-relay.example.com --room ROOM
Für entfernte Relays wird nur wss:// akzeptiert. ws:// ist für die Entwicklung über Loopback
zulässig (localhost, 127.0.0.1 oder ::1). URLs dürfen keinen Benutzernamen und kein Passwort enthalten.
Das bestehende Relay-Protokoll bestimmt den Kanalpfad anhand von Raum und Slot.
Das Festlegen eines Relays aktiviert weder die automatische Relay-Synchronisierung noch startet es einen Relay-
Server; es liefert die Standardadresse für ausdrücklich ausgeführte Sende-/Empfangsvorgänge.
Die Datei ist nicht verschlüsselt. Speichern Sie Passwörter, private Schlüssel, OAuth-Token und MCP- Grants in den bestehenden geschützten Mechanismen, niemals in dieser Datei. Unbekannte Schlüssel, ungültige Werte und fehlerhaftes TOML führen zu einer sicheren Ablehnung, statt stillschweigend zu einem anderen Speicher zu wechseln. Fehlermeldungen der Konfiguration geben keine TOML-Quellwerte aus.
Retrieval- und Modelleinstellungen
Dieselbe Datei akzeptiert die Abschnitte [rag], [rag.http] und optional [rag.embedding],
[rag.generation] und [rag.rerank]. Sie konfigurieren das Modellverzeichnis und die CPU-Threads
für das im Prozess laufende EmbeddingGemma, kundenseitig ausgewählte API-URLs und Modellnamen,
Namen von Umgebungsvariablen für API-Schlüssel, Proxys, Zeitlimits und Wiederholungsversuche.
Für die Generierung gibt es keinen Standardendpunkt; Embeddings verwenden standardmäßig das lokale Modell.
Die vollständigen Einstellungen finden Sie unter Retrieval und RAG und im mitgelieferten Beispiel.
Starten Sie den Daemon nach Änderungen an diesen Einstellungen neu. Das Tray reicht den Konfigurationspfad
beim Start des Daemons weiter; Modellschlüssel müssen in dessen Umgebung verfügbar sein.
Entfernte Daemon-Listener (nicht TOML)
HTTP-/Relay-RPC-Listener-Token dürfen nicht in der Konfigurationsdatei abgelegt werden. Verwenden Sie ausschließlich Flags oder Umgebungsvariablen:
| Zweck | Flag | Umgebung |
|---|---|---|
| HTTP-/WS-Listener des Daemons | daemon --listen http(s)://HOST:PORT |
— |
| Optionales TLS | daemon --tls-cert PATH --tls-key PATH |
— |
| Listener-Token des Daemons | daemon --listen-token |
MEMORIES_LISTEN_TOKEN |
| Bindung außerhalb von Loopback | daemon --allow-non-loopback |
— |
| Relay-Host des Daemons | daemon --relay-host URL --room ROOM |
— |
| Direkte CLI-Verbindung | --daemon URL (http(s)://, mit Host und Port) |
MEMORIES_DAEMON |
| CLI-Verbindung über Relay | --daemon-relay URL --daemon-room ROOM |
MEMORIES_DAEMON_RELAY / MEMORIES_DAEMON_ROOM |
| Verbindungstoken der CLI | --daemon-token |
MEMORIES_DAEMON_TOKEN |
Details zu HTTP-/WebSocket-Listenern finden Sie unter Entfernter Daemon.
Autorisierungs-Center
Dieser Abschnitt konfiguriert den Desktop-Daemon und die CLI. Die Optionen Standalone, Center und SaaS auf dem Telefon sind separate App-Einstellungen; siehe Auswahl des mobilen Modus.
Optionale [[centers]]-Einträge (id, url, public_key, optional mode) machen einen Endpunkt Center-verwaltet: Initialisierung/Wiederherstellung und lokale MCP-Grants werden abgelehnt. mode = "ticket" ist der Standard: Verwenden Sie memories center enroll / import-grant mit signierten Tickets. Stattdessen darf genau ein Eintrag mit mode = "saas" Daemon-Inhalte über MEMORIES_CENTER_TOKEN mit einem gehosteten Center verbinden; es wird kein paralleler lokaler Registrierungs-/Inhaltspfad erstellt. Direkte Center-CLI-Aufrufe verwenden MEMORIES_CENTER_URL / MEMORIES_CENTER_TOKEN oder MEMORIES_CENTER_ADMIN_TOKEN für Administrationsvorgänge. Signiergeheimnisse und Bearer-Token bleiben in der Umgebung, niemals in TOML. Siehe Center.
Ausgelassene Grant-Berechtigungsumfänge verwenden jetzt standardmäßig read, einschließlich Center-Tickets und statischer
gehosteter Grant-Spezifikationen. Die lokale Grant-Ausstellung durch Admin/Owner und der Ticketimport
erfordern einen entsperrten Tresor, aber keine Rechteerhöhung im Terminal. Die Ausstellung wird durch die
Tresorrolle sowie den Berechtigungsumfang und das Ablaufdatum eines übergeordneten Grants begrenzt; nur ein Owner darf ausdrücklich
allow_all auswählen. Bearer bleiben außerhalb von TOML. Änderungen an Mitgliedschaften widerrufen
betroffene delegierte Grants, und das Sperren löscht alle lokalen Grants. Unter
Autorisierung finden Sie RPC-Namen, Berechtigungsanfragen, Zugriffslisten,
Audit-Kompatibilität und Verhaltensänderungen.
Im gehosteten Modus speichert memories-center --data DIR (Umgebung MEMORIES_CENTER_DATA)
außerdem dauerhafte Anfragemetadaten in DIR/requests.json und die nur erweiterbare
SHA-256-Audit-Kette in DIR/audit.jsonl; beide verwenden den Unix-Modus 0600, während DIR
den Modus 0700 verwendet. Das bestehende DIR/members.json enthält weiterhin dauerhafte Bearer-
Zugangsdaten im Klartext. Schützen Sie alle drei Dateien und ihre Sicherungen; committen Sie sie niemals.
Neue Passwort-, Token- oder Audit-Einstellungen gehören nicht in TOML. Fehler beim Speichern von
Audit-/Anfrage-/Mitgliedsdaten sperren den Server und setzen restart_required; eine entfernte Entsperrung kann
diesen Zustand nicht umgehen. Reparieren Sie den Zustand und starten Sie mit dem vom Betreiber verwahrten Passwort neu.
HTTP-Anfragetexte für gehostete Mitglieder akzeptieren optional role=reader|editor|admin|owner; das Weglassen der Rolle
erhält die bestehende Zuordnung von Berechtigungsumfang zu Rolle. POST /v1/grants verwendet standardmäßig
scope=read, duration_minutes=30 (Alias minutes) und erfordert Admin/Owner.
POST /v1/requests verwendet duration_minutes (Alias duration) sowie optional
approvers; GET /v1/requests listet ausstehende Arbeit auf. GET /v1/access/{vault} und
GET /v1/grants stellen Zugriffsmetadaten ohne Token bereit. GET /v1/audit?vault=NAME
filtert verifizierte Einträge, und GET /v1/audit?format=jsonl exportiert das vollständige,
für den Betreiber sichtbare Protokoll. Diese Autorisierungsrouten verwenden die bestehenden gehosteten/Admin-
Bearer, keine neuen Umgebungsvariablen. Das Entfernen von Mitgliedern oder Änderungen des Berechtigungsumfangs machen
alle zuvor ausgestellten Grants über eingefrorene Ausstellungsgenerationen ungültig; statische/dauerhafte
Zugangsdaten werden beim Übergang neu eingerichtet. Die genauen Routen, Antwortfelder und Einschränkungen
der Audit-Kette finden Sie unter Center.
Auswahl des mobilen Modus
Wählen Sie den Modus beim ersten Start und verwenden Sie anschließend Modus wechseln in der Hauptsymbolleiste.
Die App liest weder MEMORIES_CENTER_URL / MEMORIES_CENTER_TOKEN noch bearbeitet sie
[[centers]], wenn diese Auswahl geändert wird.
| App-Modus | Endpunkt | Gespeicherte Inhalte |
|---|---|---|
| Standalone | Lokaler Rust-Dienst über FFI | Bestehende verschlüsselte Bibliothek auf dem Telefon |
| Center | Vom Benutzer eingegebener Ursprung des gehosteten Centers | Gehosteter Speicher dieses Servers |
| SaaS | Festes https://memories.ivjn.us |
Gehosteter SaaS-Speicher |
Center-URLs müssen außerhalb von Loopback HTTPS verwenden und dürfen keinen Benutzernamen, kein Passwort,
keinen Pfad außer dem Wurzelpfad, keine Abfrage und kein Fragment enthalten. Geben Sie den Serverursprung ein, nicht /v1/rpc. Die
Loopback-Adresse des Telefons verweist auf das Telefon selbst, nicht auf einen Entwicklungscomputer.
Die nicht geheime Einstellung memories.app-mode.v1 speichert standalone, center oder
saas. Fehlende oder unbekannte Werte zeigen die Modusauswahl an. Verbindungsprofile sind
JSON-Objekte, die mit flutter_secure_storage unter
memories.hosted.center.connection.v2 und memories.hosted.saas.connection.v2 gespeichert werden;
jedes bindet eine url an ihren bearer. Eine erfolgreiche neue Verbindung speichert das Paar
erst, nachdem die Anfrageliste geladen werden kann. Das Trennen der Verbindung entfernt den Bearer und
behält die URL; ein Moduswechsel behält beide Profile für eine spätere Verwendung.
Bei einem Upgrade wird das ältere Paar memories.hosted.url.v1 / memories.hosted.bearer.v1
nur importiert, wenn für diesen Modus kein neues Profil vorhanden ist. Eine exakt übereinstimmende
URL https://memories.ivjn.us, optional mit abschließendem Schrägstrich, gehört zu SaaS;
andere URLs gehören zu Center. Das ältere Paar wird nach der Migration entfernt. SaaS
stellt keine Verbindung mit einem gespeicherten Token wieder her, dessen URL auf einen anderen Ort verweist.
Beim Öffnen eines gehosteten Modus wird dessen gespeicherte Verbindung wiederhergestellt, sofern vorhanden. Nach einem Wechsel in den Hintergrund erfordert die aktuelle Seite Gespeicherte Sitzung erneut verbinden oder eine neue Anmeldung. Ein Moduswechsel migriert niemals Bibliotheksinhalte, verändert keine Servermitgliedschaft und widerruft keinen vom Server ausgestellten Token. Unter Mobile Nutzung finden Sie den Funktionsvergleich und die Fehlerbehebung bei Verbindungen.
Standardwerte der Client-CLI
Unabhängig von config.toml speichert die CLI optionale, nicht geheime Befehlsstandardwerte in
defaults.json unter dem Memories-Home-Verzeichnis (storage_dir / MEMORIES_HOME / --home):
memories default set KEY VALUE
memories default get [KEY]
memories default delete KEY
Schlüssel: persona, vault, type, category, daemon, daemon_relay, daemon_room.
Diese sind niemals Tresorgeheimnisse; speichern Sie hier keine Passwörter oder MCP-Grant-Token.