The Five Persona Fields
Freesona stores the persona as a structured JSON object with five independent fields. Each one maps to a named XML-tagged block that gets injected into the model’s system instruction:
Each field accepts up to 1,024 characters. Fields left blank are simply omitted from the assembled prompt. You do not need to fill all five.
Opening the Persona Editor
Run/setpersona to open the persona panel. The panel is a button-based interface with these actions:
- Edit Persona — Opens a modal pre-filled with your current values. Edit any or all five fields and submit to save.
- Preview Prompt — Shows the fully assembled persona string exactly as the model will receive it.
- Debug — Displays the lock state, legacy mode flag, how many fields are filled, and the current prompt length.
- Lock / Unlock — Toggles the persona lock without leaving the panel.
/setpersona is a slash-only command because it uses Discord’s modal UI. It cannot be run as a prefix command.Persona Presets
Save any persona configuration as a named preset and reload it at any time. Presets persist across restarts.
Preset names are stored in lowercase.
/personaload respects the persona lock. If the persona is locked, loading a preset will fail until you unlock it first.
Persona Lock
Lock the persona to prevent accidental overwrites during active use.
When locked, any attempt to save changes through
/setpersona or load a preset with /personaload returns an error. Use lock when you have a stable persona you are happy with and do not want to risk changing by mistake.
Debugging the Active Persona
Run/debugpersona to inspect the full state of the persona system in a single embed:
- Assembled Persona — The complete system instruction string being sent to the model (first 900 characters)
- Last Prompt — The last user prompt sent in the current channel
- Provider — The active AI provider
- Model — The active model name
- Locked — Whether the persona lock is engaged
- Autonomy — Whether autonomy mode is on and at which frequency threshold
Legacy Support
Ifpersona.json does not exist but a persona.txt file does, Freesona falls back to the plain text file automatically. The /debugpersona output will show Legacy Mode: Yes when this is the case. To migrate, open /setpersona, copy your existing text into the appropriate fields, and save. The bot will write persona.json and stop using the legacy file.