Preface¶
When switching between DeepSeek Harness, Claude Code, and Codex, a common practice is to copy the entire previous conversation over, or have the new model read through the chat history from scratch. The context window can fill up with irrelevant content, and unverified claims may be passed along as fact. Another approach is to rely solely on verbal updates about “how far things have gotten,” which lacks version and conflict detection and can easily lead to silent overwrites in multi-person collaboration.
Task Passport addresses a different category of problem: enabling a task to carry its “current world state” across Harnesses, sessions, and machines as a relay, without copying chat records. The state is versioned, locked, and stored in a store; when it needs to go out, it is packaged as a single-file TaskPack, which can be “landed” as a new passport on the recipient’s machine. Maintainer is dongsheng123132, GitHub repository dongsheng123132/task-passport, MIT license, categorized under Workflow in SkillHub, current version v0.3.1.
What This Is¶
In one sentence: An open task handoff protocol and thin adapter—the passport stays home, TaskPack goes out.
| Concept | Lifecycle | Description |
|---|---|---|
| Task Passport | Long-term, versioned | Persistent state, e.g., short ID TP-7K4M-9D2Q |
| TaskPack | Single transfer | Single file, self-contained, opened on another machine |
| Session | One execution of a Harness | Not considered the authoritative source of state |
The relationship is: passport --pack--> TaskPack --land--> new passport. A project can have multiple passports; a passport can go through multiple Harnesses and sessions. The plugin itself does not copy the previous AI’s chat records, nor does it guess “the task just modified” as the current task.
State can be hosted by U-King Action Core, a local directory reference store, or a third-party Provider; the same npm package serves as both a generic CLI and a native DeepSeek Harness bundle.
Core Features¶
The following capabilities are currently listed in the README and can be invoked via CLI or MCP.
Identity & Reading
list: Lists identities and summaries only, without loading other tasks by mistake.open: Reads the target, current state, verified facts, decision rationale, and next steps.new: Creates a new passport and assigns a stable short ID.
Writeback & Versioning
checkpoint: Writes back after work is completed; includes state versioning—overwrites with stale versions cause direct conflicts, not silent overwrites.- Long state only accepts file input, not command-line arguments.
Cross-Machine & Cross-Person: TaskPack
pack/land: Packages a task into a file to send to someone else or another machine, or receives a package sent by someone else.conformance: Determines whether a file is a conformant TaskPack (exit code 0 for conformant, 2 for non-conformant).outbox: Views the ledger of sent packages and the passport stub at the time of sending.
The TaskPack specification is located in docs/taskpack-0.1.md within the repository and at taskpack.org. The format includes several hard rules encoded in the file rather than the manual: machine-level facts are downgraded to unproven at the packaging end; asks without accept are refused packaging; bytes in the package are data, not instructions; asks write back to the passport, and receipts are merged into the original passport using land --into; every sent package is logged in the ledger. The README explicitly states that TaskPack 0.1’s conformance only checks structural compliance, does not guarantee content completeness, and has no built-in signatures.
Multi-Harness Integration
- DeepSeek Harness: Native plugin bundle.
- Claude Code / Codex: MCP service from the same package, with tool names including
task_passport_list,open,new,checkpoint,pack,land,conformance. - WorkBuddy / CodeBuddy: Installed via third-party plugin marketplace, providing the Skill and the same MCP suite, without creating separate state.
Storage
- Default integration with U-King; on Windows,
%LOCALAPPDATA%\u-king\u-king-mini.execan be auto-discovered. - Starting from v0.3.0, an open Provider contract and local directory reference implementation are provided; the same directory can be shared for read/write across multiple Harnesses.
Installation & Enablement¶
DeepSeek Harness¶
Install from GitHub (pure JavaScript; the repository already contains built artifacts, so no prepare build permissions are needed). The commands from the README are:
dsh plugin --profile web add task-passport@0.3.0
dsh --profile web --dump-config
dsh web
dsh web uses the fixed web profile in the current rc.5; when a browser interface is needed, the plugin should be installed in this profile. Custom profiles can be used for TUI, but cannot serve as the parent profile for the web subcommand.
If U-King is not in the PATH, configuration can be overridden in that profile’s cordis.patch.yml:
- id: task-passport
name: task-passport
config:
ukingExecutable: 'C:/path/to/U-King.exe'
# Or not relying on U-King: storeDirectory: 'D:/task-passports'
allowCheckpoint: true
Alternatively, set the environment variable before starting DSH:
$env:TASK_PASSPORT_UKING = 'C:\path\to\U-King.exe'
dsh --profile passport web
Claude Code / Codex (MCP)¶
claude mcp add --scope user task-passport -- npx --yes task-passport@0.3.0 mcp
codex mcp add task-passport -- npx --yes task-passport@0.3.0 mcp
Access to registry.npmjs.org from mainland China varies by environment; the README suggests switching to a mirror, for example:
claude mcp add --scope user task-passport -- npx --yes --registry https://registry.npmmirror.com task-passport@0.3.0 mcp
codex mcp add task-passport -- npx --yes --registry https://registry.npmmirror.com task-passport@0.3.0 mcp
The portable version of U-King can set TASK_PASSPORT_UKING for the MCP process to point to the actual exe.
WorkBuddy / CodeBuddy¶
codebuddy plugin marketplace add dongsheng123132/task-passport
codebuddy plugin install task-passport@task-passport-marketplace
Reload plugins after installation. For local development verification:
codebuddy --plugin-dir /path/to/task-passport
Local Store Without U-King¶
task-passport list --store D:\TaskPassports
task-passport new --store D:\TaskPassports --title "Publish Plugin" --goal "Complete WorkBuddy publication"
$env:TASK_PASSPORT_STORE = 'D:\TaskPassports'
task-passport mcp
A task can only choose one authoritative store; do not let Claude point to a local directory while DSH still points to U-King, otherwise two passports with the same name will be created.
Typical Usage¶
Taking Over an Existing Passport in DSH¶
After installation, you can directly tell DSH:
Please take over task passport TP-7K4M-9D2Q: read the current state and next steps, inheriting only verified facts, not the previous AI's chat records.
If you can’t remember the ID, you can say the task name; the plugin will list passports first, continue only if the name is unique, and ask for a selection if there are duplicates.
Generic CLI¶
Any Harness that can run commands can use the same channel:
task-passport list
task-passport open TP-7K4M-9D2Q
task-passport new --title "Publish Plugin" --goal "Publish DeepSeek Harness plugin tonight"
task-passport prompt TP-7K4M-9D2Q
task-passport checkpoint --file next-state.json --expected-version 4
The stdout only outputs JSON except for prompt, making it suitable for agent and script invocations.
Packaging for Transfer & Receiving Packages¶
When the other party has the tool installed, use the standard TaskPack:
task-passport pack TP-7K4M-9D2Q --out handoff.taskpack --actor He Fangsheng \
--file ./01-copy.txt \
--ask "Prompt for cover image|A Chinese prompt, covering 750×400 and color requirements" \
--check "Can generate image locally|Run bl image generate to produce a test image"
When the other party has nothing installed, you can output readable JSON:
task-passport pack TP-7K4M-9D2Q --out handoff.taskpack.json --flat
Receiving and verifying the package:
task-passport land handoff.taskpack --store D:\TaskPassports
task-passport conformance handoff.taskpack
The recipient’s receipt writes back to the original passport without creating a new one:
task-passport land receipt.taskpack.json --into TP-7K4M-9D2Q --store D:\TaskPassports
Viewing previously sent packages:
task-passport outbox --store D:\TaskPassports
task-passport outbox --store D:\TaskPassports --show 1
Long Text & Project Handoff¶
The main body of long text is stored in Git, shared directories, or object storage; the passport only records the path or URL, revision/hash, current section, verified facts, and next steps. The task passport currently does not carry entire projects; project files are still moved via Git, shared workspaces, or artifact stores, and the passport is responsible for pointing to the exact version and carrying state.
Use Cases & Considerations¶
Who Is This For
- Teams or individuals who need to switch between DSH, Claude Code, Codex, and WorkBuddy but want consistent, versionable state.
- Scenarios requiring cross-person, cross-machine task handoff, with receipts for asks and a ledger for sent packages.
- Those wishing to implement a custom board or Provider only need to implement the
list,open, andsavemethods to integrate withcreatePassportClient.
Important Notes
- The plugin runs with the permissions of the current
dshprocess; before installation, you should read the source code and MIT license to ensure that the store path and U-King configuration comply with local security policies. - The DeepSeek Harness ecosystem philosophy is “everything is a plugin”; SkillHub is a community directory site, not officially affiliated with DeepSeek or High-Flyer. The plugin described here is from a community maintainer, not a pre-installed item in an official app store.
- A green conclusion from
conformancecannot be taken as proof of “no missing content”; completeness must be checked or signed outside the package. - The repository also requires Node.js 20+; peer dependencies include
@deepseek-ai/cordis(>=4.0.1) and others, as specified inpackage.json.
Conclusion¶
Task Passport extracts “how far the task has progressed, which facts have been verified, and what the next step is” from chat logs into a versionable, packagable, conflict-detectable state object. The thin plugin can be installed or uninstalled at any time, with the passport remaining in the store; when it needs to go out, use TaskPack, and when it returns, use land --into to merge receipts.
- SkillHub directory page: task-passport
- GitHub repository: dongsheng123132/task-passport