人生 IPO:一个把个人生活当企业经营的 TypeScript 数据操作系统
> 人生 IPO:统一财务、健康、知识、人脉、AI 决策与团队执行的个人数据操作系统。
## 一、引言:当人生变成一门需要“上市”的生意
我们每个人的生活其实都像一个微型企业:有收入(工资、副业)、有资产(存款、技能、人脉)、有负债(房贷、健康欠账)、有团队(家人、同事、AI 助手)、有战略(年度目标、月度计划)。但绝大多数人管理自己的方式,却远比管理一家公司要原始——用分散的 Excel 表、备忘录、日历、记账 App、健康手环、Notion 笔记……数据孤岛林立,决策全凭直觉。
**gtlhuyidan-sketch/life-ipo** 正是为解决这个痛点而生:它试图将“人生”这个复杂系统,抽象成一个可量化、可迭代、可自动决策的 **个人数据操作系统(Personal Data OS)**。项目用 TypeScript 编写,目前已有 440+ Stars,定位非常硬核——不是那种“帮你记日记”的温情工具,而是一个面向极客、效率狂魔、自我量化(Quantified Self)爱好者的工程化基础设施。
## 二、它到底解决什么痛点?
### 1. 数据孤岛:你的生活信息散落各处
- 财务在支付宝、银行、股票 App 里
- 健康在 Apple Health / 小米运动 / 体检报告里
- 知识在 Readwise、Kindle、笔记软件里
- 人脉在微信、LinkedIn、通讯录里
life-ipo 试图提供一个 **统一数据模型**,将上述所有维度映射到同一个结构化 schema 中,让你能用 SQL 或 TypeScript 接口一次性查询“我上个月的健康支出占比是多少?”这类跨域问题。
### 2. 决策靠感觉:没有数据支撑的目标管理
大多数人设定年度目标时靠“热血”,执行时靠“意志力”,复盘时靠“记忆”。life-ipo 借鉴企业 OKR + 财报体系,把目标拆解为可量化的 **KPI(关键绩效指标)**,并自动从数据源拉取实际值,生成类似“资产负债表”和“损益表”的人生报表。
### 3. AI 决策与自动化:从“记录”到“执行”
项目集成了 AI 决策引擎(支持 OpenAI / 本地模型),可以根据你的数据自动生成建议。比如:当连续 3 天睡眠不足 6 小时且当天有高强度日程时,AI 会自动建议调整日程或提醒你补充咖啡因。更进一步,它支持**团队执行**——你可以定义“规则”(如:当健康分低于 60 时,自动向家人发送提醒,或自动预订体检)。
## 三、快速上手:从安装到第一个“人生指标”
### 环境要求
- Node.js ≥ 18
- pnpm(推荐)或 npm
- TypeScript ≥ 5.0
### 安装步骤
bash
# 克隆仓库
git clone https://github.com/gtlhuyidan-sketch/life-ipo.git
cd life-ipo
# 安装依赖
pnpm install
# 复制环境变量模板
cp .env.example .env
# 配置你的数据源(例如:Notion 数据库、银行 CSV、Apple Health 导出)
# 编辑 .env 文件,填入相应 API Key 或文件路径
# 启动本地数据服务
pnpm dev
### 代码示例:定义你的第一个“人生维度”
在 `src/domains/` 下创建一个新文件 `health.ts`:
typescript
import { defineDomain } from '@life-ipo/core';
export const healthDomain = defineDomain({
name: 'health',
version: '1.0',
metrics: {
sleepHours: { type: 'number', unit: 'h', min: 0, max: 24 },
stressLevel: { type: 'enum', values: ['low', 'medium', 'high'] },
exerciseMinutes: { type: 'number', unit: 'min' },
},
sources: [
{
type: 'apple-health',
config: { exportPath: './data/apple_health_export.xml' },
},
{
type: 'manual',
config: { file: './data/manual_health.csv' },
},
],
aiRules: [
{
condition: (m) => m.sleepHours < 6 && m.stressLevel === 'high',
action: 'suggest_break',
message: '检测到睡眠不足且压力高,建议安排 15 分钟冥想。',
},
],
});
然后运行同步命令:
bash
pnpm sync --domain health
这会解析 Apple Health 导出文件,计算平均睡眠时长,并触发 AI 规则。如果条件满足,AI 会在终端输出建议,或通过 webhook 推送到你的手机。
### 查询数据:用 GraphQL 或 REST
启动服务后,访问 `http://localhost:3000/graphql` 可以执行查询:
graphql
query {
health {
sleepHours(period: LAST_7_DAYS) {
average
trend
}
}
finance {
netWorth
monthlyBurnRate
}
}
返回结果示例:
{
"data": {
"health": {
"sleepHours": { "average": 6.2, "trend": "down" }
},
"finance": {
"netWorth": 128000,
"monthlyBurnRate": 3500
}
}
}
## 四、核心亮点深度剖析
### 1. 领域驱动设计(DDD)架构
项目将人生拆分为**领域(Domain)**:`finance`、`health`、`knowledge`、`social`、`career`、`spirituality` 等。每个领域有独立的 schema、数据源适配器、AI 规则和报表模板。这种模块化设计让扩展新维度变得极其简单——你甚至可以为“宠物健康”或“游戏成就”创建自定义领域。
### 2. 数据源适配器体系
内置适配器包括:
- **财务**:CSV 导入(支持支付宝/微信导出)、Plaid API(美国银行)、加密货币钱包(Coinbase/币安)
- **健康**:Apple Health XML、Google Fit API、手动 CSV
- **知识**:Readwise API、Kindle 笔记导出、Notion 数据库
- **人脉**:LinkedIn 导出、微信通讯录备份(需手动处理)
适配器接口统一为 `SourceAdapter`,只需实现 `fetch()` 和 `transform()` 方法,即可接入任意新数据源。
### 3. AI 决策引擎:可编程的“人生顾问”
life-ipo 的 AI 不是简单的聊天机器人,而是一个**规则引擎 + LLM 混合系统**。你可以在每个领域定义 `aiRules`,规则由条件(基于指标值的逻辑表达式)和动作(建议、提醒、自动化调用)组成。同时,系统支持将多个指标聚合后发送给 LLM 生成更复杂的分析报告(例如:“根据我最近 30 天的财务和健康数据,给出下个月的生活优化建议”)。
### 4. 团队执行模块:把“人生”变成可协作项目
这是该项目最独特的地方。你可以创建“人生团队”(比如家庭成员、导师、AI 助理),并分配任务。例如:
- 妻子负责“家庭饮食健康”任务
- 教练负责“健身计划执行”任务
- AI 负责“每日数据监控和异常报警”
每个任务都有状态、截止日期和关联的指标。系统会生成团队看板(类似 Trello),并自动同步到各成员邮箱。
### 5. 隐私与本地优先
所有数据默认存储在本地 SQLite 或 PostgreSQL 中。AI 调用可选择本地模型(如 Ollama),避免敏感数据外泄。项目没有云服务依赖,完全可控。
## 五、适用场景与目标用户
- **量化自我爱好者**:已经坚持记录健康、财务、时间的人,需要一个统一分析平台。
- **自由职业者 / 创业者**:需要管理多收入来源、健康风险、知识积累,且希望用数据驱动决策。
- **家庭管理者**:想用企业级方法管理家庭预算、成员健康和学习计划。
- **AI 极客**:喜欢自定义规则和自动化流程的人,可以玩出很多花样。
- **开发者**:想学习 TypeScript 领域驱动设计、适配器模式、图数据库集成(项目可选配 Neo4j 用于关系分析)。
## 六、同类项目对比:它有何不同?
| 项目 | 定位 | 数据维度 | AI 决策 | 团队协作 | 本地优先 | 技术栈 |
|------|------|----------|---------|----------|----------|--------|
| **life-ipo** | 个人数据 OS | 多维度(财务/健康/知识/人脉/职业) | ✅ 规则+LLM | ✅ 内置 | ✅ | TypeScript, GraphQL |
| Notion + 模板 | 笔记/数据库 | 自定义但需手动 | ❌ | ✅ | ✅ | 闭源 |
| Exist.io | 量化自我聚合 | 健康/活动/情绪/天气等 | ⚠️ 简单统计 | ❌ | ❌ | 闭源 |
| Apple Health | 健康数据 | 仅健康 | ⚠️ 基础趋势 | ❌ | ✅ | 闭源 |
| Beeminder | 目标追踪 | 自定义指标 | ⚠️ 惩罚机制 | ❌ | ❌ | 闭源 |
**life-ipo 的差异化优势**:
1. **横跨多个生活维度**,而不像 Exist 或 Apple Health 只聚焦健康。
2. **真正的 AI 决策引擎**,而非简单的图表展示。
3. **团队协作能力**,这是绝大多数个人管理工具没有的。
4. **完全开源 + 本地部署**,数据隐私可控。
**劣势**:
- 上手门槛高(需要懂 TypeScript 和配置)
- 数据源适配器数量有限(没有国内微信支付、支付宝自动同步)
- UI 相对朴素(目前主要是命令行 + 简单 Web 仪表盘)
## 七、技术评测:代码质量与可扩展性
从 GitHub 仓库代码来看,项目结构清晰:
life-ipo/
├── src/
│ ├── core/ # 核心抽象(Domain, Metric, Rule)
│ ├── adapters/ # 数据源适配器
│ ├── ai/ # AI 决策引擎
│ ├── graphql/ # GraphQL 接口
│ ├── cli/ # 命令行工具
│ └── web/ # 简单 Web 仪表盘(React)
├── tests/ # 单元测试和集成测试
├── docs/ # 文档
└── examples/ # 示例配置
代码风格规范,使用 ESLint + Prettier,有完善的类型定义。测试覆盖了核心规则引擎和数据转换逻辑。对于 440 Stars 的项目来说,质量相当不错。
但也有一些不足:
- **文档不够完善**:目前只有 README 和少量示例,缺少完整的 API 参考和架构说明。
- **数据迁移功能弱**:没有内置的导出/导入工具,换数据库需要手动处理。
- **AI 规则调试困难**:当规则复杂时,难以追踪为何触发/不触发,建议增加调试日志。
## 八、总结与展望
life-ipo 是一个野心勃勃的项目,它试图用软件工程的严谨来管理混沌的人生。它并不完美,但理念非常超前——尤其是“人生作为企业”的隐喻,以及将 AI 作为“首席参谋”的架构。如果你是一个喜欢折腾、追求极致数据驱动生活的人,这个项目值得你花一个周末去配置。
对于开发者来说,它也是一个极佳的学习资源:你可以学到 TypeScript 的高级类型体操、适配器模式、GraphQL schema 设计、以及如何集成 LLM 到实际业务逻辑中。
最后,项目目前仍处于早期阶段(版本 0.x),但作者更新活跃,社区也在逐渐壮大。如果你有兴趣,可以参与贡献新的数据源适配器,或者帮助完善文档。
**项目链接**:https://github.com/gtlhuyidan-sketch/life-ipo