Emulo
从你的 Claude Code 与 Codex 会话日志中挖掘出私有个人画像 you.md,让 AI 编码代理在每次任务前先了解你的工作方式。
- 源仓库
- ohad6k/emulo
- Star 数
- ★ 299
- 最近更新
- 14 天前
- License
- MIT
- 主语言
- HTML
- FA 评分
- 78/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 每天使用 Claude Code 或 Codex 的开发者,厌倦了每个新会话都要重新解释自己的编码规范和'完成'标准。
- 不适合
- 只保留 Claude Code 默认 30 天日志、又不愿调高保留期的用户
- 期待一次挖掘就得到完整人格画像的人(首次全量仅恢复 22 项冻结特征中的 12 项)
- 源码审查
- 78/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Emulo 是一个 MIT 许可的本地优先工具,读取 Claude Code、Codex、Copilot CLI、OpenCode 和 Google Antigravity 的原始会话日志,提取你亲自输入的消息(而非规则文件),挖掘出你从未写下的工作规则。它输出一个分层的 you.md 画像,包含工作、设计、写作、视频等模块,可加载到 Claude Code、Codex、Cursor、Gemini、OpenCode、OpenClaw 和 Hermes Agent。核心是一个仅依赖标准库的 emulo.py 脚本,同时提供 Claude Code / Codex 原生插件、MCP 服务器(工具为 load_emulo_profile)以及技能路由如 emulo:mine、emulo:work、emulo:design、emulo:write、emulo:video。挖掘前会先输出只读计划并等待批准;推断出的规则必须有两段以上会话佐证,并可用 emulo verify you.md 逐条核对引文。提取、脱敏、缓存和画像全部留在本机,使用本地模型时整条流水线可完全离线。
Emulo 读取本地的 .l 会话日志(Claude Code、Codex、Copilot CLI 默认支持,OpenCode 经 --source opencode 读其 SQLite/JSON 存储,Google Antigravity 经 --source antigravity 读取 ~/.gemini/antigravity/brain 转录),只保留用户输入的文字并做脱敏。python emulo.py --dry-run 先打印只读挖掘计划(会话数、token 数、计划的 worker/reducer 调用),批准后把历史切块,每个分块经一次 worker 证据汇总,再合并为你专属的 you.md。运行 emulo --dry-run、emulo --chunks 4 --out emulo-out 控制挖掘;emulo --coach 生成不含模型调用的使用报告(重复提问、重复解释上下文等);emulo --card 生成可分享的画像卡片;emulo verify you.md 核对画像中每条引文是否真实存在于挖掘会话中,未命中的会以非零码退出。python emulo.py --install you.md --target claude|codex|cursor|agents|gemini|opencode 可将画像安装到对应代理,emulo mcp 或 uvx emulo mcp 启动 stdio MCP 服务器暴露 load_emulo_profile 工具。
- 每天使用 Claude Code 或 Codex 的开发者,厌倦了每个新会话都要重新解释自己的编码规范和'完成'标准。
- 同时使用多个代理(Claude Code、Codex、Cursor、Gemini、OpenCode)的人,希望一份 you.md 在所有工具中提供一致的个人上下文。
- 日志量大(数千会话、数百万 token)的用户,单次总结无法覆盖,需要分块 worker/reducer 挖掘流程。
- 注重隐私的开发者,想让提取、脱敏和画像全部留在本机,并可通过本地模型实现完全离线挖掘。
- 想在部署前验证画像可信度的用户,用 emulo verify 核对引文是否可追溯到真实会话。
- 想诊断自己与模型协作摩擦的用户,运行 emulo --coach 获取零模型调用的使用报告。
如何安装或部署这个 Agent?
三种安装方式。1) Claude Code 内安装插件:/plugin marketplace add ohad6k/emulo,然后 /plugin install emulo@emulo。2) Codex 内安装插件:codex plugin marketplace add ohad6k/emulo --ref v0.6.2 --,然后 codex plugin add emulo@emulo --。3) CLI:pip install emulo(或 uv tool install emulo,或 uvx emulo 免安装运行)。跨代理引导安装:npx skills add ohad6k/emulo@emulo。需要 Python 环境;挖掘需要一个模型提供方(托管或本地),且代理会在执行模型工作前展示成本并等待批准。
如何使用这个 Agent?
安装后运行 emulo:mine(插件内)或对代理说 run emulo(引导安装路径),并指向会话历史;也可直接用 CLI:python emulo.py --dry-run 查看只读计划,python emulo.py --chunks 4 --out emulo-out 分块挖掘;或让代理 read emulo-out/RUN_ME.md and follow it。使用 emulo --coach 生成使用报告,emulo --card 生成画像卡片,emulo verify you.md 核对引文,emulo update 复用缓存做增量更新。MCP 客户端可在配置中加入 {"mcpServers":{"emulo":{"command":"uvx","args":["emulo","mcp"]}}}。画像加载用 emulo:work(核心)、emulo:design、emulo:write、emulo:video 等技能;快速预览用 --preview,但校准显示其只恢复了 22 条必需特征中的 5 条,完整历史挖掘才是质量默认。
这个 Agent 有哪些优点和局限?
- 挖掘依据是真实会话中带日期的逐字引文,推断规则要求至少两个独立会话佐证,emulo verify 可机械核对引文。
- 核心 emulo.py 仅依赖标准库、零依赖、无网络调用;本地模型下整条挖掘流水线可完全留在本机。
- 覆盖面广:Claude Code、Codex 原生插件,Cursor/Gemini/OpenCode 适配器,OpenClaw/Hermes 技能,外加标准 MCP 服务器。
- 挖掘前强制打印只读计划并等待批准,增量更新复用哈希缓存,相同更新计划零额外挖掘调用。
- 挖掘必须调用一个模型(托管提供方会收到选中的脱敏文本),只有本地模型才能完全离线;且托管方成本 Emulo 无法精确计量。
- 快速预览模式在校准中仅恢复 22 条必需特征中的 5 条,完整历史挖掘也只恢复 12 条,稀疏历史可能导致设计或写作层不活跃。
- 需要维护较长的日志保留期:Claude Code 默认 cleanupPeriodDays=30,过期会话会在挖掘前丢失。
- Claude 原生插件在本次发布中未经宿主验证,状态标注为未声明;Claude Code /plugin 安装需手动粘贴命令。
这个 Agent 与同类方案有什么区别?
README 明确与 Claude 自带记忆功能对比:记忆是你主动告诉模型的内容(策划笔记、CLAUDE.md,且限于单一工具),Emulo 则读取原始会话日志挖掘你从未写下的行为规则,两者可并用。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Emulo 当前 | 78 · 表现良好 | Agent 插件 / 技能免费 + 模型费 | ★ 299 | 14 天前 | HTML | Codex · Claude Code |
| Compartment | 76 · 表现良好 | 命令行工具免费 | ★ 576 | 6 天前 | Python | Codex · Claude Code |
| Mnemo Cortex | 75 · 表现良好 | 自托管服务免费 | ★ 159 | 2 天前 | Python | Codex · Claude Code · Claude.ai |
| AgentBridge | 61 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 414 | 今天 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示只读取用户自己输入的消息、插件状态存于 EMULO_HOME、SHA-256 校验的引导下载、执行前打印只读计划并等待批准,SECURITY.md 明确模型供应商边界与 --no-redact 风险。扣分:脱敏仅为尽力而为(自述),引导经 skills.sh 分发且其默认匿名遥测需手动退出,最小权限只能评为2。安装会改动宿主配置文件(cursor/gemini/agents 目标),外部效果有描述但静态审查无法验证恢复完整性。
零依赖核心、requirements.lock、3.8/3.12 双轨 CI、缓存哈希重校验和失败即停(fail-closed)的描述充分。但存在明显自相矛盾:README 宣称『无账户、没有可购买的东西、无需登录』,而 cloud/worker 中包含 Polar 订阅计费、OAuth 身份、entitlement 与设备配对的完整云端实现,两套叙事并存,self_consistency 只能给1。失败消息仅静态可证。
受众(有 Claude Code/Codex 历史的个人开发者)与场景划分清晰,Limits 部分诚实说明稀疏历史、token 计量、基准未发布等边界,support matrix 明确标注『未声明』项。扣分:触发精度靠五层 skill 表描述,静态证据有限;对 Claude 原生插件『host unavailable during validation』意味着该路径本身未经作者验证。
安装说明多路径且带固定版本引用,FAQ 直面三点质疑,Limits 与 ROADMAP 明确,MIT 许可证文件完整。扣分:无 CHANGELOG 文件(仅散见的 v0.6.2 引用),维护者仅署名『Ohad』无身份可核,信息架构跨 README/docs/tests/legacy 多层但文档与 cloud/ 商业模块的关系未说明。
verify、--coach、card、分层 profile 提供了差异化价值,更新复用哈希降低成本,计划先行的成本展示好。扣分:作者自己的冻结校准显示完整历史仅恢复 22 项必需特征中的 12 项(work 5/10、writing 2/7),即核心产出召回有限且自认无法保证完整个人模型,output_usability 与 cost_benefit 相对成本只能给2。
每个推断规则要求两条独立会话、逐字日期引用、verify 命令可机械核查引用并退出非零,事实与推断分离做得非常好(spec 视频标注、未执行的方法论明确标注)。扣分:Proof v1 方法论自认『未经执行、需另行批准的证据发布』,关键效果声明(Reddit 数据、对比示例)在仓库内不可独立核查,claim_traceability 只能评2。
- README 的『免费、无账户、无可购买』与 cloud/worker 中的 Polar 订阅计费模块矛盾,使用前应确认你安装的部分是否接入该商业路径。
- 脱敏为尽力而为且 --no-redact 会把原始文本发给模型供应商;指向云端模型前请检查缓存与产物,避免分享完整 profile 或收据附录。
- 作者自述完整历史挖掘仅恢复 22 项必需特征中的 12 项,产出召回有限,不应将其视为对用户的完整建模。
- skills.sh 引导默认发送匿名安装遥测,需设 DISABLE_TELEMETRY=1 退出。
- Proof v1 方法论与效果声明(如 Reddit 数据)未经独立证据发布支持,属作者自述。
- 发布者身份未经核验(仅署名 Ohad),供应链信任依赖 SHA-256 校验机制本身。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.6.7 Emulo v0.6.7: claims match the evidence
发布说明摘录
Fixed - Public copy claimed a benefit that no published test shows. Found by a claims audit of every public surface against the published evidence. The README tagline said agents "act like they just met you. Emulo fixes that". PyPI, the MCP registry entry and the Claude marketplace described a profile "your agent loads before every task". The Codex plugin said "Your agents stop starting from zero". The ClawHub skill and the load_emulo_profile tool description, which every MCP client shows its model, said the profile makes the agent "act like them instead of starting cold". `RUN_ME.m …在 GitHub 查看 ↗ -
v0.6.6 Emulo v0.6.6: the mine-then-install path works end to end
发布说明摘录
Fixed - The documented mining path stopped at the install step. RUN_ME.md asks your agent to write emulo-out/you.md and then prints emulo --install emulo-out/you.md --target claude first. The claude and codex targets install the profile as a skill, which needs name and description frontmatter, and RUN_ME.md never asked for any, so a you.md written exactly as instructed was refused with "profile must start with exact name and description frontmatter fields". Found by following the documented flow end to end while writing a user guide. --install now adds name: you …在 GitHub 查看 ↗ -
v0.6.5 Emulo v0.6.5: stops reading its own chunks back as you
发布说明摘录
Fixed - Emulo read its own mining chunks back as things you typed. Mining a history means handing chunks to an agent. When a chunk goes to the agent inside the prompt itself, the agent's log records that prompt as a user message, and the next Emulo run read it back as your words. --coach counted the phrases inside it ("as I said", "I already told you") as you repeating yourself, and mining learned from its own earlier input, which is circular. Found by the 0.6.4 release run, which traced 10 of its 66 restated-context matches to these prompts and shipped without fixing them. A messag …在 GitHub 查看 ↗