Configuración de escritorio (Windows, Linux y macOS)
Memories lee un archivo TOML UTF-8 para los ajustes locales que no son secretos. La CLI, el daemon,
la aplicación de bandeja de Windows, la aplicación de la barra de menús de macOS y la WebUI usan el mismo cargador de configuración.
El archivo de distribución contiene memories.example.toml; la plantilla de origen se encuentra
en crates/cli/assets/memories.example.toml.
Crear e inspeccionar
memories config path
memories config init
memories config show
config init crea un ejemplo comentado en la ubicación habitual de configuración.
Nunca sobrescribe un archivo existente. config path indica la ubicación exacta
seleccionada, y config show muestra los valores efectivos sin abrir ni
crear el almacén cifrado. Para mantener una configuración de desarrollo independiente:
memories config init --output ./development.toml
memories --config ./development.toml config show
memories --config ./development.toml daemon
memories --config ./development.toml tray
La selección del archivo de configuración sigue este orden: --config, después MEMORIES_CONFIG y, por último,
la ubicación predeterminada del SO. Nunca se detecta implícitamente un archivo en el directorio actual. Seleccionar explícitamente
un archivo inexistente produce un error, salvo al crearlo con config init.
| Plataforma | Archivo de configuración predeterminado |
|---|---|
| Windows | %APPDATA%\memories\memories\config\config.toml |
| Linux | $XDG_CONFIG_HOME/memories/config.toml, o ~/.config/memories/config.toml |
| macOS | ~/Library/Application Support/app.memories.memories/config.toml |
Use memories config path como ruta de referencia para la cuenta actual.
Instalar o iniciar una distribución no crea por sí solo ninguna configuración personal.
Ajustes
# Windows example: storage_dir = "D:/MemoriesData"
storage_dir = "~/MemoriesData"
relay_url = "wss://relay.example.com"
[desktop]
port = 0
open_browser = true
| Clave | Significado | Sustitución por entorno | Sustitución por línea de comandos |
|---|---|---|---|
storage_dir |
Directorio que contiene el almacén cifrado y el estado local | MEMORIES_HOME |
--home PATH |
relay_url |
URL base predeterminada del relay para sync send y sync receive |
MEMORIES_RELAY_URL |
--relay URL |
desktop.port |
Puerto del panel en loopback; 0 selecciona un puerto libre |
MEMORIES_WEBUI_PORT |
tray/webui --port PORT |
desktop.open_browser |
Abrir un navegador al iniciar la aplicación de bandeja/WebUI | MEMORIES_OPEN_BROWSER (true/false o 1/0) |
--open o --no-open |
Para cada ajuste, las opciones de línea de comandos tienen prioridad sobre las variables de entorno,
seguidas del valor TOML y, por último, del valor predeterminado integrado. Sin storage_dir,
se mantiene el directorio de datos existente del SO. No hay ningún relay público integrado.
La apertura del navegador está activada de forma predeterminada y el puerto del panel es cero.
Las rutas relativas de storage_dir se resuelven junto al archivo de configuración, no respecto al
directorio de trabajo del shell. Un prefijo ~/ se expande al directorio personal del usuario actual.
Use barras inclinadas o cadenas literales TOML para las rutas de Windows. Cambiar este
ajuste selecciona otro almacén; no migra ni copia los datos existentes.
Reinicie el daemon y la aplicación de bandeja juntos después de cambiar los ajustes de almacenamiento o escritorio.
La aplicación de bandeja transmite la configuración seleccionada y el almacén resuelto a las comprobaciones secundarias
y a los procesos de inicio del daemon.
El idioma sigue controlándose mediante los ajustes existentes --lang, MEMORIES_LANG y
memories language. El idioma guardado se lee del directorio del almacén configurado.
La WebUI también tiene su propio selector de idioma del navegador.
Ejemplos de relay
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
Solo se acepta wss:// para relays remotos. Se permite ws:// para desarrollo
en loopback (localhost, 127.0.0.1 o ::1). Las URL no pueden contener un nombre de usuario o contraseña.
El protocolo de relay existente determina la ruta del canal a partir de la sala y la ranura.
Configurar un relay no habilita la sincronización automática por relay ni inicia un servidor
relay; proporciona la dirección predeterminada para operaciones explícitas de envío y recepción.
El archivo no está cifrado. Guarde las contraseñas, claves privadas, tokens OAuth y concesiones MCP en sus mecanismos protegidos existentes, nunca en este archivo. Las claves desconocidas, los valores no válidos y el TOML mal formado provocan un fallo seguro en lugar de cambiar silenciosamente a otro almacén. Los mensajes de error de configuración no reproducen los valores del código fuente TOML.
Ajustes de recuperación y modelos
El mismo archivo admite las secciones [rag], [rag.http] y las secciones opcionales [rag.embedding],
[rag.generation] y [rag.rerank]. Configuran el directorio del modelo EmbeddingGemma
y los hilos de CPU dentro del proceso, las URL de API y los nombres de modelos elegidos por el cliente,
los nombres de variables de entorno para claves de API, los proxies, los tiempos de espera y los reintentos.
La generación no tiene un endpoint predeterminado; los embeddings usan de forma predeterminada el modelo local.
Consulte recuperación y RAG y el ejemplo incluido para conocer todos los ajustes.
Reinicie el daemon después de cambiar estos ajustes. La aplicación de bandeja transmite la ruta
de configuración al iniciar el daemon; las claves de los modelos deben estar disponibles en su entorno.
Escucha del daemon remoto (fuera de TOML)
Los tokens de escucha RPC HTTP/relay no deben colocarse en el archivo de configuración. Use únicamente opciones o variables de entorno:
| Finalidad | Opción | Entorno |
|---|---|---|
| Escucha HTTP/WS del daemon | daemon --listen http(s)://HOST:PORT |
— |
| TLS opcional | daemon --tls-cert PATH --tls-key PATH |
— |
| Token de escucha del daemon | daemon --listen-token |
MEMORIES_LISTEN_TOKEN |
| Enlace fuera de loopback | daemon --allow-non-loopback |
— |
| Host relay del daemon | daemon --relay-host URL --room ROOM |
— |
| Conexión directa de la CLI | --daemon URL (http(s)://, con host y puerto) |
MEMORIES_DAEMON |
| Conexión de la CLI por relay | --daemon-relay URL --daemon-room ROOM |
MEMORIES_DAEMON_RELAY / MEMORIES_DAEMON_ROOM |
| Token de conexión de la CLI | --daemon-token |
MEMORIES_DAEMON_TOKEN |
Consulte daemon remoto para conocer los detalles de escucha HTTP/WebSocket.
Centros de autorización
Esta sección configura el daemon de escritorio y la CLI. Las opciones Standalone, Center y SaaS del teléfono son ajustes independientes de la aplicación; consulte selección de modo móvil.
Las entradas opcionales [[centers]] (id, url, public_key, mode opcional) hacen que un endpoint sea gestionado por Center: se rechazan la inicialización/restauración y las concesiones MCP locales. mode = "ticket" es el valor predeterminado: use memories center enroll / import-grant con tickets firmados. Como alternativa, exactamente una entrada mode = "saas" puede conectar el contenido del daemon a un Center alojado mediante MEMORIES_CENTER_TOKEN; no se crea ninguna ruta paralela de inscripción o contenido local. Las llamadas directas a Center desde la CLI usan MEMORIES_CENTER_URL / MEMORIES_CENTER_TOKEN, o MEMORIES_CENTER_ADMIN_TOKEN para las operaciones administrativas. Los secretos de firma y los tokens de portador permanecen en el entorno, nunca en TOML. Consulte Center.
Los ámbitos de concesión omitidos ahora toman el valor predeterminado read, incluidos los tickets de Center y las
especificaciones estáticas de concesiones alojadas. La emisión local de concesiones por Admin/Owner y la importación de tickets
necesitan una bóveda desbloqueada, pero no elevación del terminal. La emisión está limitada por el
rol de la bóveda y por el ámbito y la caducidad de cualquier concesión superior; solo un Owner puede seleccionar
explícitamente allow_all. Los tokens de portador permanecen fuera de TOML. Los cambios de membresía revocan
las concesiones delegadas afectadas, y el bloqueo borra todas las concesiones locales. Consulte
autorización para conocer los nombres RPC, las solicitudes de permisos, las listas de acceso,
la compatibilidad de auditoría y los cambios de comportamiento.
En modo alojado, memories-center --data DIR (variable de entorno MEMORIES_CENTER_DATA)
también almacena metadatos persistentes de solicitudes en DIR/requests.json y la cadena de auditoría
SHA-256 de solo anexado en DIR/audit.jsonl; ambos usan el modo Unix 0600, y DIR
el modo 0700. El archivo existente DIR/members.json sigue conteniendo credenciales persistentes
de portador en texto plano. Proteja los tres archivos y sus copias de seguridad; nunca los incorpore al repositorio.
No deben añadirse nuevos ajustes de contraseñas, tokens ni auditoría a TOML. Los fallos al guardar auditorías, solicitudes o miembros
bloquean el servidor y establecen restart_required; el desbloqueo remoto no puede
eludir ese estado. Repare y reinicie usando la contraseña que conserva el operador.
Los cuerpos HTTP de miembros alojados aceptan el parámetro opcional role=reader|editor|admin|owner; omitir el rol
conserva la correspondencia existente entre ámbito y rol. POST /v1/grants usa de forma predeterminada
scope=read, duration_minutes=30 (alias minutes) y requiere Admin/Owner.
POST /v1/requests usa duration_minutes (alias duration) junto con approvers
opcional; GET /v1/requests enumera el trabajo pendiente. GET /v1/access/{vault} y
GET /v1/grants exponen metadatos de acceso sin tokens. GET /v1/audit?vault=NAME
filtra las entradas verificadas y GET /v1/audit?format=jsonl exporta el registro completo
visible para el operador. Estas rutas de autorización usan los tokens de portador alojados o administrativos
existentes, no nuevas variables de entorno. La eliminación de miembros y los cambios de ámbito invalidan
todas las concesiones emitidas anteriormente mediante generaciones de emisión congeladas; las credenciales estáticas y persistentes
se restablecen en la transición. Consulte Center para conocer las rutas
exactas, los campos de respuesta y las limitaciones de la cadena de auditoría.
Selección de modo móvil
Seleccione el modo en el primer inicio y después use Cambiar modo en la barra de herramientas principal.
La aplicación no lee MEMORIES_CENTER_URL / MEMORIES_CENTER_TOKEN ni modifica
[[centers]] al cambiar esta elección.
| Modo de la aplicación | Endpoint | Contenido almacenado |
|---|---|---|
| Standalone | Servicio Rust local mediante FFI | Biblioteca cifrada existente en el teléfono |
| Center | Origen del Center alojado introducido por el usuario | Almacén alojado de ese servidor |
| SaaS | Fijo: https://memories.ivjn.us |
Almacén alojado de SaaS |
Las URL de Center deben usar HTTPS fuera de loopback y no contener nombre de usuario, contraseña,
ruta distinta de la raíz, consulta ni fragmento. Introduzca el origen del servidor, no /v1/rpc. La
dirección de loopback del teléfono se refiere al propio teléfono, no a un ordenador de desarrollo.
La preferencia no secreta memories.app-mode.v1 almacena standalone, center o
saas. Los valores ausentes o desconocidos muestran el selector de modo. Los perfiles de conexión son
objetos JSON almacenados con flutter_secure_storage bajo
memories.hosted.center.connection.v2 y memories.hosted.saas.connection.v2;
cada uno vincula una url a su bearer. Una nueva conexión correcta guarda el par
solo después de poder cargar la lista de solicitudes. Desconectar elimina el token de portador y
conserva la URL; cambiar de modo conserva ambos perfiles para usarlos más adelante.
Al actualizar, el par heredado memories.hosted.url.v1 / memories.hosted.bearer.v1
se importa solo si ese modo no tiene un perfil nuevo. Una URL exactamente igual a
https://memories.ivjn.us, opcionalmente con una barra final, pertenece a SaaS;
las demás URL pertenecen a Center. El par heredado se elimina después de la migración. SaaS
no volverá a conectar un token guardado cuya URL apunte a otro lugar.
Abrir un modo alojado restaura su conexión guardada cuando está disponible. Después de pasar a segundo plano, la página actual requiere Reconectar sesión guardada o un nuevo inicio de sesión. Cambiar de modo nunca migra el contenido de la biblioteca, modifica la membresía del servidor ni revoca un token emitido por el servidor. Consulte uso móvil para comparar las funciones y resolver problemas de conexión.
Valores predeterminados de la CLI cliente
Por separado de config.toml, la CLI almacena valores predeterminados opcionales y no secretos para comandos en
defaults.json, dentro del directorio de Memories (storage_dir / MEMORIES_HOME / --home):
memories default set KEY VALUE
memories default get [KEY]
memories default delete KEY
Claves: persona, vault, type, category, daemon, daemon_relay, daemon_room.
Nunca son secretos de la bóveda; no coloque aquí contraseñas ni tokens de concesión MCP.