Skip to content

shioritan-dev/Shioritan

Repository files navigation

Shiotan

Shiotan

Shiotan is a Tauri desktop launcher and reading companion for visual novels. It combines a local VN library, metadata/artwork workflows, playtime tracking, Discord Rich Presence, and text-hook tooling in a single app.

Highlights

  • VN library management with SQLite-backed local data
  • Runner support for Windows and Linux (Wine/native/custom)
  • Metadata and artwork lookup with provider fallback
  • Route/progress tracking and play session history
  • Discord Rich Presence with configurable status text
  • Text hook support:
    • Windows: Textractor
    • Linux: LunaTranslator
  • Optional plugin system with trust and permissions scaffolding

Tech Stack

  • Frontend: React + TypeScript + Tailwind CSS
  • Desktop runtime: Tauri
  • Backend: Rust
  • Database: SQLite (rusqlite)

Quick Start

  1. Install prerequisites:
    • Node.js
    • Rust toolchain
    • Tauri system deps (Linux: WebKitGTK and related packages)
  2. Install dependencies:
    • npm install
  3. Configure environment:
    • cp .env.example .env
  4. Start development app:
    • npm run tauri dev

Build

Linux

  1. Install Linux Tauri dependencies (WebKitGTK and related system packages).
  2. Build frontend + desktop app:
    • npm run tauri build
  3. Artifacts are output under:
    • src-tauri/target/release/bundle/

Windows

  1. Install Visual Studio C++ Build Tools (or Visual Studio with Desktop C++), Rust (MSVC target), and Node.js.
  2. Build frontend + desktop app:
    • npm run tauri build
  3. Artifacts are output under:
    • src-tauri/target/release/bundle/

Notes:

  • Cross-compiling Windows installers from Linux is not part of the standard flow here.
  • Prefer building each platform on its native OS for release artifacts.

Configuration Notes

  • .env is loaded from project root (and src-tauri/.env if present).
  • Keep .env private and out of version control.
  • Discord App ID and SteamGridDB key have bundled defaults for packaged builds.
  • Key options:
    • STEAMGRIDDB_API_KEY: optional override for SteamGridDB artwork lookup key
    • DISCORD_APP_ID: optional override for Discord Rich Presence app ID
    • VNHUB_WINE_BINARY: force a specific Wine binary on Linux
    • VNHUB_FORCE_X11=1: Wayland fallback if compositor issues occur
    • VNHUB_TEXT_HOOK_PROVIDER=auto|textractor|lunatranslator

Integrations

Discord Rich Presence

  • Set DISCORD_APP_ID in .env.
  • Optional fallback image key: DISCORD_ASSET_FALLBACK_KEY.
  • HTTP(S) VN artwork is sent to Discord as mp:<url> when available.

Text Hooking

  • Windows (Textractor):
    • Configure VNHUB_TEXTRACTOR_GUI_PATH
    • Optional: VNHUB_TEXTRACTOR_GUI_ARGS, VNHUB_TEXTRACTOR_WS_URL
  • Linux (LunaTranslator):
    • Configure VNHUB_LUNA_PATH
    • Optional: VNHUB_LUNA_ARGS, VNHUB_LUNA_WS_URL, VNHUB_LUNA_WINEPREFIX
    • Optional connect-only mode: VNHUB_LUNA_SPAWN=0

Plugins

Plugin runtime is optional and disabled by default.

  • Enable bootstrap: VITE_SHIOTAN_ENABLE_PLUGINS=1
  • Enable local discovery: VITE_SHIOTAN_ENABLE_LOCAL_PLUGIN_DISCOVERY=1
  • Enable runtime imports: VITE_SHIOTAN_ENABLE_PLUGIN_RUNTIME_IMPORTS=1
  • Acknowledge trust gate: VITE_SHIOTAN_PLUGIN_TRUST_ACKNOWLEDGED=1

Plugin docs:

  • Overview: docs/plugins/README.md
  • API contract: docs/plugins/PLUGIN_API.md
  • SDK quickstart: docs/plugins/SDK.md
  • Permissions: docs/plugins/PERMISSIONS.md
  • Publishing: docs/plugins/PUBLISHING.md
  • Manifest schema: docs/plugins/manifest.schema.json

Project Documentation

  • Docs index: docs/README.md
  • Architecture: docs/ARCHITECTURE.md
  • Changelog: CHANGELOG.md
  • Known issues: docs/KNOWN_ISSUES.md
  • QA smoke plan: docs/QA_SMOKE.md
  • Release checklist: docs/RELEASE_CHECKLIST.md
  • Release process: docs/RELEASING.md

License

MIT License. See LICENSE.

About

Shiotan is an open-source visual novel launcher and reading companion with metadata, route tracking, rich presence, and text-hook support.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors