| name | lps |
| description | Author, scaffold, or review a Lollms Personality Structure (LPS) — the standard package format for lollms AI personas. Use this skill whenever the user wants to create a new lollms personality, write a SOUL.md, add tools or memory seeds to a personality, package a persona as a .lps archive, or understand how the LPS format works. Also trigger when the user asks about personality fields, SOUL.md sections, tool bindings, feature flags, or the lollms personality folder structure.
|
| author | ParisNeo |
| version | 1.0.0 |
| created | 2026-04-09T00:00:00.000Z |
| category | productivity/authoring |
| tags | ["lollms","personality","soul","lps","persona","ai"] |
| license | MIT |
| compatibility | {"platforms":["lollms-webui","lollms-studio","lollms-cli"]} |
LPS — Lollms Personality Structure
An LPS package defines a complete lollms AI persona: identity, behaviour, assets,
optional tools, and optional memory seeds. The entry point is always SOUL.md.
For full field-by-field detail, read references/soul_reference.md.
Folder structure
my-personality/
├── SOUL.md ← required
├── assets/ ← optional: avatar, banner, voice sample
├── memory/ ← optional: seed_memory.json
├── tools/ ← optional: Python callables + tools_manifest.json
└── references/ ← optional: large docs for RAG or on-demand loading
Three formats are supported (same loader pattern as .skill):
def load_personality(path: Path) -> PersonalityMeta:
if path.is_dir(): return parse_soul_md(path / "SOUL.md")
elif path.suffix == ".lps":
zf.extractall(tmp); return parse_soul_md(next(tmp.rglob("SOUL.md")))
elif path.suffix == ".md": return parse_soul_md(path)
Writing a SOUL.md
A SOUL.md has two parts: YAML frontmatter and Markdown body sections.
Frontmatter (key fields)
---
name: my-personality
display_name: My Personality
description: >
[What this ]
[, ]
[, ]