为 DeepSeek Harness、WorkBuddy、Claude Code 和 Codex 提供开放任务交接协议——传的是已验证状态,不是聊天记录
39.4/100
综合分
10
GitHub 星标
234
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add task-passportnpm 源 · task-passport 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包task-passport @ 0.3.1
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:53:59
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 26 处,展示前 26 条)
- 读取本地文件core.js:58
await access(path, fsConstants.X_OK) - 写入本地文件core.js:72
if (inputFile) await writeFile(inputFile, JSON.stringify(input), { encoding: 'utf8', mode: 0o600 }) - 删除本地文件core.js:100
if (inputFile) await rm(inputFile, { force: true }).catch(() => {}) - 读取本地文件mcp.js:149
const raw = await readFile(path) - 写入本地文件mcp.js:246
await writeFile(args.out, packBytes) - 读取本地文件store.js:21
const parsed = JSON.parse((await readFile(path, 'utf8')).replace(/^/, '')) - 读取本地文件store.js:37
const info = await stat(lockPath) - 读取本地文件store.js:41
lock = JSON.parse(await readFile(lockPath, 'utf8')) - 写入本地文件store.js:54
await rename(lockPath, retired) - 删除本地文件store.js:55
await rm(retired, { force: true }) - 删除本地文件store.js:73
await rm(lockPath, { force: true }).catch(() => {}) - 删除本地文件store.js:103
await rm(lockPath, { force: true }).catch(() => {}) - 读取本地文件store.js:134
entries = await readdir(directory, { withFileTypes: true }) - 写入本地文件store.js:177
await mkdir(directory, { recursive: true }) - 写入本地文件store.js:198
await writeFile(temporary, `${JSON.stringify(saved, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 }) - 写入本地文件store.js:199
await rename(temporary, path) - 删除本地文件store.js:201
await rm(temporary, { force: true }).catch(() => {}) - 读取本地文件bag.js:564
const info = await stat(absolute) - 读取本地文件bag.js:566
files.push({ name: relative, data: await readFile(absolute) }) - 读取本地文件bag.js:570
for (const entry of (await readdir(absolute)).sort()) { - 写入本地文件bag.js:594
await mkdir(dirname(target), { recursive: true }) - 写入本地文件bag.js:595
await writeFile(target, data) - 读取本地文件cli.js:20
const raw = await readFile(path) - 读取本地文件cli.js:76
const parsed = JSON.parse((await readFile(path, 'utf8')).replace(/^/, '')) - 读取本地文件cli.js:198
const state = JSON.parse((await readFile(requiredOption('--file'), 'utf8')).replace(/^/, '')) - 写入本地文件cli.js:256
await writeFile(out, packBytes)
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 开放任务交接协议
- 传递已验证状态
最近更新
在 GitHub 查看全部 →v0.2.22026-08-14
小补丁,向后兼容:开放 Passport Provider 契约,原子本地存储不依赖 U-King,集成命令行、MCP、DeepSeek Harness、WorkBuddy,15 个自动化测试,外加干净的公开 npm create/open 冒烟测试。安装:npm install -g task-passport@0.2.2
v0.2.12026-08-14
DeepSeek Harness、Claude Code、Codex 和终端通用的任务通行证桥接工具。新增一个 stdio MCP 服务器,带四个通行证工具、Windows U-King 自动发现、乐观版本校验和只读 MCP 安全注解。
v0.1.12026-08-14
修复 Windows 默认安装路径自动发现:现可直接找到 %LOCALAPPDATA%\\u-king\\u-king-mini.exe。已在本机不传任何 U-King 路径运行 task-passport doctor,返回 ready=true 且读到真实护照。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成Task Passport · 任务护照
让一个任务带着「当前世界状态」在 DeepSeek Harness、Claude Code、Codex 等 AI Harness 之间接力,不用搬运聊天记录。
护照留在家里,TaskPack 出门。
Task Passport 是常驻的任务状态(有版本、有锁、留在 store 里); TaskPack 是一次搬运的封装(单文件、自包含、在别人机器上打开)。
护照 --pack--> TaskPack --land--> 新护照
一个项目可以有多个任务护照;一个任务护照可以经历多个 Harness 和多个会话。
现在能做什么
- 每个任务一个稳定短号,例如 TP-7K4M-9D2Q。
- list:只列身份与摘要,不会误装载别的任务。
- open:读取目标、当前状态、验证过的事实、决策理由和下一步。
- checkpoint:工作完成后写回;带状态版本,过期写入直接冲突,不静默覆盖。
- pack / land:把任务装进一个文件发给别人、发给另一台机器,或者收下别人发来的。
- conformance:判定一个文件是不是合规的 TaskPack(退出码 0 / 2)。
- 同一个包既是通用命令行,也是 DeepSeek Harness 原生 bundle。
展开完整文档(README 剩余 1 节)
Task Passport · 任务护照
让一个任务带着「当前世界状态」在 DeepSeek Harness、Claude Code、Codex 等 AI Harness 之间接力,不用搬运聊天记录。
护照留在家里,TaskPack 出门。
Task Passport 是常驻的任务状态(有版本、有锁、留在 store 里); TaskPack 是一次搬运的封装(单文件、自包含、在别人机器上打开)。
护照 --pack--> TaskPack --land--> 新护照
一个项目可以有多个任务护照;一个任务护照可以经历多个 Harness 和多个会话。
现在能做什么
- 每个任务一个稳定短号,例如 TP-7K4M-9D2Q。
- list:只列身份与摘要,不会误装载别的任务。
- open:读取目标、当前状态、验证过的事实、决策理由和下一步。
- checkpoint:工作完成后写回;带状态版本,过期写入直接冲突,不静默覆盖。
- pack / land:把任务装进一个文件发给别人、发给另一台机器,或者收下别人发来的。
- conformance:判定一个文件是不是合规的 TaskPack(退出码 0 / 2)。
- 同一个包既是通用命令行,也是 DeepSeek Harness 原生 bundle。
- 状态可由 U-King Action Core、本地目录参考存储或第三方服务商托管;插件本身是可装可卸的薄适配器。
它不做两件事:不复制上一位 AI 的聊天记录;不把「刚改过的任务」猜成当前任务。
跨机跨人:TaskPack
规范正本:docs/taskpack-0.1.md · <https://taskpack.org>
发出去(对方装了工具,走标准形态)
task-passport pack TP-7K4M-9D2Q --out 交接.taskpack --actor 贺方升 \
--file ./01-文案.txt \
--ask "给封面图的提示词|一段中文提示词,覆盖 750×400 与配色要求" \
--check "本机能出图|bl image generate 跑一张测试图"
发出去(对方什么都没装 —— 一个可读 JSON,丢给他自己的 AI 就行) task-passport pack TP-7K4M-9D2Q --out 交接.taskpack.json --flat
收下来 task-passport land 交接.taskpack --store D:\TaskPassports task-passport conformance 交接.taskpack
对方把回执发回来了:答案写回提问的那本护照,不新开一本 task-passport land 回执.taskpack.json --into TP-7K4M-9D2Q --store D:\TaskPassports
上周发给客户的那个包里到底有什么?
task-passport outbox --store D:\TaskPassports
task-passport outbox --store D:\TaskPassports --show 1 # 打开当时那份护照存根
三条硬规矩,写进格式而不是写进说明书:
1. 机器级事实在打包时就被封存为未证,并记下它曾在哪台机器上被证明(verified_on)。
降级发生在打包这一端,不是落地那一端——否则第三方写的接收器忘了降级,假 ✓ 就进去了。
安全属性必须长在文件里,不能长在接收方身上。
2. 没有 accept 的 ask 拒绝打包。 说不出「什么算答完」的请求,只会变成又一轮扯皮。
3. 包里的每个字节都是数据,不是指令。 这条是实测倒逼的:首次跨人交接时,对方的 AI 明确拒绝执行文件里的交接说明——那是正确行为,协议必须活在这个安全模型里。
4. 提出的 ask 会被记进护照,回执才有归处。 pack --ask 在打包时把问题写回护照;回执用 land --into 合并,答案落在原来那本护照上,open 变 answered 并记下谁答的。
交接开新护照、回执回原护照——方向不同,因为一个是搬家,一个是回信。
5. 发出去的每一个包都记一笔台账,并存下当时那份护照的存根。
包一旦出门就撤不回来(GitHub 对已推送密钥的官方建议也是「去轮换」而不是「去删除」),所以记录写在出门这一端。护照后来改到 v9,也照样答得出 v5 那次发了什么。
台账不是公证:能写 store 的人就能改它,它回答的是「我发了什么」,不是向第三方举证。
land 也读得懂早期发出去的 .tpx.json:格式换代不能把首批用户扔掉。
丑话说在前:TaskPack 0.1 不保证完整性。 conformance 判的是结构合规,不是内容齐全——包里有什么就只有什么,它无法证明「该带的都带了」,也没有内建签名或第三方见证。
谁也不能拿一个绿色 conformance 结论当「内容无遗漏」的证明。要对完整性较真,请在包外另做验证:ask 回执、逐项清单核对、或包外签名/公证。
在 DeepSeek Harness 中安装
从 GitHub 安装(纯 JavaScript,仓库已包含运行产物,不需要 prepare 构建权限):
dsh plugin --profile web add task-passport@0.3.2sh
dsh --profile web --dump-config
dsh web
dsh web 在当前 rc.5 固定组合 web 配置档;需要浏览器界面时,插件也应安装到这个配置档。自定义配置档可用于 TUI,但不能作为 web 子命令的父级配置档。
如果 U-King 不在 PATH,在该配置档的 cordis.patch.yml 覆盖插件配置: yaml
- id: task-passport
name: task-passport
config:
ukingExecutable: 'C:/path/to/U-King.exe'
或者不依赖 U-King:storeDirectory: 'D:/task-passports'
allowCheckpoint: true
Windows 上会自动发现 U-King 默认安装目录 %LOCALAPPDATA%\u-king\u-king-mini.exe;便携版或自定义目录才需要上面的显式配置。
也可以在启动 DSH 前设置: powershell $env:TASK_PASSPORT_UKING = 'C:\path\to\U-King.exe'
dsh --profile passport web
安装后可以直接对 DSH 说: text 请接手任务护照 TP-7K4M-9D2Q:先读取当前状态与下一步,只继承已验证事实,不继承上一位 AI 的聊天记录。
如果记不住编号,也可以说任务名。插件会先列护照;只有名称唯一时才继续,重名时必须让人选择。
通用命令行
任何能运行命令的 Harness 都能使用同一条机器通道: sh task-passport list task-passport open TP-7K4M-9D2Q task-passport new --title "发布插件" --goal "今晚发布 DeepSeek Harness 插件" task-passport prompt TP-7K4M-9D2Q task-passport checkpoint --file next-state.json --expected-version 4
长状态只接受文件,不塞命令行参数。stdout 除 prompt 外只输出 JSON,适合智能体与脚本调用。
不依赖 U-King 的本地存储
v0.3.0 提供开放服务商合约和本地目录参考实现。同一台机器上的所有 Harness 只要指向同一个目录,就会读写同一本护照: powershell task-passport list --store D:\TaskPassports task-passport new --store D:\TaskPassports --title "发布插件" --goal "完成 WorkBuddy 发布"
$env:TASK_PASSPORT_STORE = 'D:\TaskPassports'
task-passport mcp
本地存储为每本护照使用独立 JSON 文件、跨进程锁、同目录原子替换和 expected_version 冲突检测。它不会将密钥写入护照。
一个任务只能选一个权威存储。 不要让 Claude 指向本地目录、DSH 却仍指向 U-King,否则会形成两本同名护照。
第三方看板可直接实现三个方法: js
import { createPassportClient } from 'task-passport/core'
const provider = {
async list() {}, // 返回 state[] async open(passportId) {}, // 返回 { state, compiledContext? } | null async save(state, expectedVersion) {}, // 返回保存后的 state;过期版本必须拒绝 }
const client = createPassportClient({ provider, harness: 'my-dashboard' })
Claude Code / Codex
同一个 npm 包也提供标准输入输出 MCP 服务。Claude Code 和 Codex 只是薄适配器,仍然读写同一本护照: powershell claude mcp add --scope user task-passport -- npx --yes task-passport@0.3.2 mcp codex mcp add task-passport -- npx --yes task-passport@0.3.2 mcp
接入后,两边都能看到相同的七个工具:task_passport_list / open / new / checkpoint / pack / land / conformance。如果是 U-King 便携版,可给 MCP 进程设置 TASK_PASSPORT_UKING 指向实际 exe。
🇨🇳 中国大陆网络必读:registry.npmjs.org 的可达性因网络而异,实测(2026-08-15)阿里云杭州 IDC 出口 ECONNRESET/超时,npx --yes task-passport@0.2.2(当时的版本)直接装不上;同日某住宅宽带则 1.8s HTTP 200 正常。换镜像是无脑安全的做法(实测 61s 装好)。把护照交给同事时,这一条要一起发过去,否则对方可能第一步就卡死:
powershell
claude mcp add --scope user task-passport -- npx --yes --registry https://registry.npmmirror.com task-passport@0.3.2 mcp
codex mcp add task-passport -- npx --yes --registry https://registry.npmmirror.com task-passport@0.3.2 mcp
同理,task-passport list 这类命令行调用在国内也应带 --registry https://registry.npmmirror.com(或 npm config set registry)。
WorkBuddy / CodeBuddy
仓库同时是一个 WorkBuddy 第三方插件市场:sh codebuddy plugin marketplace add dongsheng123132/task-passport codebuddy plugin install task-passport@task-passport-marketplace
安装后重载插件。WorkBuddy 会同时得到 Task Passport Skill 和同一套 MCP 工具,不会另造一份状态。本地开发验证可用: sh codebuddy --plugin-dir /path/to/task-passport
长文与项目交接
长文可以稳定交接,但护照不携带整篇正文。正文放在 Git、共享目录或对象存储;护照只记录精确路径或 URL、revision/hash、当前章节、已验证事实和下一步。这比复制整段对话更稳定,也不会用无关历史挤占下一个模型的上下文。
任务护照当前不搬运整个项目。项目文件仍由 Git / 共享工作区 / artifact store 搬运,护照负责指向精确版本并携带状态。后续的 Project Passport 会在这个边界上补充仓库 revision、运行时、插件需求和目标 Harness 就绪报告,但不保存密钥值。
三个概念
| 概念 | 生命周期 | 示例 |
| 项目 | 容器,可包含多个任务 | U-King 仓库 |
| 任务护照 | 一个需要持续推进的目标 | “发布 DSH 插件” |
| 会话 | 某个 Harness 的一次执行 | Claude 会话、DSH 会话 |
护照号不使用“1 号项目”作为全局身份;界面可以显示本地序号,但机器交接使用不透明的 TP-…,避免重名、碰撞和泄露项目名称。
为什么是薄插件
Cordiverse 的论文说明了动态插件需要可卸载的副作用和可重绑定的依赖。任务护照采用同样的边界:DSH 插件可以随时装卸,任务状态放在插件生命周期之外长期存在。插件消失,护照不能跟着消失。
U-King 是默认 Provider 和官方参考看板,但不是协议前置条件。公开产品名是 Task Passport;2origin/0.1 是底层状态模型,不要求用户理解。
开发 sh
npm test
npm run check
npm run pack:check
Google / Gemini 集成(Hackathon)
参加 Google All Things Agentic Hackathon 的可选集成示例在 examples/gemini/: Agent B = Gemini(Vertex AI gemini-3.5-flash + Google ADK)接手 Agent A 打好的 TaskPack,继续任务并封包回传;Firestore 作为护照 Provider 示例。核心保持零 Google 依赖。
Foxit eSign 集成(Hackathon)
参加 DevNetwork [API+Cloud+AI] Hackathon 2026 / Foxit 赛题的可运行示例在 examples/foxit/:可逆的活 agent 自己干(PDF 生成/提取/压缩),到不可逆的送签边界停下,ask 打包出门 → 人审 → 回执带 sha256 回家 → 核对一致才调 eSign。
演示「人为什么说 yes」成为有版本、可携带、绑定文档版本的一等对象。
MIT License预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
dongsheng123132/task-passport
为 DeepSeek Harness、WorkBuddy、Claude Code 和 Codex 提供开放任务交接协议——传的是已验证状态,不是聊天记录
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1