Marinara Engine is a local-first AI chat, roleplay, and game engine built as a Tauri desktop app. It combines a React interface, a TypeScript product engine, and Rust capability modules for local storage, managed assets, provider transport, integrations, and an optional hostable runtime.
This repository is an active refactor branch. The app is usable from source, but public release packaging and end-user installation guides are still being rebuilt around the new architecture.
Screenshots are coming soon. The previous screenshot set was removed from this refactor branch because it no longer represented the current app structure.
- Conversation mode for character chats and direct-message style workflows.
- Roleplay mode for scene-based writing, characters, personas, sprites, backgrounds, choices, and roleplay state.
- Game mode for AI game-master sessions, party/game state, turns, assets, mechanics, and world tracking.
- Creative library management for chats, characters, personas, lorebooks, prompt presets, chat presets, provider connections, agents, gallery items, and knowledge sources.
- Prompt and generation tooling for presets, lorebooks, regex processing, context building, streaming generation, retries, branches, summaries, and agent-assisted workflows.
- Provider connections for OpenAI, Anthropic, Google, Google Vertex, Mistral, Cohere, OpenRouter, NanoGPT, xAI, Claude subscription mode, OpenAI-compatible custom endpoints, and image-generation backends.
- Professor Mari as a standalone assistant surface with access to selected app context and read-only creative-library tools.
- Local-first data backed by Rust storage and asset capabilities.
Marinara is split so product behavior, UI, runtime adapters, and privileged capabilities have clear owners:
src/app- React bootstrap, shell, providers, and startup effects.src/features- React feature UI for catalog resources, runtime systems, concrete modes, and shell tools.src/engine- React-free TypeScript product behavior, contracts, generation, agents, repositories, and mode engines.src/shared- reusable frontend components, hooks, stores, browser helpers, generated bindings, and shared API adapters.src/shared/api- typed wrappers around embedded Tauri commands and the optional remote Rust runtime.src-tauri- Tauri host, Rust commands, HTTP server/dispatch, and capability crates for storage, security, assets, LLM transport, and integrations.
The optional hostable runtime is the Rust API server only. It does not serve the React UI. Desktop clients can point supported calls at it through the app's Remote Runtime URL setting.
Prerequisites:
- Node.js
- pnpm
- Rust stable toolchain
- Tauri platform prerequisites for your OS
Install dependencies:
pnpm installRun the desktop app:
pnpm tauri devRun the web shell only:
pnpm devBuild the frontend:
pnpm buildBuild the Tauri desktop bundle:
pnpm tauri buildStart the hostable Rust runtime:
cargo run --manifest-path src-tauri/Cargo.toml --bin marinara-serverBy default it listens on:
http://127.0.0.1:8787
Health check:
curl http://127.0.0.1:8787/healthWith Docker Compose:
docker compose up --buildOpen the static docs directly:
docs/developer/index.html
Or serve them locally:
pnpm docs:devThen open:
http://127.0.0.1:4174/
The developer docs cover getting started, run/build commands, architecture, module ownership, and impact areas for changes.
Use the checks that match the change:
pnpm typecheck
pnpm build
pnpm check:architecture
pnpm check:docs
cargo check --manifest-path src-tauri/Cargo.tomlThe combined check is:
pnpm checkThis branch is focused on the refactored desktop/runtime architecture. Public-facing installation pages, release notes, final screenshots, and license metadata should be added back when they are accurate for the new codebase.