A desktop assistant for visual-novel / otome / story-driven RPG play: let a large language model drive character dialogue, keep sprites in sync with emotion, and plug in speech synthesis, speech recognition, and extensions like vision and tools—configure everything in the local Settings app while the chat window stays focused on the scene.
- One pipeline for performance: templates, session history, sprite swaps and moods, TTS/ASR, and input plumbing are wired so you spend less time context-switching between tools.
- Two-window design: the Settings app (
webui.py/ bundle) holds API, characters, and plugins; the chat window stays focused on dialogue and stage direction. - Swap models and engines: connect mainstream LLMs and OpenAI-compatible endpoints under API settings; TTS spans GPT-SoVITS, Genie TTS, CosyVoice, and lighter stacks without a discrete GPU; image gen can target ComfyUI-style backends on the same page.
- Listen and speak: optional mic ASR (e.g. Vosk; more via plugins) and line TTS, or turn synthesis off and rely on per-sprite bundled audio only.
- More than plain chat: built-in / plugin LLM tools plus MCP bring search, automation, and other services into the same turn.
- Extensible & themeable: the plugin SDK adds adapters, settings pages, and chat chrome; UI language, fonts, and chat styling can be tuned via config and plugins (e.g.
chat_ui_theme). - Local-first data: defaults live under
data/(api.yaml,system_config.yaml, characters, history)—easy to back up or fork for your own project. - Open source: start from git or a release bundle; optional plugins are listed in Shinsekai-Plugin-Registry.
Walkthrough (Chinese audio/UI): API setup and importing a character pack
| Area | What you get |
|---|---|
| Characters & templates | Create / import-export character packs (.char); AI-assisted bios; chat templates for multi-character setups; history load/save, rewind, and archives. |
| Sprites & staging | Multi-image sprite sets; 0–3× scale; per-image emotion tags tied to dialog mood commands; template-dependent CG / effect fields. |
| Voice | TTS: GPT-SoVITS, Genie TTS, CosyVoice, etc.—pick an engine under API settings and point at your server paths/URLs; choose “off” to play per-sprite line audio only. ASR: mic recognition defaults to Vosk; Whisper-class engines via plugins. |
| LLM & tools | Configure provider, model id, keys, and base URL under API settings; streaming and tool calls; tools from built-in / plugin @tool plus MCP (data/config/mcp.yaml). |
| Text-to-image (T2I) | API settings for ComfyUI (endpoint, workflow, node ids); other T2I adapters can be added via plugins. |
| Settings & system | PySide Settings for API (data/config/api.yaml) and system (data/config/system_config.yaml): UI language, ASR backend, theme tint, font size, and more. |
| Plugins | data/config/plugins.yaml manifest; Plugins tab to discover/install and toggle; extends LLM/TTS/ASR/T2I, tools, Settings / Tools / chat surfaces. |
| MCP | Plugins → MCP or YAML to attach SSE/stdio servers; tools registered into the in-process LLM tool list. |
| Vision & other extensions | Vision, theme editors, etc. ship as official or community plugins (see plugins/); capabilities vary by package README. |
From source:
git clone https://github.com/RachelForster/Shinsekai
cd ShinsekaiBundle: download and extract from Releases (install.bat / start.bat included).
Bundle users: run install.bat.
Developers (Python 3.10 recommended):
conda create -n shinsekai python=3.10
conda activate shinsekai
pip install -r requirements.txtLinux source users may also run ./scripts/install-linux.sh. If a Python 3.10 non-base conda environment is active, the script installs dependencies into that environment; otherwise it prefers uv to create .venv, and falls back to a system python3.10.
Bundle: start.bat. From source:
python webui_qt.pyOn Linux source checkouts, ./scripts/start-linux.sh uses the active non-base conda environment first, then .venv, then system python3.10.
- Open API settings, configure your LLM (e.g. DeepSeek or any OpenAI-compatible endpoint), and save.
- Under Character management, import a pack (example: nanami.char; more packs at Community Resources).
- Open Chat template, select the character, and generate a template.
- Click Start chat; send messages in the main window and watch sprites and replies.
For synthesized dialogue audio, deploy GPT-SoVITS. On weaker hardware or without a dedicated GPU, prefer Genie TTS or similar in API settings.
List plugins in data/config/plugins.yaml; source lives under plugins/<package>/. The host merges LLM / TTS / ASR / T2I adapters, tools, and contributions to Settings, the tools area, and the chat window.
- UI: Settings → Plugins — enable/disable, discover & download from the index, run
pip install -r requirements.txtwith the same interpreter as the app. - Index: Shinsekai-Plugin-Registry
- Scaffold:
python -m sdk.cli create --package your_plugin_name - Developer guide: PLUGIN_DEVELOPER_GUIDE.md
Restart the app after changing the manifest so plugins reload.
Expose MCP servers to the in-process LLM tool list. Supported transports include SSE and stdio.
- Install:
pip install mcp - Configure
data/config/mcp.yaml, or use Settings → Plugins → MCP for a visual editor. - Save & apply reconnects servers and registers remote tools for the current process (use a name prefix per server to avoid clashes).
Independent of the plugin system: you can wire external capabilities through YAML alone—no PluginBase required.
| Topic | Link |
|---|---|
| Chinese README | README.md |
| GUI user guide (Chinese, non-technical) | GUI_USER_GUIDE_zh-CN.md |
| Plugin developer guide | PLUGIN_DEVELOPER_GUIDE.md |
| Repository | github.com/RachelForster/Shinsekai |
Issues and PRs are welcome. If you redistribute character or voice assets, follow each author’s license.
Shinsekai is source-available, not open source. You may inspect the source code, build it locally for personal use, and maintain public forks for discussion and contribution. Redistribution, release builds, installer packages, app store distribution, and commercial use are not permitted without written permission. See LICENSE.
