00:00 / 00:00

Persona

Version History

Applies toLive2DVRM

When you select one of your own models in Layers, the Versions section in its settings lets you save snapshots of the model's files. You can compare any two versions, restore specific files, roll the entire model back, or export a version as a ZIP archive. Saving a version before re-exporting from Cubism Editor or tweaking physics and parameter bindings makes it easy to recover if something goes wrong.

Version history is enabled per model and is off by default. Bundled models and models downloaded from the Persona catalog are managed by the app, so they do not have a Versions section.

Keep Versions

When you turn on Keep Versions in the Versions section, Persona immediately saves an initial version (listed as "History Started"). This toggle is unavailable if the model's files are missing from disk. Folders that Persona cannot read reliably, such as Windows UNC network shares (\\server\share) or folders whose names contain a backslash on macOS or Linux, are also rejected so you never end up with an empty initial version.

Turning Keep Versions off simply pauses tracking while keeping existing versions intact (shown as Kept History). If you turn it back on later, any edits made in the meantime appear under Unsaved Changes.

The History row displays the disk space used by the repository. Its menu offers Show History Folder and Delete History…, which moves all saved versions of the model to the Trash (or Recycle Bin on Windows) and turns version history off without touching the model's working files.

What a Version Holds

FormatIncluded files
Live2DThe .model3.json file and everything it references (moc3, textures, physics, expressions, and motions, including loose .exp3.json / .motion3.json files and motion audio), plus .persona.json, .vtube.json, .live.json, the VTube Studio icon, and the model's thumbnail
VRMThe .vrm file, its .persona.json, and its thumbnail

Only regular model files inside the model folder are tracked. Authoring files kept alongside exports (such as PSDs or .cmo3 projects) are ignored, as are symlinks and paths pointing outside the model folder. Each version stores complete files, including moc3 binaries and textures, so you can roll back a broken re-export. Unchanged files are deduplicated across versions and take no extra disk space.

Save Version

Versions are saved manually when you choose, never on a timer or automatically in the background. Whenever files on disk differ from the current version, an Unsaved Changes row appears. Click Save Version… to create a snapshot. The dialog pre-fills a default Name (such as "Version 3") and includes an optional Notes field. Version names must be unique within the same model (case-insensitive).

Unsaved Changes

The Unsaved Changes row shows how many files differ from the current version. Click the row title or choose Show Changes… from its menu to inspect the diff. Choosing Discard Changes… reverts the files to the current version and reloads the model; this action cannot be undone.

  • Edits made inside Persona (such as parameter bindings, hotkeys, Whole-Model Movement, the expression editor, and recorded or edited motions) appear as unsaved changes immediately.
  • External edits made in VTube Studio, a text editor, or Cubism Editor are detected as soon as any Persona window regains focus.
  • Toggling expressions on or off does not count as a file change. Although expression hotkeys update the active expression state in .vtube.json or .persona.json, version history ignores that field, and switching versions or restoring files preserves whichever expressions are currently active.

The Version List

Versions are grouped by date ("Today", "Yesterday", or the calendar date) and listed from newest to oldest, 50 at a time. Click Show Older Versions to load earlier entries.

  • Unnamed versions are labeled by how they were created: "History Started", "Saved Version", or "Backup of Unsaved Changes". Commits created with external Git tools display their commit message.
  • Named versions appear in bold with a bookmark icon, with their notes shown underneath.
  • The Current badge marks the version that the files on disk are based on, even if you have made further edits since.

Each version's menu offers Show Changes…, Compare with Files on Disk…, Switch to This Version…, Name This Version… (or Rename… and Remove Name if already named), and Export as ZIP….

Persona never overwrites, prunes, or deletes individual versions, and never rewrites Git history. To clear history and reclaim disk space, use Delete History… to remove the entire history for that model.

Compare Versions

Clicking a version in the list (or choosing Show Changes…) opens the Compare Versions dialog, showing what changed relative to the previous version. Use the From and To dropdowns to compare any two versions or Files on Disk.

  • The file tree on the left lists modified files marked as added, changed, or removed. Enable Show Unchanged Files to view the full file list, and drag the sidebar's right edge to resize it.
  • Text files up to 4 MiB display word-level diffs in Unified or Split view. Images up to 32 MiB can be compared Side by Side or with a Swipe slider. Other file types and larger files compare file sizes only.
  • Configuration files that differ only in active expression state are treated as unchanged.

Restoring Files

When comparing against Files on Disk, you can select individual files and click Restore Selected Files… to revert just those files to the chosen version and reload the model. Restored files remain as unsaved changes until you save a new version, so you can test an older physics file without cluttering the version list. If any selected file already has unsaved edits, Persona asks whether to Save or Don't Save them first.

Switching Versions

Switch to This Version… replaces all of the model's files with that version's snapshot and reloads the model. If you have unsaved changes, Persona prompts you first:

OptionResult
SaveSaves all current edits as a new version first ("Backup of Unsaved Changes")
Don't SaveDiscards the unsaved changes that would be overwritten

Switching versions does not create a new entry in the list; the target version simply becomes Current, so you can switch back and forth freely to compare versions.

  • Any files not present in the target version are moved to the Trash rather than deleted permanently. If a file cannot be moved to the Trash, the switch aborts before modifying anything.
  • If any file cannot be written (for example, a read-only file), the entire switch is canceled and no files are changed.
  • Files belonging to another model loaded from the same folder are left untouched.

Export as ZIP

Export as ZIP… packages a version's files into a folder named after the model, preserving the version's timestamp on the exported files. The archive contains only the model files, not the Git history. Directory links inside the model folder are not preserved; if the exported model loads textures through a directory link, recreate the link after extracting.

Where History Is Kept

Each model's history is stored in history/<model ID>/ inside the configuration folder, rather than placing a .git directory inside the model folder itself. This keeps client delivery archives, cloud-synced folders, and models that already live inside your own Git repository completely clean.

Each history folder is a standard bare Git repository managed by Persona's built-in Git implementation. You do not need Git installed to use version history, and any standard Git client can inspect it:

git --git-dir ~/.laplace/persona/history/<model ID> log
  • Persona operates entirely offline and never pushes, fetches, or clones. If you want to push the repository to a remote using Git, you can do so safely because Persona never rewrites history.
  • Commits use LAPLACE Persona as the author name with an empty email address, rather than reading your OS username (which often contains your real name). You can override this by setting user.name in that repository's Git config.
  • Named versions are stored as annotated Git tags.
  • If an external Git tool leaves the repository in an unfinished state (such as staged changes, an in-progress merge or rebase, or a detached HEAD), Persona displays a warning and pauses saving and switching until you finish or abort the operation in your Git tool.

Moved or Re-Added Models

  • If you move a model's folder on disk, use Locate… to point Persona to the new path and its version history will stay linked.
  • If you remove a model from the Inventory with Remove from Inventory and add it back later, it receives a new model ID. When you enable Keep Versions again, Persona automatically reconnects the existing history for that folder and entry file instead of starting from scratch.

Plugin API and MCP

The Plugin API can enable or disable version history, list, save, name, compare, and switch versions, restore individual files, and subscribe to history change events. Just like in the UI, any switch or restore call that would overwrite unsaved changes must explicitly specify whether to save or discard them. The MCP server exposes list_versions, save_version, and switch_version, allowing an AI assistant to save a backup version before editing a model and prompting you before switching when unsaved changes exist. Version history itself can only be turned on by you in the app, not by an AI assistant.

Last updated on November 3, 2026

Tech otakus destroy the world