Skip to main content

AIM — Agent Identity Migration

tests Python 3.10+ License: MIT age-compatible vault

Install: pipx install aim-migrate (or pip install aim-migrate) — then aim export / aim import. 100% local, no account, no telemetry.

What AIM does

"Samsung Smart Switch" for AI agents: migrate a stateful agent's persona, memories, skills, cron jobs, config, and MCP bindings between harnesses (Hermes ↔ OpenClaw ↔ Claude Code ↔ Codex CLI ↔ OpenCode ↔ Goose ↔ Buzz ↔ Grok Build ↔ DeepSeek Harness ↔ Roo Code) and operating systems (Linux, WSL2, macOS, Windows).

Uses a neutral Canonical Intermediate Format (.aim zip bundle) so migration is N adapters, not N² point-to-point converters. Design spec: see docs/SPEC.md (v2, Opus-reviewed).

Quick start (dev, zero-install)

cd ~/projects/aim
export PYTHONPATH=src

# Export the live Hermes agent (redaction gate blocks if secrets detected)
python3 -m aim.cli export --harness hermes --home ~/.hermes -o agent.aim

# Preview what lands where before writing anything
python3 -m aim.cli plan agent.aim --harness openclaw

# Import into another harness home (transactional: backup + atomic swap)
OPENCLAW_HOME=/path/to/.openclaw python3 -m aim.cli import agent.aim \
    --harness openclaw --force --map /home/hal=/Users/rory

python3 -m aim.cli list agent.aim
python3 -m aim.cli adapters list

Requires: python3 with click pydantic pyyaml cryptography pytest.

Adapters

Harness Persona Memory Skills Config MCP Cron
Hermes SOUL.md memories/ skills/ yaml ✓ ✓
OpenClaw personality memory store skills json ✓ ✓
Claude Code CLAUDE.md projects/*/memory skills/ — .claude.json park
Codex CLI AGENTS.md — skills/ + .agents/skills config.toml — park
OpenCode AGENTS.md — skills/ opencode.json — park
Goose AGENTS.md sessions (opt-in) skills/ config.yaml extensions park
Buzz personas/ relay-side (opt-in) skills/ agents/*.yaml dev-mcp workflows
Grok Build AGENTS.md — skills/ settings.json — park
DeepSeek Harness AGENTS.md sessions (opt-in, opaque) skills/ + .agents/skills settings.yaml + patch layers plugins park
Roo Code default-mode roleDefinition rules/ skills/ cli-settings.json mcp_settings.json park

Testing

  • pytest tests/ — 31 unit/round-trip tests
  • CI matrix: ubuntu + macOS + Windows on every push
  • tests/e2e/container_test.sh — fully isolated Docker E2E (repo read-only, throwaway workdir, --network none): secrets leak check, wrong-passphrase rejection, cross-harness imports, full suite

Guarantees

  • Integrity: every file sha256-hashed in manifest; import refuses on any mismatch
  • Secrets: gitleaks-style redaction scan at export; export fails on secret-like spans unless --allow-unredacted. Optional --with-secrets builds an encrypted vault (age-style scrypt + ChaCha20-Poly1305) inside the bundle; import --passphrase restores values byte-exact
  • Transactionality: staged copy → validate → atomic rename; 0600 backup; refuses if target harness process is running (override --force)
  • Lossless-first: skills copy verbatim (mode bits preserved); unsupportable items (e.g. cron jobs into Claude Code) are parked to unsupported/, never dropped silently
  • Cross-OS paths: --map src=dst rewrites path references; all rewrites logged

Status (v0.1, 2026-10-14)

  • ✅ Hermes ↔ OpenClaw + Claude Code, Linux — 15/15 tests, live-agent E2E verified
  • 🔜 v1.1: age-encrypted secrets vault, native Windows, real-OpenClaw layout verification
  • 🔜 v2: Codex/Kilo adapters, container cross-OS test matrix

Known-history bugs (kept for the record)

  • def list() in cli.py shadowed builtin list → list(maps) executed the aim list click command (fixed, regression test in tests/test_roundtrip.py)

Metadata

Release files for aim-migrate 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aim-migrate 0.6.1
File Size Uploaded Provenance Actions
aim_migrate-0.6.1.tar.gz 2.1 MB With provenance Details for aim_migrate-0.6.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aim-migrate 0.6.1
File Interpreter ABI Platform Actions
aim_migrate-0.6.1-py3-none-any.whl Python 3 none any Details for aim_migrate-0.6.1-py3-none-any.whl

Total release size: 2.1 MB

Release files / aim_migrate-0.6.1.tar.gz

Download URL aim_migrate-0.6.1.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
053a1e9262c6c6b27a8a2140c1ca7e8320ac9a6fa3bc442ed8eec104450bbbfd
BLAKE2b-256 checksum
How to use checksums
c1c17dc1d99973d17f2a5b59cd73f10a42e4a44b9a7f21fa6beed87fbbd6f570
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Release files / aim_migrate-0.6.1-py3-none-any.whl

Download URL aim_migrate-0.6.1-py3-none-any.whl
Size 39.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1712ebdafd6c6e867bf1a05e5ccc13834b880f4ce9f6f4f31ea17d308c969666
BLAKE2b-256 checksum
How to use checksums
4d352b35e8b450307298c4467a4005cc446f717e7e44455155f4118aecad96f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

Security for aim-migrate 0.6.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aim_migrate-0.6.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page