
LifeOS 用户配置体系解析LIFEOS_CONFIG.toml、凭据隔离与系统/用户边界【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOSLifeOSLife Operating System是一套意图工程平台用于推动用户在生活与工作中从当前状态走向理想状态。本文以仓库内 LifeOS/install/USER/CONFIG/README.md 为核心骨架深入拆解 LifeOS 的用户配置层LIFEOS_CONFIG.toml如何成为我的东西放在哪、我如何认证的唯一事实来源凭据为何绝不落入配置文件、而由~/.claude/.env与CREDENTIALS/目录安全承载以及这些设计如何借助 LifeosConfig.ts 的类型化加载器与系统/用户双树边界在运行时落地。读完本文你将掌握 LifeOS 配置文件的完整字段含义、凭据管理的安全规范、自定义配置的正确姿势以及该层在隐私与公开发布机制中的定位。CONFIG 目录LifeOS 的配置中枢LifeOS/install/USER/CONFIG/是安装骨架中用户配置区的核心目录。该目录 README 明确了它的职责定位This directory holds the structured config that LifeOS tools read at runtime: credential pointers, project paths, integration settings. Treat it as the single source of truth for where does my stuff live and how do I authenticate.即它保存 LifeOS 工具在运行时读取的结构化配置——凭据指针、项目路径、集成设置。目录本身不直接存储密钥而是回答两个问题我的东西放在哪里、我如何完成身份认证。目录内实际包含的文件如下文件内容LIFEOS_CONFIG.toml主配置principal本人身份、DA数字助理身份与语音、项目路径、集成开关CREDENTIALS/本地凭据仓库每服务一个凭据文件JSON 或.env条目按服务名索引TERMINAL/终端集成偏好标签命名、环境持久化、颜色偏好多数用户无需修改OPERATIONAL_RULES.md主用户专属运维规则工具链偏好、仓库约定、可信渠道、模型选择分档memory-review.json记忆审查相关状态文件其中 OPERATIONAL_RULES.md 值得单独说明它承载的是主用户特定的规则工具选择、环境变量路径、供应商特有注意事项、自身仓库约定与全局通用的系统提示LIFEOS_SYSTEM_PROMPT.md形成互补——系统提示管所有人共用的规则此文件管你自己的细则。文件以桩stub形式发布随使用过程逐步填充可通过 LifeOS 的/interview流程辅助沉淀。它还在安全边界规则中扮演关键角色系统提示的 Security Boundaries 规则 7 与工作仓库权限边界均指向此处的可信渠道字段在填写之前系统默认不信任任何渠道、所有重要操作都会二次询问——这是安全的默认行为。LIFEOS_CONFIG.toml用户配置的唯一事实来源LIFEOS_CONFIG.toml是整个配置层的主角。仓库中发布的干净脚手架bootstrap default如下真实值由 LifeOS Setup Interview 流程填入# LIFEOS_CONFIG.toml — user-owned LifeOS configuration # # Bootstrap default. The LifeOS Setup Interview fill in your real values. # Canonical source for principal identity, DA identity, voice config, integration # credentials, and path roots. System code reads these through # LIFEOS/TOOLS/LifeosConfig.ts (loadLifeosConfig()). Secrets stay in ~/.claude/.env — never here. [principal] name Your Name # required — your display name pronunciation # optional — phonetic spelling if needed timezone America/Los_Angeles # required — IANA timezone hometown # optional currency USD # optional — ISO 4217, drives Pulse Finances tab formatting [da] name Aria # required — your DAs name (rename to anything) full_name display_name color #3B82F6 [da.voices.main] voice_id 21m00Tcm4TlvDq8ikWAM # required — ElevenLabs voice_id (public default; set yours in Interview) voice_name Rachel stability 0.85 similarity_boost 0.7 style 0.3 speed 1.0 use_speaker_boost true volume 1.0 [integrations.cloudflare] # Token lives in ~/.claude/.env (never here). Account ID is non-secret. token_env_var CLOUDFLARE_API_TOKEN [paths] user_dir ~/.claude/LIFEOS/USER projects_dir ~/Projects各区块字段说明[principal]—— 本人身份字段必填说明name是显示名加载器强制校验非空pronunciation否姓名音标拼写timezone是IANA 时区如America/Los_Angeles加载器强制校验非空hometown否家乡currency否ISO 4217 货币代码如JPY、EUR驱动 Pulse Finances 标签页格式化缺省回退USD[da]—— 数字助理身份与语音字段必填说明name是DA 名称脚手架默认Aria可任意改名加载器强制校验full_name/display_name否全名与展示名color否DA 主题色十六进制[da.voices.main]是主语音配置voice_id强制校验语音子配置含 ElevenLabs 合成参数stability稳定性脚手架 0.85、similarity_boost相似度增强0.7、style风格0.3、speed语速1.0、use_speaker_boost扬声器增强开关、volume音量1.0以及voice_id/voice_name指定实际音色。这些值会在 Interview 流程中替换为你自己的音色。[integrations.*]—— 按集成分块的设置脚手架只带cloudflare示例token_env_var CLOUDFLARE_API_TOKEN——注意这里存放的是环境变量名指针而非 Token 值本身注释明确写着 Token lives in ~/.claude/.env (never here)。安装的技能会向此文件追加各自的[integrations.*]块。从 LifeosConfig.ts 的类型定义LifeosIntegrations接口看集成块支持google.credentialsFileGoogle OAuth 凭据文件指针、cloudflare.accountId/cloudflare.tokenEnvVar等形态且以[key: string]: unknown开放扩展。[paths]—— 路径根字段说明user_dir用户数据区根目录默认~/.claude/LIFEOS/USERprojects_dir代码项目目录根默认~/Projects运行时如何被读取类型化加载器 LifeosConfig.tsLIFEOS_CONFIG.toml不是被各工具零散硬编码读取的。仓库的 LifeosConfig.ts 定义了系统代码 ↔ 用户数据之间的契约接口系统代码一律通过loadLifeosConfig()读取身份、语音 ID、集成凭据指针与路径根任何系统文件不得直接打开 USER 区下的文件获取这些值——路径根解析集中发生在此处。其关键实现机制包括默认路径解析DEFAULT_CONFIG_PATH为~/.claude/LIFEOS/USER/CONFIG/LIFEOS_CONFIG.toml同时支持LIFEOS_CONFIG_PATH环境变量覆盖LifeosConfig.ts零依赖 TOML 解析格式决策ISC-56.1选 TOML 而非 YAML理由是 Bun 1.3 原生支持 TOMLrequire()直接解析零新增依赖且带分节、注释、多行字符串人类可编辑性优于 JSON~展开expandHome()将~与~/前缀展开为绝对路径——node:fsAPI 不做波浪号展开因此加载器返回的路径必为绝对路径LifeosConfig.ts强校验validateAndNormalize()强制要求[principal].name、[principal].timezone、[da].name、[da.voices.main].voice_id非空缺任一字段即抛错并提示查看配置文件LifeosConfig.ts兼容 snake_case 与 camelCaseTOML 中voice_id、user_dir、projects_dir等键会被归一化为接口中的voiceId、userDir、projectsDir两种写法均可mtime 缓存按文件修改时间缓存解析结果文件未变则直接命中缓存避免重复解析开销CLI 入口直接以bun运行该文件会打印归一化后的完整配置 JSON便于排查LifeosConfig.ts常用便捷函数paiUserDir()返回用户区根目录Banner 工具、HealthSnapshot、hooks/lib/identity 等系统模块均依赖它组合路径加载失败时回退到约定位置~/.claude/LIFEOS/USERLifeosConfig.ts。从源码结构看loadLifeosConfig()的调用遍布系统各处——Pulse 的 pulse.ts、多个 TOOLS 工具如 HealthSnapshot.ts、AgentWatchdog.ts以及 Setup.md 描述的安装流程都经由这一统一入口读取用户配置保证了一处定义、处处生效。凭据到底存在哪里配置只存指针绝不存值这是该配置层最核心的安全设计。LIFEOS_CONFIG.toml本身不存储任何凭据。秘密存放在两个地方1.~/.claude/.env—— 环境变量存放ELEVENLABS_API_KEY等环境变量。Pulse 在启动时加载此文件安装器在用户完成语音设置步骤时向此文件写入内容。[integrations.cloudflare]中的token_env_var正是指向这里的某个环境变量名。2.~/.claude/LIFEOS/USER/CREDENTIALS/—— 凭据文件存放凭据 JSON 文件Google OAuth、AWS profiles 等按服务名一个文件一个凭据。该目录默认不存在需要时按需创建并执行chmod 700收紧权限仅所有者可读写执行。CREDENTIALS/README.md 明确了使用规范内容每服务一个凭据文件典型形态为 JSON 文件或.env条目按服务名索引技能在运行时从该目录读取以完成对外部 API 的认证填充方式由用户显式填充。当技能需要新凭据时它会告诉你该放入什么你从服务商处获取密钥后保存到此。全新安装的初始状态为空 / 仅此 README真实内容随使用逐步出现安全要求像对待任何密钥库一样对待它——带外备份out-of-band backup、永不提交到版本库、永不把内容粘贴进聊天窗口。而LIFEOS_CONFIG.toml通过路径引用这些凭据reference these by path, never by value从而保证密钥不会进入任何可能被误提交或误共享的文件。自定义配置实战改什么、在哪改按 LIFEOS_CONFIG.toml 头注释与 README 指引打开文件更新以下内容即可[principal]/[da]—— 你的身份、DA 的名字与音色[paths]—— 你的代码项目所在位置各技能安装后新增的[integrations.*]块 —— 对应集成的设置。安装器在配置阶段会写入合理的默认值因此仅在需要改变默认值或为新增集成添加设置时才需要手动编辑此文件。该文件位于 USER 区LIFEOS/USER/CONFIG/它是你的可自由编辑——这与系统区文件的受保护属性形成对照。在 ConfigSystem.md 描述的完整配置体系中可进一步看到LIFEOS_CONFIG.toml与另一份settings.user.jsonUSER 覆盖层的配合关系后者由MergeSettings.ts在每次 SessionStart 时与settings.system.json深度合并生成运行时settings.json而LIFEOS_CONFIG.toml则承载类型化的身份/凭据/路径数据。合并语义上用户覆盖层数组默认整体替换系统数组若想追加需使用{__merge: append, values: [...]}注解形式——这些细节在自定义时值得留意避免手抄规则时意外清空系统默认列表。隐私边界USER 区永不进入公开发布README 明确承诺Nothing in this directory ships in a public LifeOS release.发布构建器会在用户配置区之上覆盖一层通用的公开默认脚手架generic public-default scaffold你定制后的配置只留在你自己的机器上。这一承诺有更广泛的机制支撑。从 USER/README.md 与 ConfigSystem.md 可见LifeOS 采用系统/用户双树分离架构系统树SYSTEM公开发布、人人相同含settings.system.json、系统提示、工具等用户树USER私人所有、仅属于你含身份、TELOS、当前状态等以符号链接挂载进运行树~/.claude/LIFEOS/USER→~/.config/LIFEOS/USER发布时构建器从暂存区删除整个USER/树并覆盖通用脚手架——这就是配置与凭据永不泄露的结构性保证。安装流程中Setup.md 的ScaffoldUser步骤 5会把install/USER/模板树以不覆盖已有文件copyMissing的方式铺入用户配置树LinkUser步骤 6再将其链接进系统树——配置区的实际值永远来自你自己的私有数据。延伸阅读LIFEOS_CONFIG.toml 脚手架 —— 本文讲解的完整配置样例LifeosConfig.ts 类型化加载器 —— 配置契约接口与校验逻辑实现CREDENTIALS 凭据仓库规范 —— 凭据文件的存放与安全要求OPERATIONAL_RULES 运维规则 —— 主用户专属规则与可信渠道TERMINAL 终端偏好 —— 终端集成自定义Kitty、Ghostty、iTerm2、Terminal.appConfigSystem.md 配置系统全景 —— 系统/用户分离、合并机制与编辑指引SystemUserBoundary.md 边界契约 —— 四种允许的访问模式等边界规则USER 区总览 —— 身份层的目录布局与启动加载方式【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考