Hermes Agent supports profiles — fully isolated configurations that let you run multiple independent agent instances on the same machine. Each profile has its own settings, API keys, skills, memory, and conversation history.
Think of it like browser profiles or Python virtualenvs, but for AI agents.
Why Use Profiles
Separate contexts cleanly. Work projects use different API keys, model preferences, and memory stores than personal tinkering. Profiles keep them from bleeding into each other.
Test safely. Try a new model or experimental skill configuration without breaking your main setup.
Run multiple gateways. One profile for a Discord bot, another for Telegram — each with isolated sessions and tools.
Collaborate without friction. Export your profile, someone else imports it, and they have your exact setup without touching their default config.
Quick Start
# Create a new profile (copies current config)
hermes profile create work --clone
# Switch to it permanently
hermes profile use work
# Run a one-off command with a specific profile
hermes --profile work chat -q "Review the codebase"
# Wrapper command for quick access
hermes profile alias work # Creates `hermes-work`
What Gets Isolated
Each profile lives in ~/.hermes/profiles/<name>/ with its own:
config.yaml— model, provider, tool preferences.env— API keys and secretsskills/— installed skill documentssessions/— conversation history- Memory stores — Honcho, Mem0, or built-in
The default profile uses ~/.hermes/ directly. Switching profiles changes which directory Hermes reads from and writes to.
Real-World Patterns
Work vs personal. Work profile uses company API keys, stricter tool restrictions, and work-specific memory. Personal profile uses your own keys, broader tool access, and personal project memory.
Client projects. Create a profile per client. Each has isolated credentials, project-specific skills, and zero cross-contamination between client contexts.
Model comparison. Profile A uses Claude. Profile B uses GPT-5. Same prompts, same tasks, easy comparison without config thrashing.
CI/CD agents. Export a profile with minimal tools and specific credentials. Import it in CI for reproducible agent runs.
Import and Export
# Backup a profile
hermes profile export work > work-profile.tar.gz
# Restore or share
hermes profile import work-profile.tar.gz
Exports include everything except absolute paths — portable across machines.
Profiles vs Other Isolation
| Approach | Scope | Use When |
|---|---|---|
| Profiles | Config, keys, memory, skills | Long-term separation |
--worktree flag | Git state only | Parallel code edits |
delegate_task | Temporary subagent | Quick parallel tasks |
New session (/reset) | Conversation only | Fresh context, same config |
Profiles are the heavy-duty option. Use them when you need complete isolation that persists across sessions and reboots.
The One Command That Matters
hermes profile create NAME --clone
This copies your current setup into a new profile. From there, modify config, add different API keys, install project-specific skills — whatever the context demands. Switch back to default with hermes profile use default or override per-command with --profile NAME.
Profiles turn one Hermes installation into many specialized agents. Use them before your contexts get messy enough to matter.
Command Reference
hermes profile list # Show all profiles
hermes profile create NAME # New profile (--clone to copy current)
hermes profile use NAME # Set default sticky profile
hermes profile show NAME # View profile details
hermes profile delete NAME # Remove a profile
hermes profile export NAME # Backup to tar.gz
hermes profile import FILE # Restore from archive
hermes profile alias NAME # Create wrapper command
hermes profile rename OLD NEW # Rename a profile
Use --profile NAME flag with any Hermes command for one-off execution without switching defaults.