Skip to content
ClintMoodyPublic

About

No description, website, or topics provided.

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

55 Commits

Folders and files

Repository files navigation

Talaria — moves your Hermes agent to a new computer

Platforms Python 3.9+ Zero dependencies 272 tests MIT

Pack your whole Hermes Agent into one file. Move it to any computer. Unpack it there — verified, with an undo button.

Soul · memories · skills (including the ones the agent wrote itself) · scheduled jobs · conversations · pairings · settings.
Community tool. Not affiliated with Nous Research.


   the old computer                                       the new computer
  ┌──────────────────┐         one portable file         ┌──────────────────┐
  │   $ talaria      │  ───►  hermes-atlas-2026-08.   ──► │   $ talaria      │
  │   pack wizard    │            hermespack              │   apply wizard   │
  └──────────────────┘                                    └──────────────────┘
   read-only, untouched                                   staged · backed-up · verified · undoable
Review — what travels Preflight — who does what
Pack: everything portable, pre-selected — with sizes, provenance, and what won't travel. Apply: every check grouped by who acts — ready, we'll-fix, needs-you, can't-come-along.
Keys — checklist or vault Finish — checklist and undo
Your one decision: keys stay on a checklist, or travel in an encrypted vault. Done: verified counts, paste-in keys, re-pair cards, and one-click undo.

The three promises

Enforced by the test suite, printed on every data-touching screen.

  1. Nothing on the old computer is changed or deleted. Capture is strictly read-only.
  2. Anything changed on the new computer can be undone. Apply is transactional — safety copy first, journaled, verified, talaria rollback any time.
  3. Anything that can't move automatically goes on your checklist. Nothing silently vanishes.

Quick start

pipx install "git+https://github.com/ClintMoody/Talaria@v1.2.0"
talaria                                 # opens the wizard in your browser

Zero dependencies — the core is pure Python 3.9+ standard library, so it runs on a fresh machine before Hermes is even installed there.

Not on PyPI yet, so pipx install talaria-hermes does not work: the project is not uploaded, and the name talaria on PyPI belongs to an unrelated Django CMS. Until the first upload, install from the repo with the command above (pin a tag for a stable version). Or carry the single self-contained file, which needs no install at all:

python3 talaria.pyz                      # ~430 KiB, runs on any Python
Sixty seconds, on the command line
# Old machine — pack (2 questions, Enter accepts both):
talaria pack
#  → hermes-atlas-2026-08-15.hermespack   + a keys checklist (HTML)

# New machine — apply:
talaria apply hermes-atlas-2026-08-15.hermespack
#  → preflight verdicts → safety copy → move in → verify → finish checklist

# Not happy? Any time until you trust it:
talaria rollback

Full capability parity between the GUI and CLI — --json everywhere, --dry-run on everything that writes. Most Hermes installs live on a $5 VPS; Talaria is built for SSH.

Why it's not just a zip

Talaria doesn't copy a folder — it understands the install, because it was built from a deep reading of the Hermes source (research notes).

