Packs
A pack is a single JSON document containing every soul, persona, rule, procedure, skill, and brain in a workspace, plus its active state. It round-trips through pack export and pack import.
See CLI reference for the full flag list.
What’s in a pack
Section titled “What’s in a pack”{ "schema_version": 1, "souls": { "<slug>": { "content": "…" } }, "personas": { "<slug>": { "content": "…", "bundled_rules": [ … ] } }, "rules": { "<slug>": { "entries": [ { "sort_key": 0, "content": "…" } ] } }, "procedures": { "<slug>": { "content": "…" } }, "skills": { "<slug>": { "body": "…", "description": "…", "scope": "project|user" } }, "brains": { "<slug>": { "soul": "…", "persona": "…", "procedure": "…", "rules": [ … ], "skill_slugs": [ … ], "model": "…" } }, "state": { "soul": "…", "persona": "…", "procedure": "…", "rules": [ … ], "skill_slugs": [ … ] }}Workspace identifiers (UUIDs, API keys) are not included; the importer’s workspace ID is preserved. Empty maps and arrays are emitted as {} / [], not omitted.
Exporting
Section titled “Exporting”brainjar pack export -o backup.json # pretty-printed JSONbrainjar pack export --compact -o backup.json # single-line JSONbrainjar pack export -o - | gzip > backup.json.gzDefault output is pretty-printed to stdout; pass -o <path> to write to a file, or -o - to keep stdout explicit.
Importing
Section titled “Importing”brainjar pack import -i backup.jsoncat backup.json | brainjar pack importImports are additive — existing souls, personas, rules, skills, and brains are upserted in place. Per-entity failures (e.g. dangling references) become warnings and do not abort the import. An unknown schema_version is a fatal BAD_REQUEST.