Skip to content

[FEATURE] Soul & Personality System — Hermes-inspired persistent identity + session switching #20334

@robinmordasiewicz

Description

@robinmordasiewicz

Overview

Add a Hermes Agent-inspired personality system to OpenCode that separates intent-routing from identity, supports built-in and custom personalities, and adds session-level switching via `/personality`.

Motivation

The current `soul.txt` is a static F5-specific intent-routing table — not a personality. Users have no way to customize the agent's identity, tone, or communication style. The community-submitted PR #11838 shows demand for this.

Reference

Architecture

Prompt Stack (slot order):
1. Soul identity  — SOUL.md (user-editable, auto-seeded)
2. Personality overlay — /personality session switching (ephemeral)
3. Routing — routing.txt (F5 capability routing, internal)
4. Provider prompt — model-specific guidance
5. Environment — model info, working dir, date
6. Skills — available skill listing
7. Instructions — AGENTS.md, CLAUDE.md, etc.

Child Issues

  • Phase 2: Split soul.txt → routing.txt + default-soul.txt
  • Phase 3: Personality types & config schema
  • Phase 4: SOUL.md file loading (global + project)
  • Phase 5: Built-in personality presets
  • Phase 6: /personality slash command
  • Phase 7: System prompt assembly integration
  • Phase 8: Documentation & cleanup

Development

Branch: `feature/soul-personality`
Approach: Test-driven development (TDD) — tests written before implementation.

Metadata

Metadata

Assignees

Labels

coreAnything pertaining to core functionality of the application (opencode server stuff)docsneeds:complianceThis means the issue will auto-close after 2 hours.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions