[GH-ISSUE #29] Cannot launch start SillyTavern with Extras #8

Closed
opened 2026-10-15 18:06:08 +00:00 by bsakaguchi · 3 comments
Owner

Originally created by @ostr00000 on GitHub (Dec 28, 2023).
Original GitHub issue: https://github.com/SillyTavern/SillyTavern-Launcher/issues/29

Originally assigned to: @Frityet on GitHub.

OS: Linux (Ubuntu 23.10)

  1. I believe that this code is incorrect:
    github.com/SillyTavern/SillyTavern-Launcher@8ec79f0783/launcher.sh (L287-L288)

    According to bash manual, exec will replace current shell with specified subcommand.
    This will only launch the first of these commands.

  2. Not sure about all the supported terminals, but in case of konsole there is an error: "Could not find binary: " "cd".
    This is probably because konsole try to run specified command exactly as a new program. There is also used bash syntax (&&), so it should be wrapped in bash caommnad.

  3. Also, probably the path is wrong. In my case, this command is run: konsole -e 'bash -c '\''cd [...]/SillyTavern-Launcher./SillyTavern && ./start.sh'\''' (Note unnecessary . character after Launcher word).

I used this code as a workaround:

            "$detected_terminal" -e "bash -c 'cd $(dirname "$0")/SillyTavern && ./start.sh'" &
            "$detected_terminal" -e "bash -c 'cd $(dirname "$0")/SillyTavern-extras && ./start.sh'" &
  1. In SillyTavern-extras project, there are missing execute permissions for start.sh file. This may be fixed by launcher or maybe bettor to report and fix in that project?

  2. Script start.sh in SillyTavern-extras should use exactly the same conda environment which was configured in launcher (install.sh). According to code in https://github.com/SillyTavern/SillyTavern-Extras/blob/main/start.sh this is configured by setting $CONDA_PATH environment variable. This should be done in laucher.sh.

Originally created by @ostr00000 on GitHub (Dec 28, 2023). Original GitHub issue: https://github.com/SillyTavern/SillyTavern-Launcher/issues/29 Originally assigned to: @Frityet on GitHub. OS: Linux (Ubuntu 23.10) 1. I believe that this code is incorrect: https://github.com/SillyTavern/SillyTavern-Launcher/blob/8ec79f07837932ebe123e9b4f68ef251b303672b/launcher.sh#L287-L288 According to `bash` [manual](https://askubuntu.com/a/525787), `exec` will replace current shell with specified subcommand. This will only launch the first of these commands. 2. Not sure about all the supported terminals, but in case of `konsole` there is an error: `"Could not find binary: " "cd"`. This is probably because `konsole` try to run specified command exactly as a new program. There is also used bash syntax (`&&`), so it should be wrapped in `bash` caommnad. 3. Also, probably the path is wrong. In my case, this command is run: `konsole -e 'bash -c '\''cd [...]/SillyTavern-Launcher./SillyTavern && ./start.sh'\'''` (Note unnecessary `.` character after `Launcher` word). I used this code as a workaround: ```bash "$detected_terminal" -e "bash -c 'cd $(dirname "$0")/SillyTavern && ./start.sh'" & "$detected_terminal" -e "bash -c 'cd $(dirname "$0")/SillyTavern-extras && ./start.sh'" & ``` 4. In `SillyTavern-extras` project, there are missing execute permissions for `start.sh` file. This may be fixed by launcher or maybe bettor to report and fix in that project? 5. Script `start.sh` in `SillyTavern-extras` should use exactly the same `conda` environment which was configured in launcher (`install.sh`). According to code in https://github.com/SillyTavern/SillyTavern-Extras/blob/main/start.sh this is configured by setting `$CONDA_PATH` environment variable. This should be done in `laucher.sh`.
Author
Owner

@Frityet commented on GitHub (Jan 1, 2024):

this is configured by setting $CONDA_PATH environment variable. This should be done in laucher.sh.

I had considered this while rewriting the conda finding code, but the issue is that I am not sure if $CONDA_PATH is something that is already used/standard and so would be detected with other programmes, so having the installer have a side effect of setting that could be malicious

<!-- gh-comment-id:1873483264 --> @Frityet commented on GitHub (Jan 1, 2024): > this is configured by setting $CONDA_PATH environment variable. This should be done in laucher.sh. I had considered this while rewriting the conda finding code, but the issue is that I am not sure if `$CONDA_PATH` is something that is already used/standard and so would be detected with other programmes, so having the installer have a side effect of setting that could be malicious
Author
Owner

@ostr00000 commented on GitHub (Jan 1, 2024):

having the installer have a side effect of setting that could be malicious

That reasonable concern.

But from install.sh I deduced that CONDA_PATH variable is mandatory (otherwise if variable is not set, there are errors, see #28).

  1. If this is indeed mandatory in install script, then it should be also used in start.sh.
  2. Otherwise (if this is an option for user, to customize script and use specified conda), then install.sh needs to be refactored a bit, to check if conda is used either from:
    a) environment variable,
    b) detected existing conda installation by script,
    c) miniconda installed locally by install.sh script (this is my case, I do not have conda installed neither for system nor for user).

This is how I image a perfect launcher: "run install.sh, then start.sh". At this moment, support for 2.c) is missing.


Or maybe README.md needs a little adjustment?
I think that this may work: "If conda is not detected by install script, you must set environment variable CONDA_PATH pointing to existing conda installation. If conda is not installed at all, you must set CONDA_PATH pointing to directory where conda installation will be placed".
But I personally prefer this to be done with minimal user interaction. For example: conda installation may have default path [...]/SillyTavern-Launcher/miniconda/, and if this is dir is detected, then this conda is used for SillyTavern launchers. What you think about that solution?

<!-- gh-comment-id:1873503123 --> @ostr00000 commented on GitHub (Jan 1, 2024): > having the installer have a side effect of setting that could be malicious That reasonable concern. But from `install.sh` I deduced that `CONDA_PATH` variable is mandatory (otherwise if variable is not set, there are errors, see #28). 1. If this is indeed mandatory in install script, then it should be also used in `start.sh`. 2. Otherwise (if this is an option for user, to customize script and use specified `conda`), then `install.sh` needs to be refactored a bit, to check if `conda` is used either from: a) environment variable, b) detected existing `conda` installation by script, c) `miniconda` installed locally by `install.sh` script (this is my case, I do not have `conda` installed neither for system nor for user). This is how I image a perfect launcher: "run `install.sh`, then `start.sh`". At this moment, support for 2.c) is missing. --- Or maybe `README.md` needs a little adjustment? I think that this may work: "If conda is not detected by install script, you must set environment variable `CONDA_PATH` pointing to existing conda installation. If conda is not installed at all, you must set `CONDA_PATH` pointing to directory where conda installation will be placed". But I personally prefer this to be done with minimal user interaction. For example: conda installation may have default path `[...]/SillyTavern-Launcher/miniconda/`, and if this is dir is detected, then this conda is used for `SillyTavern` launchers. What you think about that solution?
Author
Owner

@deffcolony commented on GitHub (Mar 30, 2025):

extras is discontinued:

<!-- gh-comment-id:2764715963 --> @deffcolony commented on GitHub (Mar 30, 2025): extras is discontinued: * https://docs.sillytavern.app/extensions/extras/installation/
Sign in to join this conversation.
No description provided.