Kage mode is the default desktop pet rendering and interaction method since v3.0.0, providing an alternative solution to Live2DViewerEX. Kage is free and open source software. You can submit issues, contribute, or review the source code in the Kage repository.
- Launch Petto directly (defaults to Kage mode on first run)
- If
kage_executableis not configured and Kage is not running locally:- Petto will prompt to download the latest Release
- After extraction, the executable path will be recorded for future launches.
If you already have Kage installed manually, you can select its executable file in settings and set the model JSON path.
When selecting Kage in Settings → Mode, the following fields will appear:
Path to the Kage executable file. Supports:
- Windows:
kage.exe - macOS:
Kage.app - Linux:
kage
Example: C:\Users\You\.petto\kage\kage.exe
If left blank and Kage is not running, Petto will prompt for download on startup.
Path to the Kage model JSON file.
Example: C:\models\hiyori.model3.json
Kage's WebSocket service address.
Default: ws://localhost:23333
If you modify Kage's startup port, you need to update this address accordingly.
List of available motions for the desktop pet, comma-separated.
Example: Idle,Tap,TapHead
How to obtain:
- Click the refresh icon on the right
- Petto will automatically fetch all motions from Kage for the current model
- Auto-fill into this field
You can also fill manually, but ensure the motion names match those in the model.
- Fill in the complete path to the model JSON file in "Model Config Path"
- Click save
- Petto will automatically send the model path to Kage via WebSocket
- After Kage loads successfully, click the refresh button next to action groups to fetch the motion list
- Select a new model JSON path
- Click save
- Kage will automatically unload the old model and load the new one
Kage supports the following features:
- Trigger Motion: Automatically triggers random motions from the action group during timed greetings and voice responses
- Query Motion List: Fetch all available motions for the current model via the refresh button
- Set Expression: Support long-term expression settings (if model supports)
- Clear Expression: Restore to default expression
Motions are automatically triggered in the following scenarios:
- Timed greetings
- Responses after voice recognition
- When user sends messages
Possible Causes:
- Kage not running
- WebSocket address incorrect
- Firewall blocking
- Port occupied by another program
Solutions:
- Confirm if Kage is running
- Check if the address matches what's configured in Kage (default
ws://localhost:23333) - Check firewall settings, allow Petto and Kage to communicate
- If port is occupied, modify Kage's startup parameters and update the address in Petto settings accordingly
Possible Causes:
- Model JSON path incorrect
- Model file corrupted
- Model format not supported
Solutions:
- Confirm the model JSON file path is correct and the file exists
- Try loading the model in Kage standalone to see if there are error messages
Enable Settings → Enable Logging to view detailed log information.
Log files can help quickly identify issues. It's recommended to enable logging when encountering problems.