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.exe can 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, and save methods to integrate with createPassportClient.

Important Notes

  • The plugin runs with the permissions of the current dsh process; 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 conformance cannot 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 in package.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.