← All posts

Hermes Profiles - Isolated Agent Contexts

How to use Hermes Agent profiles to maintain isolated configurations, API keys, skills, and memory for different contexts.

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

bash
# 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 secrets
  • skills/ — installed skill documents
  • sessions/ — 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

bash
# 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

bash
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

bash
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.

Written by Mac Poncardas, a freelance web designer and developer helping small businesses get more clients from their websites.

More writing

Does your site pass the test?

Send me the link. I'll tell you what I'd change first, free.