🧬 Stock vs. yours Hermes edits its own skills. Talaria tags every skill — stock-pristine, stock-modified (with per-file diffs), hub, org, agent-created, user-created — using Hermes' own provenance data. Config and SOUL.md are diffed against the shipped defaults.
🧩 Dependency verdicts per target OS Every cron job, skill, MCP server, and provider is checked for what it needs. bash on Windows? Marked impossible before you move — fully offline against a declared --target-os.
🔐 Secrets never travel in plaintext ~40 kinds of keys stay OUT of the bundle by default — you get a checklist with provider links and paste-back on the new machine. Opt-in vault (scrypt · AES-256-GCM) if you want them to travel.
🧱 Machine-bound intelligence Gateway state, device-linked WhatsApp/Signal sessions, locks, PIDs — excluded on both sides (even a hostile bundle can't plant them), with one-minute re-pair cards instead.
⏰ Cron migrated correctly Runtime claims scrubbed, interval anchoring preserved, monitor baselines carried, context_from chains kept together, timezone shifts flagged with the exact consequence.
💾 Live databases stay intact SQLite stores are snapshotted WAL-consistently and integrity-checked — never file-copied hot.
♻️ Transactional apply Write-ahead journal, per-file backups, hash-verified placement, automatic rollback. A power loss mid-apply leaves a machine that restores to byte-identical pre-apply state — tested by killing the process mid-flight.
📄 Reports that stand alone A System Overview of everything your install is and touches, and a Migration Report of everything that happened — self-contained HTML, redacted by default, printable.
🧭 The agent helps, never decides talaria deepscan hands your Hermes a skill to report what it touches day-to-day (names, never values); ingest verifies every claim, refuses sensitive paths, and can only suggest additions you approve.

Put the other tool to shame

Every row traces to a documented weakness of the other Hermes migration tool (teardown) and a requirement our tests enforce.

Hermes-Agent-Converter Talaria
Platforms Linux/WSL ↔ macOS only Linux · macOS · Windows · WSL · Termux
GUI tkinter (often missing) localhost web app, zero deps + full CLI
Understands files ❌ blind tree copy ✅ typed catalog, why for every path
Stock vs. modified skills ❌ ✅ six provenance tags + diffs
Dependency checks ❌ ✅ per-target-OS, offline capable
Secrets ❌ plaintext in the zip ✅ excluded + checklist, or encrypted vault
Machine-bound state ❌ copied (breaks gateway) ✅ excluded both sides + re-pair cards
Live databases ❌ raw copy (WAL corruption) ✅ snapshot + integrity check
Path rewriting ❌ blanket regex over code ✅ structural, per-format, previewable
Apply ❌ extract over live install ✅ transactional, journaled, auto-rollback
Zip-slip / bombs ❌ broken prefix guard ✅ full hardening + adversarial tests
Verification ❌ none ✅ per-file hashes + health checks
Tests ❌ none ✅ 283 (unit, integration, crash-injection, GUI, browser, adversarial)

How this differs from Hermes' own backup

Hermes now ships migration tools of its own, so be clear about what you'd be choosing between. Verified against Hermes v0.22.5:

hermes backup / import hermes profile export / import Talaria
Scope whole install, excludes hermes-agent one profile whole install + profiles
Restores onto a different machine same-machine backup/restore ✅ ✅
Cross-OS (Windows, Termux, WSL) ⚠️ no rewrite ⚠️ no rewrite ✅ structural rewrite
Verification SQLite integrity only ❌ none ✅ per-file SHA-256 + health checks
Rollback / undo ❌ ❌ ✅ journaled, auto-rollback
Knows what it's carrying ❌ zip of files ❌ copy of dirs ✅ typed catalog, why per path
Dependency verdicts per target OS ❌ ❌ ✅ offline capable
Secrets ❌ included in the zip redacted, excluded ✅ excluded + checklist, or vault

hermes backup is the right tool for a same-machine snapshot and is faster for that. Use Talaria when the destination is a different machine, a different OS, or a machine whose Hermes version differs — and when you want to know what moved, and to be able to undo it.

Prefer the terminal?

talaria gui is optional. The full surface is on the command line, with --json everywhere:

talaria                 wizard (auto-detects direction)
talaria scan            typed inventory of the install
talaria diff            stock-vs-yours: skills | config | checkout
talaria deps            dependency verdicts (--target-os, --live)
talaria pack            build the bundle (+ keys checklist)
talaria inspect         look inside a bundle (--verify --deps --salvage …)
talaria preflight       check THIS machine against a bundle
talaria apply           transactional restore (--dry-run, --only/--skip)
talaria verify          re-verify; --watch for the heartbeat
talaria rollback        undo the last apply
talaria report          System Overview (html / md / json)
talaria why PATH        what is this file, does it travel, and why
talaria deepscan        agent-assisted discovery (generate | ingest)

Docs

User guide both sides of a move, every option
FAQ vault vs checklist, clone vs replace, profiles, Termux
Troubleshooting every TAL- error code, with fixes
Security · Review threat model; the adversarial hardening pass and its 11 fixed findings
Bundle format .hermespack layout, read-forever policy
Design · Architecture the binding spec (122 requirements) from an adversarial design committee

How it was built

An adversarial process, start to finish: five agents mapped the Hermes source → four design lenses proposed, three adversarial critics tore them apart, and a binding spec settled it → spec/TDD implementation → and after "done," a hostile bug-hunt found 11 real defects the 267-test suite missed (a vault arbitrary-write, unappliable bundles, a rollback that could lose database WAL data) — all fixed with reproducing tests. That story is in docs/.

Development

pip install -e ".[dev]"
python3 -m pytest                       # the full suite (272 tests)
python3 scripts/build_pyz.py            # single-file build
python3 scripts/capture_screens.py      # regenerate the screenshots (light + dark)

MIT licensed · ⤞ Talaria, for Hermes' winged sandals

About

No description, website, or topics provided.

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages