Memories / 文档

本页目录

桌面配置(Windows、Linux 和 macOS)

Memories 从 UTF-8 TOML 文件读取非秘密的本地设置。CLI、守护进程、Windows 托盘、macOS 菜单栏应用和 WebUI 使用相同的配置加载器。发布归档包含 memories.example.toml;源模板位于 crates/cli/assets/memories.example.toml。

创建与检查

memories config path
memories config init
memories config show

config init 在通常的配置位置创建带注释的示例,绝不会覆盖已有文件。config path 报告实际选中的确切位置,config show 显示生效值,不会打开或创建加密存储。如需独立的开发配置:

memories config init --output ./development.toml
memories --config ./development.toml config show
memories --config ./development.toml daemon
memories --config ./development.toml tray

配置文件选择优先级依次为 --config、MEMORIES_CONFIG、操作系统默认位置。不会隐式发现当前目录中的文件。明确选择的文件不存在时会报错,使用 config init 创建它时除外。

平台 默认配置文件
Windows %APPDATA%\memories\memories\config\config.toml
Linux $XDG_CONFIG_HOME/memories/config.toml,或 ~/.config/memories/config.toml
macOS ~/Library/Application Support/app.memories.memories/config.toml

以 memories config path 作为当前账户配置路径的权威结果。仅安装或启动发布版本不会创建个人配置。

设置

# Windows example: storage_dir = "D:/MemoriesData"
storage_dir = "~/MemoriesData"
relay_url = "wss://relay.example.com"

[desktop]
port = 0
open_browser = true
键 含义 环境变量覆盖 命令行覆盖
storage_dir 包含加密存储和本地状态的目录 MEMORIES_HOME --home PATH
relay_url sync send 和 sync receive 的默认中继基础 URL MEMORIES_RELAY_URL --relay URL
desktop.port 回环仪表板端口;0 选择空闲端口 MEMORIES_WEBUI_PORT tray/webui --port PORT
desktop.open_browser 启动托盘/WebUI 时打开浏览器 MEMORIES_OPEN_BROWSER(true/false 或 1/0) --open 或 --no-open

每项设置均以命令行选项优先,其次是环境变量、TOML 值,最后是内置默认值。没有 storage_dir 时,现有操作系统数据目录保持不变。没有内置公共中继。默认打开浏览器,仪表板端口默认为零。

相对 storage_dir 路径相对于配置文件所在目录解析,而非 shell 工作目录。开头的 ~/ 展开为当前用户主目录。Windows 路径请使用正斜杠或 TOML 字面量字符串。更改此设置会选择另一个存储,不会迁移或复制现有数据。更改存储或桌面设置后,请一并重启守护进程和托盘。托盘将选定的配置和已解析的存储传递给子探测进程及守护进程启动操作。

语言仍由现有的 --lang、MEMORIES_LANG 和 memories language 设置控制。已保存的语言从配置的存储目录读取。WebUI 还有自己的浏览器语言选择器。

中继示例

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

远程中继只接受 wss://。回环开发(localhost、127.0.0.1 或 ::1)允许 ws://。URL 不能包含用户名/密码。现有中继协议根据房间和槽位确定通道路径。设置中继不会启用自动中继同步,也不会启动中继服务器;它仅为明确执行的发送/接收操作提供默认地址。

此文件未加密。存储密码、私钥、OAuth 令牌和 MCP 授权应保存在现有的受保护机制中,绝不能放入此文件。未知键、无效值和格式错误的 TOML 会以拒绝方式失败,而不是静默切换到另一存储。配置错误信息不会回显 TOML 源值。

检索与模型设置

同一文件接受 [rag]、[rag.http],以及可选的 [rag.embedding]、[rag.generation] 和 [rag.rerank] 分区。它们配置进程内 EmbeddingGemma 模型目录/CPU 线程、客户选择的 API URL 与模型名称、API 密钥环境变量名称、代理、超时和重试。生成没有默认端点;嵌入默认使用本地模型。完整设置参见检索与 RAG 及随附示例。更改这些设置后请重启守护进程。托盘启动守护进程时会传递配置路径;模型密钥必须可从其环境读取。

远程守护进程监听(不使用 TOML)

HTTP/中继 RPC 监听令牌不得放入配置文件。仅使用标志或环境变量:

