Skip to main content

Offline, local-only portable resume skills across coding agents

Project description

portable-resume-skills

portable-resume-skills: offline local-only context migration across eight coding agents through sealed skill packages

Offline, local-only context migration · 8 sources × 8 hosts · inert handoff, not live restore

English · 繁體中文 · 简体中文 · 日本語 · 한국어 · Español · Português · Français · Deutsch · Русский · العربية · हिन्दी · All languages

Clean-room-oriented Agent Skills for migrating bounded local coding-agent context into a fresh session. Readers never invoke the source agent CLI and never add a network path; recovered text is marked untrusted and stale.

Current release candidate: 0.3.2 · 64/64 packaging cells · 64/64 installed-runner cells · 7/7 native local plugin/extension installs verified · 8/8 host-native headless Skill invocations verified. Visual picker interaction and public marketplace listings remain separate not-run claims.

Sources and destinations

Resume skill Source store family
resume-claude Claude Code projects JSONL
resume-codex Codex SQLite / rollout JSONL
resume-cursor Cursor CLI chats / Desktop vscdb
resume-opencode OpenCode SQLite / file store
resume-antigravity Antigravity transcript JSONL
resume-grok Grok Build session updates JSONL
resume-qwen Qwen Code chat JSONL, including archived chats
resume-kimi Current Kimi Code wire JSONL + legacy Kimi CLI context JSONL

Destination profiles: Claude Code, Codex, Cursor, OpenCode, Antigravity, Grok Build, Qwen Code, and current Kimi Code CLI.

Requirements

  • Python 3.11+; CI covers 3.11–3.14 on Ubuntu and macOS.
  • Product runtime is stdlib-only.
  • Optional trusted zstd binary for compressed Codex rollouts.

Quick start

Install the published package, then install every destination profile into its user-global Skill root:

pipx install portable-resume
install-resume-skills quick-install all

From a source checkout, use pipx install . instead. To install only one host or one project:

install-resume-skills quick-install qwen
install-resume-skills quick-install qwen --project "$PWD"

The lower-level transactional command remains available for previews, custom roots, verification, and uninstall:

# Inspect capabilities and the 8×8 matrix
PYTHONPATH=src python3 scripts/portable-resume self-check --json
PYTHONPATH=src python3 scripts/install-resume-skills matrix --json
PYTHONPATH=src python3 scripts/install-resume-skills hosts

# Read a synthetic Claude fixture
PYTHONPATH=src python3 scripts/portable-resume claude show latest \
  --cwd /workspace/project \
  --source-root tests/fixtures/claude/s-cla-01-ordered-parent-chain/root \
  --format handoff

# Preview, install, verify, and uninstall one destination
PYTHONPATH=src python3 scripts/install-resume-skills install \
  --host qwen --scope project --project "$PWD" --dry-run --json
PYTHONPATH=src python3 scripts/install-resume-skills install \
  --host qwen --scope project --project "$PWD" --json
PYTHONPATH=src python3 scripts/install-resume-skills verify \
  --host qwen --scope project --project "$PWD" --json

Full roots, activation grammar, direct archives, and marketplace/plugin routes are in docs/install-hosts.md. Release assets are generated with:

python3 scripts/build_host_packages.py --output-dir host-packages

This produces eight direct-skill ZIPs plus supported Claude, Codex, Cursor, Antigravity, Grok, Qwen, and Kimi plugin/marketplace bundles. OpenCode remains a direct Skill install because its plugin surface is executable JavaScript/TypeScript rather than a Skill bundle.

Skill contract

python3 <skill>/scripts/run_reader.py show latest --cwd "$PWD" --json
python3 <skill>/scripts/run_reader.py show <session-id|path|text> --cwd "$PWD" --json
python3 <skill>/scripts/run_reader.py list --cwd "$PWD" --json

Activate resume-<source> using the host's documented grammar, run only the installed reader, and summarize its inert output after re-checking the repository. portable-resume/request-v1 files remain an optional advanced interface.

Safety invariants

  • Source stores are immutable; stable no-follow reads fail closed on races.
  • Source CLIs are never invoked.
  • Recovered text is inert/untrusted and only best-effort redacted.
  • Installer paths are contained under the selected skill root.
  • Non-owned collisions require --force-with-backup; multi-root installs compensate on failure.
  • Shared physical roots with divergent host renders fail before mutation.

Tests and CI/CD

Run all required local gates:

python3 scripts/self_verify.py
python3 scripts/check_secrets.py
PYTHONPATH=src python3 -m unittest discover -s tests -q
PYTHONPATH=src python3 scripts/smoke_installed_matrix.py

.github/workflows/ci.yml runs those gates across Ubuntu/macOS and Python 3.11–3.14, then builds and smoke-installs the exact wheel and sdist. .github/workflows/release.yml accepts only annotated vMAJOR.MINOR.PATCH tags reachable from main, re-runs dual-OS gates, builds release bytes once, tests those exact bytes, creates SHA-256 checksums and GitHub attestations, stages a GitHub Release, and publishes through PyPI Trusted Publishing.

Release candidate v0.3.2 also verifies the GitHub Release layout itself: every SHA256SUMS entry is a flat asset basename, and both Ubuntu and macOS validate a simulated flat download before publication. After publication, the immutable run, commit, GitHub Release, and PyPI evidence will be archived in docs/evidence-summary.md.

Key documentation

License and limitations

Apache-2.0. This project is not affiliated with the host vendors. Do not copy ~/.grok/bundled/skills/** into this tree.

Headless slash/name activation is verified on all eight hosts. Visual picker interaction and public marketplace publication remain not-run; Cursor's full bubble graph is not claimed; redaction is not complete DLP.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portable_resume-0.3.2.tar.gz (119.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portable_resume-0.3.2-py3-none-any.whl (139.2 kB view details)

Uploaded Python 3

File details

Details for the file portable_resume-0.3.2.tar.gz.

File metadata

  • Download URL: portable_resume-0.3.2.tar.gz
  • Upload date:
  • Size: 119.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for portable_resume-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ec7ed14bd4ca59bc1e2c4dc7d9ab0c98f46ecaf106104c1fd2b4d00c0ba9f256
MD5 9cc9a7d7f5746174d5fe3b2c5c6c0c52
BLAKE2b-256 856658c0762e0cdb6f9129ec765c08807ede15fd03afc1089152c08312972ddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for portable_resume-0.3.2.tar.gz:

Publisher: release.yml on ImL1s/resume-skills

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file portable_resume-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: portable_resume-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 139.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for portable_resume-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 299f57415955d705e7124c735417f3a2e4525c30d35b4df6b4e499575851c510
MD5 b9948447c20ae9d48a7a199652031060
BLAKE2b-256 6c8d97d0ab79ce0b0ad1ddf8cf47f2c8365fd6882f98e0c09b7fac97515c3a7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for portable_resume-0.3.2-py3-none-any.whl:

Publisher: release.yml on ImL1s/resume-skills

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page