Portable Handoff

把项目上下文可靠地交接给不同的 AI 会话与编码工具。

Star 数
★ 23
最近更新
2 个月前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
命令行工具Agent 插件 / 技能
可在哪里用
通用 · 跨平台Codex · Claude CodeChatGPT · Claude.ai(不支持)
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.11 或更高版本Shell / 命令行本地文件系统
典型场景
使用 Claude Code 完成了一半重构的开发者,需要在上下文窗口耗尽前把约束、纠正记录、阻塞问题和 Git 状态交给下一次会话。
不适合
  • 需要在纯 ChatGPT 或 Claude 网页对话中直接生成并验证胶囊的用户
  • 需要同步、账号或团队协作功能的团队
  • 需要密码学签名来证明胶囊作者身份的场景

这个 Agent 能做什么,适合哪些场景?

Portable Handoff 是一个本地优先的 Python CLI 和技能包,用于在 AI 会话、模型及编码代理之间传递项目上下文。模型先提供语义内容,本地程序再采集 Git 状态、文件哈希和时间戳,并在冲突时以本地事实为准。最终产物是一个同时包含可读说明和规范 JSON 的 Markdown capsule,每项声明还带有来源与可信度标签。它提供 preflight、finalize、load、validate、list、export 和 doctor 等命令,并附带 Claude Code、Codex、Cursor 及通用 shell 主机的集成说明。工具无需账户、API 密钥、网络、数据库、向量存储或运行时第三方依赖,但必须具备 Python 3.11+、shell 和可写文件系统;没有 shell 的普通 ChatGPT 或 Claude 网页对话只能生成未验证草稿。

端到端流程从 portable-handoff preflight --cwd . --source-host codex 开始:本地 CLI 检查运行环境,并采集可确定的仓库证据。模型根据会话和可见信息编写 draft JSON,其中约束、决策和其他声明可以标注 provenance 与 trust;未详细标注的字符串默认视为 model_inference / inferred。随后 portable-handoff finalize --preflight .handoff/evidence/preflight-xxxx.json --draft DRAFT.json --output auto 合并草稿与本地证据,并让本地事实覆盖冲突的模型内容,同时执行密钥脱敏、路径检查和规范化。生成的 Markdown capsule 保存人类可读说明、规范 JSON 和 SHA-256 摘要。load latest 输出适合新会话的简报,并检查内嵌 JSON、摘要、两种表示的一致性及当前仓库状态;validate 验证指定 capsule,list 枚举 capsule,export --format prose 生成适合粘贴到聊天中的文本。系统还会把未回答的问题提升为阻塞状态、检查记录的提交是否可从远端访问,并把下一步命令作为带风险标签的惰性文本展示,而不会执行它。

  1. 使用 Claude Code 完成了一半重构的开发者,需要在上下文窗口耗尽前把约束、纠正记录、阻塞问题和 Git 状态交给下一次会话。
  2. 同时使用 Codex、Claude Code 和 Cursor 的工程师,希望通过同一种 capsule 格式在工具之间迁移工作,而不必反复讲解项目背景。
  3. 在多个本地仓库间工作的个人开发者,需要用文件哈希、提交信息和时间戳区分模型回忆与机器验证的事实。
  4. 准备暂停任务的维护者,需要明确记录尚未回答的决策问题,避免后续会话误把项目视为无阻塞。
  5. 需要把上下文粘贴到无 shell 聊天界面的用户,可先按模板生成草稿,再回到装有 CLI 的机器上执行 finalize,得到经过验证的 capsule。
  6. 审阅外部传入交接文件的开发者,需要在加载前验证摘要、清理控制字符、检查相对路径并脱敏高置信度密钥。

如何安装或部署这个 Agent?

要求 Python 3.11 或更高版本。执行:

git clone https://github.com/legoambarish/portable-handoff
cd portable-handoff
pip install -e .
portable-handoff doctor --cwd .

仅执行 pip 安装不会包含代理实际读取的技能文件,因此需要保留克隆目录。Claude Code 可继续运行 python scripts/install_skill.py --destination ~/.claude/skills/handoff;Codex 可运行 python scripts/install_skill.py --destination ~/.codex/skills/handoff。Cursor 可执行 mkdir -p .cursor/rules 和 cp integrations/cursor/commands/handoff.md .cursor/rules/handoff.mdc,但若需自动加载,还要按照 Cursor 规则格式补充 alwaysApply 或 globs frontmatter。安装不需要账户、API 密钥或网络运行时服务;Git 缺失时能力会降级,仓库事实将记录为 unknown。

