Name Last Update
bosszhipin Loading commit data...
device Loading commit data...
docs Loading commit data...
frontend Loading commit data...
hermes_backup_20260624 Loading commit data...
lifelog-recorder Loading commit data...
md Loading commit data...
oneplus-open Loading commit data...
packages Loading commit data...
phoneuse Loading commit data...
platform-tools Loading commit data...
server Loading commit data...
wechat_pad_login Loading commit data...
wechat_plain Loading commit data...
wechat_send_internal Loading commit data...
xhs_lsposed_a16_fix Loading commit data...
.env.example Loading commit data...
.gitignore Loading commit data...
CLAUDE.md Loading commit data...
README.md Loading commit data...
dev.sh Loading commit data...
jsconfig.json Loading commit data...
package.json Loading commit data...
pnpm-lock.yaml Loading commit data...
pnpm-workspace.yaml Loading commit data...
start.sh Loading commit data...

README.md

lemonPCRM

lemonAI 出品。一个 Local-First 的 AI 驱动个人人脉管理系统(Personal CRM),以人为中心、以对话为链接,将微信、LinkedIn、X 等平台的社交关系统一管理,并通过知识图谱将每个人节点与其社媒动态、会议纪要、文件、照片全面关联。

AI 对话层由本地 Claude CLI 进程驱动(ACP 协议),无需云端 API,数据完全本地化。

产品定位

维度 说明
数据主权 全部数据存储在本地,不依赖任何云服务
关系图谱 Palantir 式本体论设计:Person / Organization / Project / Event / Asset 节点互联
AI 驱动 通过自然语言对话驱动图谱更新、实体提取、路径分析
多源整合 微信聊天记录、X/LinkedIn 动态、会议纪要(Whisper 转写)、本地照片

架构

前端 (HTML/Graph Canvas)
    ↕ SSE / WebSocket
server/
  routes/          HTTP API — /api/master (SSE 对话)、/api/config
  src/core/        编排引擎 — Orchestrator、MasterSession、AgentManager、SessionPool
  src/engine/      进程层 — CommandQueue、ProcessGuard、RunRegistry
  src/tools/       Master 工具 — call-agent、tool-registry
  services/        会话日志、文件解析(docx/pdf)、Agent 记忆

packages/
  acp-core/        ACP 协议层 — Protocol / Transport / Launcher 抽象
  agent-core/      Agent 运行时 — 目录驱动的 Agent、AgentBus、Registry

快速启动

npm run setup        # 首次:cp .env.example .env + npm install
npm run dev          # 开发模式(热重载,端口 3010)
npm start            # 生产模式

API

端点 方法 说明
/api/master/chat POST Master Agent 多轮对话(SSE 流式)
/api/master/upload POST 文件上传(注入对话上下文,支持 .docx / .pdf)
/api/master/sessions GET 列出活跃 session
/api/master/sessions/:id DELETE 关闭 session
/api/config/items/:key GET / PUT 读写配置文件
/api/health GET 健康检查

对话示例

# 写入 payload 文件再发送(避免 shell JSON 转义问题)
cat > /tmp/payload.json <<'EOF'
{"message": "分析张三和李四之间的关系链路", "sessionId": "crm-session"}
EOF

curl -X POST http://localhost:3010/api/master/chat \
  -H "Content-Type: application/json" \
  -d @/tmp/payload.json \
  --no-buffer

SSE 事件类型:session | progress | agent_output | tool_call | result | error

配置

server/config/backends.json — ACP Launcher 定义:

{
  "launchers": {
    "claude-local": {
      "command": "claude",
      "args": ["--dangerously-skip-permissions"],
      "protocol": "claude-cli"
    }
  }
}

server/config/agents.json(可选)— 静态 Agent 定义:

{
  "crm-analyst": {
    "type": "executor",
    "client": "claude-local",
    "description": "分析人脉关系、提取实体、更新图谱"
  }
}

.env — 端口与 CORS:

PORT=3010
CORS_ORIGINS=http://localhost:5173

编程调用

const { runMasterSession, runOrchestration, runSingleAgent } = require('./server/src/standalone-entry');

// 单次 Master 会话(对话驱动图谱更新)
const result = await runMasterSession('把今天和张三的会议纪要导入,关联到他的人脉节点');

// 多 Agent 编排
const result = await runOrchestration('分析本月新增联系人并生成关系报告', { workDir: '/my/project' });

// 单个 Agent
const result = await runSingleAgent('crm-analyst', '提取以下文本中的人名和组织');

License

MIT · lemonAI