#parameters #api #studio #api-client #hotkeys #vtubestudio #v-tube

app vtubestudio-cli

CLI program for interacting with the VTube Studio API

7 releases

0.4.0 Oct 29, 2022
0.3.6 Sep 19, 2022
0.3.5 Apr 30, 2022
0.3.4 Feb 20, 2022
0.3.2 Nov 24, 2021

#1850 in Command line utilities

MIT license

45KB
995 lines

vtubestudio-cli (vts)

CLI program for sending one-off requests to the VTube Studio API. It connects to the websocket, authenticates, performs one or two other requests, and then disconnects and exits.

The primary use case is to do infrequent actions such as triggering hotkeys or registering custom parameters, without needing to establish a long-running websocket connection.

For more complex tasks, you might want to look at client libraries like vtubestudio-rs (the Rust library that this program uses under the hood).

Download

Check the releases page to download prebuilt binaries for your platform.

Otherwise you can use cargo install vtubestudio-cli or build it manually from this repo using cargo build --release.

Initialization

vts reads auth token info from a JSON config file whose default location depends on platform.

To generate the config in the default location, you can run:

vts config init

This will register the plugin with the VTube Studio API (the user will get a pop-up in the app asking for confirmation) and save the token for use in future calls. The plugin name and developer name can be customized with --plugin-name and --developer-name, respectively.

Config file location

By default, the config file can be found at:

  • Windows: %USERPROFILE%\AppData\Roaming\walfie\vtubestudio-cli\config.json
  • macOS: $HOME/Library/Application Support/com.github.walfie.vtubestudio-cli/config.json
  • Linux: $XDG_CONFIG_DIR/vtubestudio-cli/config.json or $HOME/.config/vtubestudio-cli/config.json

This path can be overridden by setting the VTS_CONFIG environment variable or passing the --config-file flag.

You can also run vts config path to show the path to the config, or vts config show to show the contents of the config file.

Usage

Hotkeys

  • List hotkeys

    vts hotkeys list
    
  • Trigger hotkey by id

    vts hotkeys trigger e50ef5139b114d63af342eb65072a5e3
    
  • Trigger hotkey by name

    vts hotkeys trigger --name MyHotkeyName
    

Artmeshes

  • List artmeshes

    vts artmeshes list
    
  • Tint artmesh (rainbow)

    vts artmeshes tint --rainbow --duration 5s --tag-contains shirt sleeves
    

    VTube Studio resets artmesh tints when the plugin disconnects. Since this CLI program normally disconnects immediately after executing commands (which would otherwise reset the tint), the --duration flag adds a delay afterwards, to keep the tint active.

  • Tint artmesh (hex color)

    vts artmeshes tint --color ff0000 --duration 5s --tag-contains eye
    

    The hex color also supports alpha, so values like ff0000aa are also valid.

Params

  • Create parameter

    vts params create MyParameterName --default 0 --min 0 --max 50
    
  • Inject parameter value

    vts params inject MyParameterName 5
    
  • Get value of parameter

    vts params get MyParameterName
    

Models

  • List models

    vts models list
    
  • Load model by ID

    vts models load 8caf15fa0c664f489873386e43835a7f
    
  • Load model by name

    vts models load --name Akari
    
  • Move model

    vts models move --relative --duration 0.5s --rotation 180
    

Expressions

  • Get expression list.

    vts expression list --details
    
  • Activate expression.

    vts expression activate myExpression_1.exp3.json
    

Physics

  • Get physics settings.

    vts physics get
    
  • Set base physics strength (default 500ms).

    vts physics set base strength 50
    
  • Set base wind strength for 3 seconds.

    vts physics set base wind 50 --duration 3s
    
  • Set strength multiplier.

    vts physics set multiplier strength 1 --id PhysicsSetting1
    
  • Set wind multiplier.

    vts physics set multiplier wind 0.5 --id PhysicsSetting1
    

Others

vts --help

Dependencies

~12–17MB
~317K SLoC