如何使用这个 Agent?

先在目标仓库或克隆目录中运行 portable-handoff doctor --cwd .,确认结果为 supported 或了解其降级原因。创建 capsule 时运行 portable-handoff preflight --cwd . --source-host codex,让模型按项目上下文生成 DRAFT.json,再运行 portable-handoff finalize --preflight .handoff/evidence/preflight-xxxx.json --draft DRAFT.json --output auto;其中 preflight 文件名应替换为实际生成的路径。成功时 finalize 会输出包含 outcome、path、schema_version、validated 和 redactions 的单行 JSON。新会话中用 portable-handoff load latest --cwd . 获取简报;也可用 portable-handoff validate CAPSULE.md --cwd . 验证文件、用 portable-handoff list --cwd . 查看已有 capsule,或用 portable-handoff export CAPSULE.md --format prose 导出聊天用文本。普通 ChatGPT 或 Claude 网页对话无法完成验证:只能粘贴 skills/handoff/assets/handoff-template.md 的结构生成草稿,并在之后转移到具备 CLI 的机器上执行 finalize。

这个 Agent 有哪些优点和局限?

优点
  • 把模型负责的语义内容与本地程序采集的 Git 状态、文件哈希和时间戳分开,并在冲突时以确定性证据为准。
  • 每项声明都有来源和可信度;非确定性来源不能被标为 verified,从机制上限制模型把回忆包装成事实。
  • capsule 同时保存可读说明和规范 JSON,并通过 SHA-256、双表示一致性检查及仓库状态比较检测损坏或陈旧内容。
  • 本地运行,无账户、API 密钥、网络、数据库、向量存储或运行时第三方依赖。
  • 对传入内容实施密钥脱敏、终端控制字符及不可见或双向 Unicode 清理、仓库相对路径验证,并且永不执行 capsule 中的命令。
局限
  • 必须具备 Python 3.11+、shell 和可写文件系统,因此普通 ChatGPT 和 Claude 网页会话不能直接创建或验证 capsule。
  • pip 包不包含技能文件;完整的代理集成需要保留仓库克隆并单独安装或复制对应技能文件。
  • 语义质量仍取决于负责压缩上下文的模型;文档明确指出多数真实条目可能只是 inferred,重要信息仍可能在压缩中丢失。
  • v0.1 没有同步、账户、团队功能,也没有第二个模型复核第一个模型的内容。
  • SHA-256 摘要只能发现截断或意外修改,不能证明作者身份;能修改 JSON 的人也能重新计算摘要。
  • 没有 Git 时只能降级运行,仓库事实会被记录为 unknown。

这个 Agent 与同类方案有什么区别?

与直接要求模型“总结我们做过什么”相比,Portable Handoff 把解释性内容交给模型,把 Git 状态、文件哈希、时间戳、远端可达性和完整性检查交给本地代码,并明确标注每项声明的来源与可信度。代价是需要额外的 preflight、草稿和 finalize 流程,以及本地 shell 和文件系统;它也不能保证模型已经注意到所有重要语义。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Portable Handoff 当前 80 · 表现良好 命令行工具免费 ★ 23 2 个月前 Python Codex · Claude Code
Piia Engram 77 · 表现良好 命令行工具免费 ★ 165 今天 Python Codex · Claude Code
Remnic 智能体记忆 73 · 存在缺口 命令行工具免费 + 模型费 ★ 232 2 天前 TypeScript ChatGPT · Codex · Claude Code · OpenAI API
GameDesignOS:本地优先的游戏设计操作系统 71 · 存在缺口 命令行工具免费 ★ 452 2 个月前 Python Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
表现良好
80/ 100 五分制 4.0 / 5
信任安全 18/29
可靠稳定 11/14
适用触发 18/18
规范维护 14/18
有效结果 12/13
证据核验 7/8
查看各维度的扣分理由
信任安全18 / 29 · 3.1/5

CLI 声明为本地优先且无运行时依赖或网络访问;技能仅声明 Bash、Read、Write,并将导入内容视为不可信数据、将下一步命令作为惰性文本,支持较小权限和清晰数据流。安全说明覆盖高置信度密钥脱敏、路径检查及摘要局限,但承认秘密检测不完整、命令分类只是启发式;材料没有明确的逐次确认机制或恢复流程,故未给满分。

