Skip to content

Latest commit

 

History

History
185 lines (132 loc) · 5.05 KB

File metadata and controls

185 lines (132 loc) · 5.05 KB

Nova Link

Platform Release License

✨ A beautiful desktop companion app with Live2D character and AI chat ✨

Nova Link Screenshot


Table of Contents


Features

  • 🎨 Live2D Character Display - Beautiful animated characters rendered with WebGL
  • 🤖 AI Chat Integration - Connect to LLM APIs (OpenAI, MiniMax, or any OpenAI-compatible endpoint)
  • 🌐 WebSocket Server - Built-in WebSocket server for external integrations
  • 🔲 Frameless Overlay - Transparent, always-on-top floating window
  • 💬 Context Menu Settings - Right-click to configure model, window, and LLM
  • 📦 System Tray - Runs quietly in background
  • 👤 Identity & Soul Settings - Customize character's identity and personality

Quick Start

Pre-built Releases

Download the latest release for your platform:

  • Windows: Nova Link_x.x.x_x64-setup.exe
  • macOS: Nova Link_x.x.x_x64.dmg / Nova Link_x.x.x_aarch64.dmg
  • Linux: Nova Link_x.x.x_amd64.AppImage

See all releases →

Build from Source

Prerequisites

Development

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

Production Build

# Build for current platform
npm run tauri build

# Build for all platforms (requires cross-compilation toolchains)
npm run tauri build -- --target x86_64-pc-windows-msvc
npm run tauri build -- --target x86_64-apple-darwin
npm run tauri build -- --target aarch64-apple-darwin
npm run tauri build -- --target x86_64-unknown-linux-gnu

Configuration

Right-click anywhere on the window to access the context menu:

Setting Description
Model Path Path to Live2D model (.model3.json)
Window Width and height dimensions
WebSocket URL Server endpoint for external clients
Chat Provider OpenClaw Gateway / LLM
LLM Provider Choose: None / MiniMax / OpenAI Compatible
API Key Your LLM API key
API URL LLM API endpoint
Model Model name to use

Identity & Soul Settings

Open "Character Settings" from the right-click menu to configure:

  • Identity Settings: Name, creature type, temperament, emoji, avatar
  • Soul Settings: Character personality, speaking style, emotion triggers
  • App Settings: Model path, window, chat provider, LLM configuration

Identity and Soul settings are automatically synced to ~/.openclaw/workspace/ directory.

WebSocket API

Nova Link runs a WebSocket server on ws://localhost:18789 (configurable). External clients can connect and send messages:

{
  "type": "message",
  "content": "Hello!",
  "sender_id": "client_1",
  "chat_id": "default"
}

Architecture

┌─────────────────────────┐
│      Nova Link App      │
├─────────────────────────┤
│  Tauri (Rust)          │
│  ├─ WebSocket Server   │
│  ├─ LLM Integration    │
│  ├─ SQLite Storage     │
│  └─ System Tray        │
├─────────────────────────┤
│  WebView (TypeScript)  │
│  ├─ PIXI.js           │
│  ├─ Live2D Display      │
│  └─ Chat UI            │
└─────────────────────────┘

Transparent Window Implementation

Multi-layer transparency mechanism for cross-platform support (macOS/Windows/Linux):

  1. Tauri config: "transparent": true
  2. Rust setup: window.eval() injects JS to set transparent styles
  3. Vue rendering: setTimeout(..., 100) delays style application until DOM renders
  4. Multi-layer: body, documentElement, #app, #live2d-canvas all set to transparent

Tech Stack

  • Frontend: TypeScript, Vite, PIXI.js, pixi-live2d-display, Vue 3
  • Backend: Rust, Tauri v2, tokio-tungstenite, rusqlite
  • Build: GitHub Actions, tauri-action

Contributors

Thanks to all the contributors:

Contributor Description
tangtianshuo Founder, Main Developer

License

MIT License - see LICENSE for details.


Made with ❤️ by Nova Link Team