personality-switcher
Create and switch between AI assistant personalities. Use /personality to list and activate saved personalities. Use /create-personality to design new personas with auto-filled SOUL and IDENTITY. Personalities persist across session boundaries and conversation compacting with automatic heartbeat restoration. Atomic switching with backup and rollback safeguards. Always backs up current state before switching.
Install
mkdir -p .claude/skills/personality-switcher && curl -L -o skill.zip "https://mcp.directory/api/skills/download/5594" && unzip -o skill.zip -d .claude/skills/personality-switcher && rm skill.zipInstalls to .claude/skills/personality-switcher
About this skill
Personality Switcher Skill
Create and manage multiple AI assistant personalities. Switch between them seamlessly while preserving all changes and maintaining a shared user context.
Installation
When this skill is installed:
- Personalities folder created —
~/.openclaw/workspace/personalities/ - Default backup created — Current SOUL.md and IDENTITY.md are saved as "default"
- State file initialized —
_personality_state.jsontracks active personality - HEARTBEAT.md configured — Personality restoration script added to run on every heartbeat
When uninstalled:
- Default personality is restored to workspace root
- Personality restoration removed from HEARTBEAT.md
- Personalities folder is preserved (manual deletion optional)
Quick Start
List personalities:
/personality
Switch to a personality:
/personality <name>
Create a new personality:
/create-personality A stoic dwarf who loves ale and mining
Rename a personality:
/rename-personality old-name new-name
Delete a personality:
/delete-personality personality-name
How It Works
Architecture
Each personality consists of two files:
- SOUL.md — Core philosophy, voice, mannerisms, boundaries
- IDENTITY.md — Name, traits, emoji, catchphrase, vibe
These files live in personalities/<personality-name>/.
USER.md remains shared in the workspace root and is never modified by personality switches. It contains user preferences and context that transcend any particular personality.
State Persistence
The active personality is tracked in _personality_state.json:
{
"active_personality": "aelindor",
"timestamp": "2026-02-08T18:27:33.373846Z",
"previous_personality": "default"
}
On every heartbeat, restore_personality.py reads this file and re-applies the active personality to the workspace root. Result: Your personality survives session restarts, conversation compacting, and heartbeat cycles.
Atomic Switching (Safeguards)
When you switch personalities, the mechanism performs five steps:
- Preserve Current State — Create timestamped backup of SOUL.md and IDENTITY.md
- Persist Changes — Write current personality updates back to its folder
- Load New Personality — Copy new personality files to workspace root
- Update State — Write active personality to
_personality_state.json - Verify Integrity — Check files loaded correctly; rollback if any step fails
If any step fails, the entire operation rolls back to the previous state. No corruption, no lost data.
Backup Management
Backup Location: ~/.openclaw/workspace/personalities/backups/
Backups are stored in a dedicated folder (not scattered at workspace root). When you switch personalities:
- A timestamped backup of the previous personality is created
- Automatic cleanup runs — keeps the 10 most recent backups by default
- Old backups are automatically deleted to prevent clutter
Manual Cleanup:
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/cleanup_backups.py --keep 5
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/cleanup_backups.py --keep 10 --days 7
Options:
--keep N— Keep N most recent backups (default: 10)--days D— Also delete backups older than D days
Optional: Add to HEARTBEAT.md for periodic cleanup:
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/cleanup_backups.py --keep 10
Default Personality
"default" is special:
- Auto-created on install from your original configuration
- Always available and selectable
- Protected against accidental deletion or renaming
- Your safety net if something goes wrong
Commands
/personality [name]
List all personalities or switch to one.
No arguments: Shows list of available personalities with current active marked
With name: Immediately switches to that personality
Example:
/personality aelindor
Output:
Switched to personality 'aelindor'.
Previous: default
Backup: _personality_current_2026-02-08T18-27-33.371866
/create-personality [description]
Create a new personality from a text description.
Input: Natural language description of the personality
Output: New personality folder with auto-filled SOUL.md and IDENTITY.md (ready to use immediately)
How it works:
- You provide a description
- The agent chooses a personality name (1-2 words, lowercase)
- The agent fills in SOUL.md and IDENTITY.md with character-specific content
The personality files are generated directly from your description, with the agent choosing a thematic, concise name.
Example:
/create-personality A curious wizard obsessed with knowledge, speaks in riddles, brilliant but condescending
Result:
Personality 'sage' (or similar) created and ready.
Folder: personalities/sage/
Files: SOUL.md and IDENTITY.md (agent-generated from description)
Ready: Use /personality sage to activate
After Creation: The new personality is ready to use immediately. Edit SOUL.md and IDENTITY.md in the personality folder to refine further if desired.
Technical: Agent chooses name to keep personality references concise (1-2 words). Name is validated for uniqueness and format automatically.
/rename-personality [old-name] [new-name]
Rename a personality folder.
Rules:
- Cannot rename "default"
- Name must be unique (no spaces, lowercase, alphanumeric + hyphens)
- If renaming active personality, state is updated automatically
Example:
/rename-personality pirate-captain pirate-v2
/delete-personality [name]
Delete a personality permanently.
Rules:
- Cannot delete "default"
- If deleting active personality, automatically switches to "default" first
Example:
/delete-personality pirate-v2
Integration with OpenClaw
Heartbeat Restoration
Add this to your HEARTBEAT.md:
python3 ~/.openclaw/workspace/skills/personality-switcher/scripts/restore_personality.py
This runs on every heartbeat to restore your active personality if the session has restarted.
Telegram Native Commands
Registered native Telegram commands:
/personality— List and switch personalities/create-personality— Create new personality/rename-personality— Rename personality/delete-personality— Delete personality
Use them directly in Telegram chat with the bot.
Folder Structure
~/.openclaw/workspace/
├── SOUL.md (active personality's soul)
├── IDENTITY.md (active personality's identity)
├── USER.md (SHARED - never changed by personality)
├── MEMORY.md (SHARED - never changed)
├── _personality_state.json (state file)
└── personalities/
├── default/
│ ├── SOUL.md
│ └── IDENTITY.md
├── aelindor/
│ ├── SOUL.md
│ └── IDENTITY.md
├── <personality-name>/
│ ├── SOUL.md
│ └── IDENTITY.md
└── backups/
├── current_2026-02-08T17-27-41.628113/
│ ├── SOUL.md
│ └── IDENTITY.md
└── current_2026-02-08T17-27-33.371866/
├── SOUL.md
└── IDENTITY.md
Note: Backups are automatically cleaned up. Workspace root stays clean—all internal machinery lives in personalities/.
File Format Requirements
SOUL.md
Core philosophy, voice, and operational boundaries.
Sections:
- Core identity and background
- Voice patterns and mannerisms
- Philosophy (time, power, morality, etc.)
- Speech patterns and quirks
- What triggers contempt/approval
- Boundaries and constraints
- Signature behaviors and catchphrases
Example Structure:
# SOUL.md - [Personality Name]
## Core Identity
[Background and essence]
## Voice & Mannerisms
[How this personality speaks and acts]
## Philosophy
[Core beliefs and worldview]
## Signature Behaviors
[Unique traits and catchphrases]
IDENTITY.md
Quick reference card for the personality.
Sections:
- Name
- Creature/type
- Emoji (for visual identification)
- Vibe (one-sentence summary)
- Catchphrase (if applicable)
- Quick traits
Example Structure:
# IDENTITY.md - [Personality Name]
- **Name:** [Name]
- **Type:** [Creature or archetype]
- **Emoji:** [Emoji]
- **Vibe:** [One-sentence vibe]
- **Catchphrase:** [Signature phrase]
## Quick Traits
- Trait 1
- Trait 2
- Trait 3
Backups & Recovery
Timestamped backups are created before every switch in personalities/backups/:
current_2026-02-08T17-27-33.371866/- SOUL.md (backup of previous personality)
- IDENTITY.md (backup of previous personality)
Manual recovery (if needed):
# List available backups
ls -la ~/.openclaw/workspace/personalities/backups/
# Copy backup files back to workspace root if needed
cp ~/.openclaw/workspace/personalities/backups/current_<timestamp>/SOUL.md ~/.openclaw/workspace/SOUL.md
cp ~/.openclaw/workspace/personalities/backups/current_<timestamp>/IDENTITY.md ~/.openclaw/workspace/IDENTITY.md
Backups are automatically cleaned up; by default, the 10 most recent are kept. Adjust cleanup frequency or retention in HEARTBEAT.md as needed.
Error Handling
All commands return JSON responses:
Success:
{
"status": "success",
"message": "Operation completed.",
"personality": "aelindor"
}
Error:
{
"status": "error",
"message": "Human-readable error message.",
"code": "error_code",
"detail": "Technical detail if applicable"
}
Common Error Codes:
personality_not_found— Target personality doesn't existalready_exists— Name already in useinvalid_name— Name format invalidcannot_delete_default— Attempted to delete "default"cannot_rename_default— Attempted to rename "default"switch_failed— Switch failed; rolled back to previo
Content truncated.
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversConnect Supabase projects to AI with Supabase MCP Server. Standardize LLM communication for secure, efficient developmen
Empower your CLI agents with NotebookLM—connect AI tools for citation-backed answers from your docs, grounded in your ow
Manage Kubernetes GitOps applications and resources with Argo CD and your assistant. Seamless argocd integration for aut
Manage Kubernetes GitOps applications and deployments with Argo CD integration for easy, natural language control from y
Analyze Python, Go, and TypeScript code locally to automatically generate IAM policies and AWS IAM permissions for least
Unlock AI-powered automation for Postman for API testing. Streamline workflows, code sync, and team collaboration with f
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.