可靠稳定11 / 14 · 3.9/5

CLI 对错误使用结构化错误类型和退出码,技能要求逐字引用命令结果;README、CLI 与安全说明对摘要用途和限制大体一致。CI 配置覆盖多系统与 Python 版本,但这是静态配置而非本次运行证据;安装依赖仍需获取 Python、Git 及安装工具,故依赖可用性与失败处理未获满分。

适用触发18 / 18 · 5.0/5

README 和技能明确面向跨聊天、模型和编码代理的上下文交接,列出 Claude Code、Codex、Cursor、通用 shell 及无 shell 的草稿路径,并清楚说明何时停止、降级或仅提供草稿。技能触发条件具体,环境能力由 doctor 区分,证据充分,给高分。

规范维护14 / 18 · 3.9/5

README 有目录、分平台安装步骤、创建与读取示例、安全章节和限制;Apache-2.0 元数据与许可证文件一致。版本为 0.1.0/alpha,但所给材料没有变更日志;贡献文件和 DCO 提及贡献流程,却未明确维护责任人或持续更新承诺,因此相关项扣分。

有效结果12 / 13 · 4.6/5

产品将模型语义与本地 Git、哈希和时间事实分开,生成可读且可验证的交接简报,命令输出易于引用;这直接回应重复解释和摘要幻觉问题。它仍依赖模型提取语义,README 承认多数条目可能只是推断,且安装需要克隆和 Python 环境,成本效益未给满分。

证据核验7 / 8 · 4.4/5

README 说明来源标签、确定性事实覆盖模型冲突、摘要校验和不能证明作者身份;CLI 展示 JSON 输出及具体命令行为,测试样本佐证适配器将转录标记为不可信并拒绝若干畸形输入。部分关键行为仅由文档声称,且给出的测试不能证明整个产品或本次运行结果,故交叉佐证为部分充分。

风险与缓解建议
  • SHA-256 摘要不验证作者身份;分享前应人工检查胶囊,因为秘密检测只覆盖高置信度模式。
  • 模型负责语义压缩,可能遗漏上下文;不要把推断内容当作已验证事实,且不要未经审阅运行胶囊中的命令。
证据充分度:低 评估于 2026年11月8日 审查版本 f690ae07b5b5
查看完整评分方法 →
你是这个项目的维护者?把 FARS 徽章加到 README

徽章显示当前的评审分数和结论,点击回到本页。重新评审后约一小时内更新。

FARS

[![FARS 评测](https://followagents.com/badge/portable-handoff.svg?lang=zh)](https://followagents.com/zh/agents/portable-handoff)
<a href="https://followagents.com/zh/agents/portable-handoff"><img src="https://followagents.com/badge/portable-handoff.svg?lang=zh" alt="FARS 评测"></a>

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.1.0-alpha 预发布
    发布说明摘录
    First public release. Portable Handoff compacts an AI coding session into one Markdown file: the active model writes the goal, decisions, corrections, and next action, and a local script writes the parts a model shouldn't be trusted to remember on its own: the current Git branch and commit, whether that commit was ever pushed anywhere, and file hashes. Every claim carries a label for where it came from and how much to trust it, and a claim marked verified requires a deterministic source, never just the model's word. Standard library only, no runtime dependencies, offline by default. No …
    在 GitHub 查看 ↗

常见问题

使用它需要付费账户、API 密钥或联网吗?
不需要。文档明确说明运行时不需要网络、账户、API 密钥、数据库或向量存储,也没有运行时第三方依赖。
它会执行 capsule 里记录的下一步命令吗?
不会。next_action.command 只会作为惰性的代码块显示,并标记为 read_only、review 或 dangerous。
capsule 被修改或仓库已经变化时会怎样?
load 会检查内嵌 JSON、SHA-256 摘要、说明与 JSON 的一致性,以及当前仓库与记录状态的差异。完整性检查失败的 capsule 会被拒绝而不是自动修复;陈旧程度会报告为 fresh、possibly_stale、stale、obsolete、unverified 或 missing。
Git 是硬性要求吗?
不是硬性要求,但缺少 Git 时 doctor 会将环境评为 degraded,仓库事实会记录为 unknown。
摘要能证明 capsule 是谁写的吗?
不能。它使用未加密钥的 SHA-256,只用于发现截断和意外编辑;任何能编辑 JSON 的人也可以重算摘要。
这页内容对你有帮助吗?
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。