Skip to content

fix: improve profile creation UX — seed SOUL.md + credential warning#8553

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-f5376b46
Apr 12, 2026
Merged

fix: improve profile creation UX — seed SOUL.md + credential warning#8553
teknium1 merged 1 commit into
mainfrom
hermes/hermes-f5376b46

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Addresses user confusion reported in Discord about:

  1. New profiles using the wrong model/plan tokens (root cause: no separate API keys)
  2. SOUL.md not being read consistently (root cause: no SOUL.md in fresh profiles until first use)

What changed

hermes_cli/profiles.pycreate_profile() now seeds a default SOUL.md immediately after creating the directory structure. Skipped when the profile already has one (from --clone / --clone-all).

hermes_cli/main.py — Post-creation output for fresh profiles (no --clone) now:

  • Warns that the profile has no API keys and will inherit from the shell environment
  • Shows the SOUL.md path for personality customization
  • Moved profile_dir_display computation to cover both clone and non-clone paths

Before

Profile 'mybot' created at ~/.hermes/profiles/mybot
42 bundled skills synced.

Next steps:
  mybot setup              Configure API keys and model
  mybot chat               Start chatting
  mybot gateway start      Start the messaging gateway

After

Profile 'mybot' created at ~/.hermes/profiles/mybot
42 bundled skills synced.

Next steps:
  mybot setup              Configure API keys and model
  mybot chat               Start chatting
  mybot gateway start      Start the messaging gateway

  ⚠ This profile has no API keys yet. Run 'mybot setup' first,
    or it will inherit keys from your shell environment.
  Edit ~/.hermes/profiles/mybot/SOUL.md to customize personality

Investigation findings (issue #8093)

E2E verified that load_soul_md() correctly reads from the profile's HERMES_HOME. The code path is:

  • _apply_profile_override() sets HERMES_HOME before module imports
  • load_soul_md() calls get_hermes_home() / "SOUL.md" which reads the env var
  • Both CLI and gateway paths resolve correctly

Issue #8093's reporter showed identical files in both locations (diff produces no output), so their "cross-contamination" conclusion was unsupported by evidence. Closed with detailed analysis.

Test plan

  • python3 -m pytest tests/hermes_cli/test_profiles.py -o "addopts=" -q — 87 passed
  • Updated test_clone_config_missing_files_skipped to reflect that SOUL.md is now always seeded
  • E2E verified: fresh profile seeds SOUL.md, cloned profile preserves source SOUL.md

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes #8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
@teknium1 teknium1 merged commit 06a17c5 into main Apr 12, 2026
4 of 6 checks passed
@teknium1 teknium1 deleted the hermes/hermes-f5376b46 branch April 12, 2026 19:22
negaterium pushed a commit to negaterium/hermes-agent that referenced this pull request Apr 13, 2026
…ousResearch#8553)

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes NousResearch#8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
ulasbilgen pushed a commit to ulasbilgen/hermes-adhd-agent that referenced this pull request May 1, 2026
…ousResearch#8553)

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes NousResearch#8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
aj-nt pushed a commit to aj-nt/hermes-agent that referenced this pull request May 1, 2026
…ousResearch#8553)

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes NousResearch#8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…ousResearch#8553)

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes NousResearch#8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
olympus-terminal pushed a commit to olympus-terminal/hermes-agent that referenced this pull request May 16, 2026
…ousResearch#8553)

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes NousResearch#8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…ousResearch#8553)

Fresh profiles (created without --clone) now:
- Auto-seed a default SOUL.md immediately, so users have a file to
  customize right away instead of discovering it only after first use
- Print a clear warning that the profile has no API keys and will
  inherit from the shell environment unless configured separately
- Show the SOUL.md path for personality customization

Previously, fresh profiles started with no SOUL.md (only seeded on
first use via ensure_hermes_home), no mention of credential isolation,
and no guidance about customizing personality. Users reported confusion
about profiles using the wrong model/plan tokens and SOUL.md not
being read — both traced to operational gaps in the creation UX.

Closes NousResearch#8093 (investigated: code correctly loads SOUL.md from profile
HERMES_HOME; issue was operational, not a code bug).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant