#How to Update SillyTavern

Find your OS below and follow the instructions to update ST.


#Linux/Termux or MacOS

You definitely installed via git, so just 'git pull' inside the SillyTavern directory.

  • cd SillyTavern to enter the correct folder.
  • git pull to get the update.
  • ./start.sh or bash start.sh to start ST.

#Windows

First try using the UpdateAndStart.bat which is located in your SillyTavern installation base folder.

If that fails, come back here and continue reading.

#Method 1 - GIT

We always recommend users install using 'git'. Here's why:

When you have installed via git clone, all you have to do to update is type git pull in a command line in the ST folder. Alternatively, if the command prompt gives you problems (and you have GitHub Desktop installed), you can use the Repository menu and select Pull.

The updates are applied automatically and safely.

#"Help I originally installed via Zip and now want to convert to Git install"

You have chosen a wise path.

Since your installation was done via Zip, you will need to make a new install using git.

Thankfully we have instructions on how to do so.

Once you have used git to install a NEW SillyTavern into a DIFFERENT folder, come back to this page and proceed to Step 4 of the 'Zip Update' instructions below.

#Method 2 - ZIP

If you insist on installing via a zip, here is the tedious process for doing the update:

  1. Download the new release zip.

  2. Unzip it into a folder OUTSIDE of your current ST installation.

  3. Do the usual setup procedure for your OS to install NodeJS requirements.

  4. Copy the following files/folders as necessary(*) from your old ST installation:

    (*) 'As necessary' = "If you made any custom content related to those folders".

    #Updating >=1.12.0

    Copy the /data directory and config.yaml file from one installation to another.

    #Updating from <1.12.0 to >1.12.0

    1.12.0 includes an automated migration procedure. The steps below are required only if the migration was interrupted or errored.

  5. Run the updated server install at least once to create the /data/default-user directory.

  6. Transfer the files from old /public to new /data/default-user as necessary.

    None of the folders are mandatory, so only copy what you need.

    NOTE: DO NOT COPY THE ENTIRE /PUBLIC/ FOLDER

    Doing so could break the new install and prevent new features from being present.

    plaintext
    Assets Backgrounds Characters Chats Context Groups Group chats Instruct movingUI KoboldAI Settings NovelAI Settings OpenAI Settings QuickReplies TextGen Settings (textgen = ooba) Themes User Avatars Worlds User settings.json secrets.json <---- this one is in the base folder, not /public/
  7. Once those folders/files are copied, paste them into the /data/default-user folder (with secrets.json going into the folder root) of the new install.

  8. Start SillyTavern once again with the method appropriate to your OS, and pray you got it right.

  9. If everything shows up, you can safely delete the old ST folder.

#Common Update Problems

#"There are unresolved conflicts in the working directory."

This means that you've modified default files that have been changed in the remote repository (such as setting presets).

To fix this, run this in the terminal. Use cautiously, as it can be destructive. Make sure to have a backup if needed.

git merge --abort git reset --hard git pull --rebase --autostash

#File changes prevent git pull

  • If you change SillyTavern system files, git pull may not work.
  • Sometimes an update may require us to change an important file, which can cause the same problem.
  • Usually it is default preset files or package-lock.json.
  • In this case you can try moving the file to a different folder (or deleting the file) and then do git pull.
  • Another solution is using git pull --rebase --autostash

#Error: Cannot find module "***" when starting the server

  • This means that SillyTavern added a new npm package requirement.
  • Run npm install in the SillyTavern directory to fix this. Provided Start.bat and start.sh scripts will do that automatically.
  • Didn't help? Remove the node_modules folder

Windows

rmdir /s /q node_modules npm cache clean --force npm install

Unix/Linux

rm -rf node_modules npm cache clean --force npm install

#Docker

  1. Open a terminal window and navigate to your docker directory cd SillyTavern/docker
  2. Delete your container with docker compose down
  3. Delete the SillyTavern docker image from cache docker rmi ghcr.io/sillytavern/sillytavern:latest (Replace sillytavern:latest with sillytavern:staging if you are targeting the staging branch.)
  4. Rebuild the container with sudo docker compose up -d

If everything goes smoothly, docker should start redownloading the image, and you will be up and running shortly. If you face any issues, refer to the next section of this guide.

#Common Update Problems

#I use Docker and all my data is gone after the update!

You must follow the Migration guide for Docker containers to update volume mappings for the new data model introduced in 1.12.0

#Permission denied when running docker commands

This is a Linux issue, and implies that your permissions are not properly set up. There are two ways to get around this:

  1. The Easy method: If you have sudo access on your user, simply prefix commands with sudo (for example: sudo docker compose down)
  2. The Proper method: Fix your permissions. This varies depending on the version of Linux you use. There are plenty of guides online to help you fix this issue.