用途 标志 环境变量
守护进程 HTTP/WS 监听 daemon --listen http(s)://HOST:PORT —
可选 TLS daemon --tls-cert PATH --tls-key PATH —
守护进程监听令牌 daemon --listen-token MEMORIES_LISTEN_TOKEN
非回环绑定 daemon --allow-non-loopback —
守护进程中继主机 daemon --relay-host URL --room ROOM —
CLI 直接连接 --daemon URL(http(s)://,带主机和端口) MEMORIES_DAEMON
CLI 中继连接 --daemon-relay URL --daemon-room ROOM MEMORIES_DAEMON_RELAY / MEMORIES_DAEMON_ROOM
CLI 连接令牌 --daemon-token MEMORIES_DAEMON_TOKEN

HTTP/WebSocket 监听详情参见远程守护进程。

授权 Center

本节配置桌面守护进程和 CLI。手机的 Standalone、Center 和 SaaS 选项是独立的应用设置;参见移动端模式选择。

可选的 [[centers]] 条目(id、url、public_key、可选 mode)使端点由 Center 管理:初始化/恢复和本地 MCP 授权会被拒绝。mode = "ticket" 为默认值:使用 memories center enroll / import-grant 和签名票据。也可使用且只能使用一个 mode = "saas" 条目,通过 MEMORIES_CENTER_TOKEN 将守护进程内容连接到托管 Center;不会创建并行的本地注册/内容路径。直接 Center CLI 调用使用 MEMORIES_CENTER_URL / MEMORIES_CENTER_TOKEN,管理操作则使用 MEMORIES_CENTER_ADMIN_TOKEN。签名秘密和持有者令牌留在环境中,绝不放入 TOML。参见 Center。

省略授权作用域时现在默认为 read,包括 Center 票据和静态托管授权规格。本地 Admin/Owner 签发授权及导入票据需要解锁保险库,但不需要终端提权。签发受保险库角色和任何父授权的作用域及到期时间限制;只有 Owner 可以明确选择 allow_all。持有者令牌仍置于 TOML 之外。成员变更会撤销受影响的委派授权,锁定会清除所有本地授权。RPC 名称、权限请求、访问列表、审计兼容性和行为变化参见授权。

托管模式下,memories-center --data DIR(环境变量 MEMORIES_CENTER_DATA)还会将持久请求元数据存储在 DIR/requests.json,将仅追加的 SHA-256 审计链存储在 DIR/audit.jsonl;两个文件的 Unix 权限均为 0600,DIR 权限为 0700。现有 DIR/members.json 仍包含明文持久持有者凭据。请保护这三个文件及其备份,绝不能提交它们。新的密码、令牌或审计设置均不应放入 TOML。审计/请求/成员保存失败会锁定服务器并设置 restart_required;远程解锁无法绕过此状态。应修复后使用操作者持有的密码重启。

托管成员 HTTP 请求体接受可选的 role=reader|editor|admin|owner;省略角色会保留现有的作用域到角色映射。POST /v1/grants 默认为 scope=read、duration_minutes=30(别名 minutes),并要求 Admin/Owner。POST /v1/requests 使用 duration_minutes(别名 duration)及可选的 approvers;GET /v1/requests 列出待处理事项。GET /v1/access/{vault} 和 GET /v1/grants 提供不含令牌的访问元数据。GET /v1/audit?vault=NAME 筛选已验证条目,GET /v1/audit?format=jsonl 导出操作者可见的完整日志。这些授权路由使用现有托管/管理员持有者令牌,不使用新的环境变量。成员移除/作用域变更会通过冻结的签发代际使所有之前签发的授权失效;静态/持久凭据在转换时重新建立。确切路由、响应字段及审计链限制参见 Center。

移动端模式选择

首次启动时选择模式,之后使用主工具栏中的切换模式。更改此选项时,应用不会读取 MEMORIES_CENTER_URL / MEMORIES_CENTER_TOKEN 或编辑 [[centers]]。

应用模式 端点 存储的内容
Standalone 通过 FFI 使用本地 Rust 服务 手机上的现有加密库
Center 用户输入的托管 Center 来源地址 该服务器的托管存储
SaaS 固定的 https://memories.ivjn.us SaaS 托管存储

非回环 Center URL 必须使用 HTTPS,且不能包含用户名、密码、非根路径、查询或片段。请输入服务器来源地址,而非 /v1/rpc。手机的回环地址指向手机本身,而非开发计算机。

非秘密偏好 memories.app-mode.v1 存储 standalone、center 或 saas。缺失或未知值会显示模式选择器。连接配置是 JSON 对象,通过 flutter_secure_storage 存储在 memories.hosted.center.connection.v2 和 memories.hosted.saas.connection.v2 下;各自将 url 与其 bearer 绑定。成功的新连接只有在请求列表可加载后才保存该配对。断开连接会移除持有者令牌并保留 URL;切换模式会保留两个配置供以后使用。

升级时,只有该模式没有新配置,才会导入旧的 memories.hosted.url.v1 / memories.hosted.bearer.v1 配对。精确的 https://memories.ivjn.us URL(可带末尾斜杠)属于 SaaS;其他 URL 属于 Center。迁移后移除旧配对。SaaS 不会使用 URL 指向其他地址的已保存令牌重新连接。

打开托管模式时,如果存在已保存连接就会恢复它。进入后台后,当前页面需要选择重新连接已保存的会话或重新登录。切换绝不会迁移库内容、更改服务器成员关系或撤销服务器签发的令牌。功能比较和连接故障排查参见移动端使用。

客户端 CLI 默认值

CLI 在 config.toml 之外,将可选的非秘密命令默认值存储在 Memories 主目录(storage_dir / MEMORIES_HOME / --home)下的 defaults.json:

memories default set KEY VALUE
memories default get [KEY]
memories default delete KEY

键:persona、vault、type、category、daemon、daemon_relay、daemon_room。这些绝不是保险库秘密;不要在此处放置密码或 MCP 授权令牌。