Releases: imphillip/SoulTavern
v2.0.3
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.mdlinkedgithub.com/imphillip/openclaw(404). Correct upstream isgithub.com/openclaw/openclaw. - Stale
hermes-tavern/HermesTavernstrings left over from the v2.0 CLI removal:- The banner written into every rendered
HERMES.mdnow readsSoulTavern: imported from a SillyTavern V2 character card.(wasHermesTavern:). - The staging-folder README that drives the agent's oversized-card flow now points at
import.py/finalize.pyandsoultavern/SKILL.md(washermes-tavern import/finalize/hermes-tavern/SKILL.md). --helptext forhistorynow saysno SoulTavern files(wasno HermesTavern files).- Engine docstrings (
library.py,staging.py,classify.py) and one test docstring brought into line.
- The banner written into every rendered
Added
soultavern-skills.zipinstall path. READMEs (× 3 langs) now mention the release-zip download as an alternative togit clone— unzip into your runtime's skills directory.
Chore
- Stale wheel comment dropped from
.gitignore(v2.0 removed per-skillassets/*.whldistribution).
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
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.mdfrontmatter bumped to 2.0.2 alongsidepyproject.tomland__version__. All three stamps now agree..github/workflows/release.ymlhardened. 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 newskills/soultavern/. No migration needed. - Tarball / GitHub-release users: download
soultavern-skills.zipfrom this release and drop it into your runtime's skills directory.
Full diff: v2.0.1...v2.0.2
v2.0.1
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_HOMEreplaces~/.hermes-roleplayin 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 hermeslines 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.20carries character substantially better thangpt-5.4on 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
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.
soultavernand thehermes-tavernbackward-compat alias are both gone. Replacesoultavern <subcommand> ...withpython3 <skill_dir>/scripts/<subcommand>.py .... Same flags, same exit codes, same output. - No wheel.
assets/soultavern-*.whlremoved;pyproject.tomlloses[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, andscripts/import_card.share gone. - YAML cards no longer supported.
.yaml/.ymlinputs raiseUnsupportedCardError. JSON and PNG remain. Convert YAML cards to JSON if you have any (rare in the SillyTavern ecosystem). - Source layout.
src/soultavern/moved toskills/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
charachunk parsing reimplemented in pure stdlib (struct+zlib). SupportstEXt/iTXt/zTXt. - Jinja2 → Python functions. All eight
.j2templates rewritten as Python rendering functions colocated with eachTargetinstance. - PyYAML → removed. YAML branch in
parse.pydeleted. - Zero runtime dependencies.
pyproject.tomldependencies = []. Kept only as a config file forruff/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 pristineafter an openclaw import would leave the managed section inAGENTS.mdand the overwrittenIDENTITY.mduntouched. 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 defaultIDENTITY.md, a user's customizedAGENTS.md) are correctly preserved through pristine.
What's the same
- Output bytes for
--target hermesand--target openclawmatch 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.jsonand 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 openclawIf 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 viatap).
Full Changelog: v1.0.0...v2.0.0
v1.0.0
Full Changelog: v0.5.1...v1.0.0
v0.5.1
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Full Changelog: v0.4.5...v0.5.0
v0.4.5
Full Changelog: v0.4.0...v0.4.5
v0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0 — first GitHub release
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)
- Download
hermes-tavern-skills.zipbelow. - 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-cardslibrary manager), bundled wheel
insideskills/hermes-tavern/assets/. Drop into Hermes chat.hermes_tavern-0.3.0-py3-none-any.whl(~36 KB) — the standalone
Python wheel, forpipx installor 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 tohermes -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).