Skip to main content

Agent soul transfer — export, absorb, and merge AI agent identities across machines

Project description

🚀 SoulPort — Agent Soul Transfer

.bm is the standard format for AI agent souls. The CLI is just the first consumer.

SoulPort defines a cross-framework standard for AI agent identities — memories, personality, skills, configuration. Export from one machine, absorb into another, watch for changes, rollback when needed.

Migration is the first use case. Evaluation (SoulArena), fusion, version control, and cross-framework interop are next.

Previously known as "BeiMingKungFu" (北冥神功). Renamed to SoulPort in v0.2.0.

Install

pip install soulport

Commands

# Core — transfer
soulport export                     # Export soul → .bm file
soulport absorb ./agent.bm         # Restore soul on a new machine
soulport merge a.bm b.bm -o out.bm # Merge multiple agent souls
soulport inspect ./agent.bm        # Preview package contents

# Diagnose
soulport doctor                     # Five-layer health check + score
soulport diff ./agent.bm           # Compare .bm vs current workspace

# Version control
soulport watch                      # Auto-backup daemon (6h default)
soulport watch --once               # Single snapshot for cron/scripts
soulport changelog                  # Show changes between snapshots
soulport rollback <hash>            # Restore to a previous snapshot

Soul Layers

Layer Files What it captures
🧠 Memory MEMORY.md, memory/*.md Long-term + daily memories
👤 Identity SOUL.md, IDENTITY.md, USER.md Personality, name, human context
⚙️ Config AGENTS.md, TOOLS.md, HEARTBEAT.md Behavior rules, tool notes, routines
🛠️ Skills skills/*/SKILL.md User-created workspace skills
🔧 System openclaw.json (sanitized) MCP servers, model config

Soul Lineage

Every snapshot records its parent's hash, forming a lineage chain:

snapshot-1: hash=d7fcf876..., parent=(root)
snapshot-2: hash=5a0ca89d..., parent=d7fcf876...
snapshot-3: hash=1be975f7..., parent=5a0ca89d...

Use soulport changelog to trace changes. Use soulport rollback <hash> to go back.

Security

  • API keys/tokens auto-redacted on export (__SOULPORT_REDACTED__)
  • Path traversal protection on absorb (resolve().relative_to())
  • tarfile filter='data' on merge/extract
  • inspect before absorb, --dry-run before rollback
  • Pre-rollback auto-backup (opt out with --no-backup)

File Format

.bm files are compressed archives (tar.gz) containing:

  • manifest.json — metadata, version, content hash, parent hash
  • workspace/ — agent workspace files
  • config/ — sanitized system configuration

Why .bm? Named after 北冥 (BěiMíng) — the mythical Northern Sea from Zhuangzi's "Wandering Beyond", where a fish transforms into a bird. A soul's form is free.

Supported Frameworks

  • OpenClaw (first-class support)
  • 🔜 Claude Desktop, Cursor, Windsurf via adapters

Links

License

MIT

Your agent's soul deserves to travel. 🚀

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

soulport-0.4.0.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

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

soulport-0.4.0-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file soulport-0.4.0.tar.gz.

File metadata

  • Download URL: soulport-0.4.0.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for soulport-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e17d307243bbd7b205903c96b525ccbdaf1d48731ebec7ee283142fae67e8f5a
MD5 9e124bdcdb4fbffe7cf9ff0c5a675679
BLAKE2b-256 758eecd0c3cb16dc7ac4146e7ce32aaa38bfbf8de85b26387a634a28f43a8169

See more details on using hashes here.

File details

Details for the file soulport-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: soulport-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 31.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for soulport-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 63c461d3b0d09cc6283fbaac6b71c178da42bf725fd8426925e7401b5e284015
MD5 950f8a0daadc392a6cc715abfeb85810
BLAKE2b-256 44942fff33be5078a3087d00ec4f01d5068f8314ba08899237c05490b4a9c3b9

See more details on using hashes here.

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