Skip to content

Releases: imphillip/SoulTavern

v2.0.3

11 May 18:50

Choose a tag to compare

Pre-submission cleanup sweep

No behavior changes; 217 tests pass. This release exists so users on the "download the release zip" install path pick up the cleaned strings without having to clone main.

Fixed

  • Broken OpenClaw link. READMEs (× 3 langs) and references/openclaw-target.md linked github.com/imphillip/openclaw (404). Correct upstream is github.com/openclaw/openclaw.
  • Stale hermes-tavern / HermesTavern strings left over from the v2.0 CLI removal:
    • The banner written into every rendered HERMES.md now reads SoulTavern: imported from a SillyTavern V2 character card. (was HermesTavern:).
    • The staging-folder README that drives the agent's oversized-card flow now points at import.py / finalize.py and soultavern/SKILL.md (was hermes-tavern import / finalize / hermes-tavern/SKILL.md).
    • --help text for history now says no SoulTavern files (was no HermesTavern files).
    • Engine docstrings (library.py, staging.py, classify.py) and one test docstring brought into line.

Added

  • soultavern-skills.zip install path. READMEs (× 3 langs) now mention the release-zip download as an alternative to git clone — unzip into your runtime's skills directory.

Chore

  • Stale wheel comment dropped from .gitignore (v2.0 removed per-skill assets/*.whl distribution).

Intentional historical references kept: CHANGELOG entries, the lineage phrase TavernAI → SillyTavern → HermesTavern → SoulTavern in SKILL.md / __init__.py, snapshot-test comment.

Full diff: v2.0.2...v2.0.3

v2.0.2

10 May 23:21

Choose a tag to compare

Version-stamp consistency

v2.0.1 shipped with skills/soultavern/SKILL.md's frontmatter still reading version: 2.0.0. The bump landed in pyproject.toml and __init__.py but missed the skill's own metadata header, so agents that read SKILL.md to surface "which version is installed" reported the wrong number.

What changed

  • SKILL.md frontmatter bumped to 2.0.2 alongside pyproject.toml and __version__. All three stamps now agree.
  • .github/workflows/release.yml hardened. The version-check step now verifies pyproject, SKILL.md frontmatter, and the git tag all agree before a release ships. The prior check only compared pyproject vs tag — which is what let v2.0.1 slip through.

No agent-instruction body changes, no human-doc body changes; just the stamp fix and the CI guard.

How to upgrade

  • Skill folder users: git pull (or re-clone) and re-point your runtime at the new skills/soultavern/. No migration needed.
  • Tarball / GitHub-release users: download soultavern-skills.zip from this release and drop it into your runtime's skills directory.

Full diff: v2.0.1...v2.0.2

v2.0.1

10 May 22:56

Choose a tag to compare

v2.0.1 touches two layers — they should be read separately because they affect different audiences.

Agent-facing changes (SKILL.md + references/)

These are the files the runtime loads as instructions for the agent. Changing them changes what the agent tells users.

  • $HERMES_HOME replaces ~/.hermes-roleplay in every example. The old path was a v0.x convention that implied users should run roleplay in a separate sandbox HERMES_HOME — contradicts v2.0's "same agent, add a soul" framing. The skill now instructs the agent to use the actual env var name on the user's machine.
  • Two redundant HERMES_HOME=$HERMES_HOME hermes lines dropped (artifacts of the path swap that reassigned the env var to itself).

No code or test changes; 217 tests pass with the same coverage as v2.0.0.

Human-facing changes (README × 3)

These are project README pages on GitHub — the runtime never loads them.

  • README streamlined to ~230 lines per language (was ~500+). Iteration history and feature enumerations now live in references/.
  • "LLM choice matters" section added. Roleplay portrayal quality depends heavily on the model behind the runtime — grok-4.20 carries character substantially better than gpt-5.4 on the same card (from hands-on testing). Includes a gptproto.com referral (affiliate-disclosed) for users who need somewhere to run roleplay-friendly models.
  • Tagline epigraph: "Give your work agent an interesting soul — work and play, not work or play. A programmer's romance."
  • "Sponsored by" section listing Miko Tavern alongside "Used by".

Upgrade

git pull && cp -r SoulTavern/skills/soultavern <YOUR_RUNTIME_SKILLS_DIR>/. The skill folder is purely static — overwrite is safe. User data in <home> workspaces is untouched.

Asset

  • soultavern-skills.zip

Full Changelog: v2.0.0...v2.0.1

v2.0.0

10 May 19:44
dbb54c4

Choose a tag to compare

Skill-folder-only. v2.0 collapses SoulTavern to a single self-contained skill folder. There is no soultavern binary on PATH any more, no wheel to install, no pipx / uv tool / venv shim, no third-party Python dependencies. The skill is one folder; you invoke it by running scripts in scripts/ directly. Drop the folder anywhere your runtime reads skills from and it works.

Install / upgrade / uninstall

# Install or upgrade — overwrite the skill folder. The folder is purely
# static; user data in <home> workspaces (cards, snapshots, persona
# files) is unaffected.
git clone https://github.com/imphillip/SoulTavern.git
cp -r SoulTavern/skills/soultavern <YOUR_RUNTIME_SKILLS_DIR>/

# Uninstall — see the README "Uninstall" section. Hermes target users
# can just rm the skill folder. OpenClaw target users should run
# delete.py against each used workspace first to strip the AGENTS.md
# managed section, then rm the skill folder.

<YOUR_RUNTIME_SKILLS_DIR> examples: ~/.openclaw/workspace/skills/, your Hermes skills directory, ~/.claude/skills/. Anywhere your runtime scans for skills works.

Breaking changes

  • No CLI on PATH. soultavern and the hermes-tavern backward-compat alias are both gone. Replace soultavern <subcommand> ... with python3 <skill_dir>/scripts/<subcommand>.py .... Same flags, same exit codes, same output.
  • No wheel. assets/soultavern-*.whl removed; pyproject.toml loses [project.scripts] and the build-system block. The project is no longer "built" — it's distributed as a skill folder.
  • No install scripts. scripts/install.sh, scripts/uninstall.sh, and scripts/import_card.sh are gone.
  • YAML cards no longer supported. .yaml / .yml inputs raise UnsupportedCardError. JSON and PNG remain. Convert YAML cards to JSON if you have any (rare in the SillyTavern ecosystem).
  • Source layout. src/soultavern/ moved to skills/soultavern/scripts/soultavern/ (the engine package lives beside the entry shims; lib/ would be non-standard for a skill folder).

Implementation changes

  • Pillow → stdlib. PNG chara chunk parsing reimplemented in pure stdlib (struct + zlib). Supports tEXt / iTXt / zTXt.
  • Jinja2 → Python functions. All eight .j2 templates rewritten as Python rendering functions colocated with each Target instance.
  • PyYAML → removed. YAML branch in parse.py deleted.
  • Zero runtime dependencies. pyproject.toml dependencies = []. Kept only as a config file for ruff / mypy / pytest.
  • Snapshot now covers every managed agent file (latent v0.6→v1.0 bug, fixed in v2.0). Pre-v2.0 snapshots only captured SOUL.md and HERMES.md, which was complete for the hermes target but missed AGENTS.md and IDENTITY.md for the openclaw target — revert --to pristine after an openclaw import would leave the managed section in AGENTS.md and the overwritten IDENTITY.md untouched. Snapshot now captures the union of every filename any registered target might write, with a presence dict per file. Pre-existing user files (an OpenClaw workspace's default IDENTITY.md, a user's customized AGENTS.md) are correctly preserved through pristine.

What's the same

  • Output bytes for --target hermes and --target openclaw match v1.0 for the small-card path. (217 tests pass — 212 from the pre-existing suite plus 5 new openclaw revert tests covering the lifecycle fix.)
  • All flag names, help text, exit codes, error wording.
  • <home>/cards/.active.json and snapshot manifest schemas read with back-compat upgrades. Existing imported workspaces don't need migration.

Migration

# Old (v1.0):
soultavern import --card foo.png --home ~/ws --target openclaw

# New (v2.0):
python3 /path/to/SoulTavern/skills/soultavern/scripts/import.py \
    --card foo.png --home ~/ws --target openclaw

If you have a v1.0 install with soultavern on PATH, remove it (it's no longer maintained). Then git pull (or re-clone) SoulTavern and point your runtime / agent at the new skill folder.

Asset

  • soultavern-skills.zip — the skill folder zipped for runtimes that prefer a zip-upload install path (e.g. Hermes via tap).

Full Changelog: v1.0.0...v2.0.0

v1.0.0

08 May 22:52

Choose a tag to compare

Full Changelog: v0.5.1...v1.0.0

v0.5.1

06 May 22:39

Choose a tag to compare

Full Changelog: v0.5.0...v0.5.1

v0.5.0

04 May 21:37

Choose a tag to compare

Full Changelog: v0.4.5...v0.5.0

v0.4.5

04 May 18:56

Choose a tag to compare

Full Changelog: v0.4.0...v0.4.5

v0.4.0

04 May 12:41

Choose a tag to compare

Full Changelog: v0.3.0...v0.4.0

v0.3.0 — first GitHub release

03 May 18:55

Choose a tag to compare

First GitHub release for HermesTavern. Bundles the two skills + the
hermes-tavern CLI wheel into a single drop-in zip.

What HermesTavern does

Imports SillyTavern V2 character cards (.png / .json / .yaml,
with lorebooks, alternate greetings, and all the {{char}} /
{{user}} / <BOT> / <USER> placeholder grammar) into the persona
files Hermes-Agent
auto-loads at startup — SOUL.md (persona) + HERMES.md (lorebook).
The character then lives on every channel your Hermes already speaks
on (Telegram, Discord, QQ, email, CLI), backed by whatever LLM you've
configured.

Install (recommended)

  1. Download hermes-tavern-skills.zip below.
  2. Upload it in your Hermes chat with "install this skill".

That's it. The bundled wheel inside the zip puts the hermes-tavern
CLI on PATH automatically.

If your Hermes can't accept file uploads (fresh host, no gateway yet),
clone the repo and run bash skills/hermes-tavern/scripts/install.sh
on the host directly.

What's in this release

  • hermes-tavern-skills.zip (~62 KB) — both skills (hermes-tavern
    loader + hermes-tavern-cards library manager), bundled wheel
    inside skills/hermes-tavern/assets/. Drop into Hermes chat.
  • hermes_tavern-0.3.0-py3-none-any.whl (~36 KB) — the standalone
    Python wheel, for pipx install or manual extraction.

Headline features (since 0.1.0)

  • V2 + V1 + PNG + YAML card parsing
  • Identity directive injected at the top of every SOUL.md to override
    hermes's default "I'm an AI assistant" framing
  • Three input-safety layers — trust banner, character sanitiser,
    injection-pattern scan
  • Distillation pipeline for cards that overflow the 20k slot
    (shells out to hermes -q)
  • Card library — list / current / switch / delete / restore
  • Snapshot history with revert --previous / --to pristine
  • READMEs in EN / 简体中文 / 日本語

See the README
for the full feature list, operating modes, security model, and known
gotchas (PNG re-encoding by some IM clients, distillation slowdowns
on heavily-moderated LLMs).