Souls
A soul defines the agent’s personality: tone, character, and standards. It’s the constant across all tasks. You probably only have one or two.
Think of it as the agent’s voice.
Creating a soul
Section titled “Creating a soul”cat mysoul.md | brainjar soul create mysoul# orbrainjar soul create mysoul --file ./mysoul.mdcreate is an upsert — it stores whatever content you hand it (stdin, --content, or --file, in that precedence order). There is no scaffolded template; author the content yourself or have your agent author it (see Authoring with AI).
A good soul covers three areas:
# My Soul
## Voice- Direct. No filler, no hedging.- Speak with conviction.
## Character- Honest to the bone. Hard truths delivered with respect.- Generous in spirit.
## Standards- Demand excellence, not perfection.- Respect craft.Activating a soul
Section titled “Activating a soul”brainjar soul use mysoulManaging souls
Section titled “Managing souls”brainjar soul list # See available soulsbrainjar soul show # View the active soulbrainjar soul show mysoul # View a specific soulbrainjar versions soul mysoul # List version historybrainjar versions soul mysoul 2 # Print version 2's content to stdoutbrainjar soul drop mysoul # Deactivate (clear the active-soul override)brainjar soul delete mysoul # Permanently delete a soulThere is no revert subcommand. To restore an old version, capture its content with brainjar versions soul mysoul <n> and feed it back in: brainjar versions soul mysoul 2 | brainjar soul create mysoul.
See full flag and subcommand details in the CLI reference for soul and versions.
When to use different souls
Section titled “When to use different souls”Most users have one soul. Consider a second when you want a fundamentally different voice — for example, a teaching-oriented soul for mentoring sessions versus a terse, action-oriented soul for production work.
Don’t confuse soul with persona. The soul is who the agent is. The persona is what job it’s doing.