diff --git a/README.md b/README.md index 407c6dbf29..8e09dd75af 100644 --- a/README.md +++ b/README.md @@ -1,211 +1,32 @@ -# ๐Ÿ Marinara Engine +# ๐Ÿ Marinara Engine โ€” LukaTheHero's Personal Edition -

Fun. Intuitive. Plug-And-Play.

+This is a personal, edited version of **[Marinara Engine](https://github.com/Pasta-Devs/Marinara-Engine)**, maintained by **LukaTheHero** โ€” a former Marinara Engine developer. -

- A local, AI-powered chat, roleplay, and game engine built around one idea: you install it, you run it, and it just works. Oh, and don't forget about the part where you have fun! ALSO, HEY, LOOK, IT'S FREE.
- Created with agentic use in mind, allowing multiple requests at once. Everything is connected. Chat with your characters OOC about your roleplays. Have them create RP scenes for you. All designed with simplicity in mind: we don't want to spend hours on setup, we just want to goon play.
-

+I run my own branch of Marinara Engine for **personal use**: I keep it in sync with the upstream project and layer my own preferences and changes on top. **Anyone is free to use it if they wish** โ€” just know it's tailored to how *I* like to use it, not an official release. ---- - -> **โš ๏ธ Alpha Software** โ€” Early release. Expect rough edges, missing features, and breaking changes. Bug reports and feedback are very welcome! - ---- - -## Table of Contents - -- [๐Ÿ Marinara Engine](#-marinara-engine) - - [Table of Contents](#table-of-contents) - - [Latest Release](#latest-release) - - [Roadmap](#roadmap) - - [Installation](#installation) - - [Features](#features) - - [Chat \& Roleplay](#chat--roleplay) - - [Visual \& Immersive](#visual--immersive) - - [AI Agent System](#ai-agent-system) - - [Prompt Engineering](#prompt-engineering) - - [Connections \& Providers](#connections--providers) - - [Export \& Data](#export--data) - - [Documentation](#documentation) - - [Community \& Support](#community--support) - - [Contributors](#contributors) - - [License](#license) +For the full project โ€” its complete feature set, installation guides, screenshots, and documentation โ€” see the upstream repository: **[Pasta-Devs/Marinara-Engine](https://github.com/Pasta-Devs/Marinara-Engine)**. --- - - -
-

Screenshots

- -

- Roleplay Chat โ€” Desktop -
- Roleplay Mode โ€” Character sprites, custom backgrounds, weather effects, and AI agents -

- -

- Home -    - Onboarding Tutorial -

-

- Home screen   ยท   Guided onboarding -

- -

- DM Conversation -    - Conversation with Selfie -

-

- Conversation Mode โ€” Discord-style DMs with selfies and image generation -

- -

- Bot Browser -
- Bot Browser โ€” Search and import characters from Chub.ai -

- -

- Game Mode โ€” Scene -
- Game Mode โ€” AI Game Master, party of characters, generated backgrounds, weather, and time of day -

- -

- Game Dialogue -    - Party Card -

-

- NPC dialogue tracking   ยท   Party member card with stats, levels, and abilities -

- -

- Mobile Group Conversation -      - Mobile Roleplay -      - Mobile Game Mode -

-

- Fully responsive โ€” Conversations, Roleplay, and Game Mode all work on phones and tablets via PWA -

- -
+## What's different in this edition ---- - -## Latest Release - -Current stable release: **[v2.0.6](https://github.com/Pasta-Devs/Marinara-Engine/releases/tag/v2.0.6)**. - -See [CHANGELOG.md](CHANGELOG.md) for detailed release notes. Tagged releases use the `vX.Y.Z` format and are published on the [Releases](https://github.com/Pasta-Devs/Marinara-Engine/releases) page. Android APKs are Termux bootstrap + WebView shells: they can download Termux from F-Droid, launch Android's installer, start the Termux setup flow after required permission prompts, then open the local Marinara server on the same device. - ---- +Everything below is layered on top of upstream Marinara Engine. I update this branch with my own preferences, and these are the changes specific to my version: -## Roadmap +### ๐Ÿง  Claude (Subscription) model list + Fable 5 -- Free-to-download mobile apps for Android and iPhone -- An engine feature for building and sharing full games with custom sprites, soundtracks, and scenarios -- New game modes: tabletop-style, point-and-click, and classic text adventures -- Ongoing improvements and bug fixes +The Claude (Subscription) model picker mirrors the Claude Code model menu โ€” current models first, then `(Legacy)` โ€” and includes **Fable 5**, Opus 4.8, Sonnet 4.6, Haiku 4.5, and legacy Opus 4.7 / 4.6. Each 1M-capable model also gets its own **(1M context)** entry. -More detailed public [roadmap](https://github.com/orgs/Pasta-Devs/projects/1). - ---- - -## Installation - -| Platform | Guide | -| ---------------------------- | ----------------------------------------------------------------------------------------------- | -| ๐Ÿณ Docker / Podman | [Container Installation Guide](docs/installation/containers.md) โ€” recommended | -| ๐ŸชŸ Windows | [Windows Installation Guide](docs/installation/windows.md) | -| ๐ŸŽ๐Ÿง macOS / Linux | [macOS / Linux Installation Guide](docs/installation/macos-linux.md) | -| ๐Ÿค– Android APK Bootstrap | [Android APK Guide](android/README.md) โ€” guided tap-through install/start shell | -| ๐Ÿค– Android Manual Termux | [Android (Termux) Installation Guide](docs/installation/android-termux.md) โ€” manual fallback | -| ๐Ÿ“ฑ iOS / iPadOS | [iOS / iPadOS PWA Guide](docs/installation/ios-pwa.md) | - -> **Recommended Android path:** download the Android APK from the latest GitHub Release, open it, then tap **Install / Start Marinara**. The APK can download Termux from F-Droid, hand it to Android's installer, request Termux command permission, start the setup command, and open the local Marinara server when it is ready. Android still shows its required install/permission prompts. - -Each guide covers installation, updating, and LAN access for that platform. See [Configuration Reference](docs/CONFIGURATION.md) for environment variables setup. Having trouble? See [FAQ](docs/FAQ.md) and [Troubleshooting](docs/TROUBLESHOOTING.md). - -Upgrading from an older release? See [Upgrading to v2.0.0](docs/UPGRADING.md) for the platform-by-platform path from v1.6.1. - -Security defaults are intentionally local-first: loopback access works out of the box, ordinary LAN and public clients require Basic Auth unless you explicitly opt back in, and Tailscale (`100.64.0.0/10`) plus Docker bridge (`172.16.0.0/12`) traffic are trusted by default for easier private installs. Set `BYPASS_AUTH_TAILSCALE=false` or `BYPASS_AUTH_DOCKER=false` if you want those clients to authenticate too. `ALLOW_UNAUTHENTICATED_PRIVATE_NETWORK=true` restores unauthenticated access for other trusted private networks; public clients still require `ALLOW_UNAUTHENTICATED_REMOTE=true`. Powerful actions such as backups, bulk import, update apply, sidecar install/download/delete, haptics, and custom tool mutation also require `ADMIN_SECRET`; see [Access Control](docs/CONFIGURATION.md#access-control). - ---- +### ๐Ÿ“ 1M-context support for Claude (Subscription) -## Features +Picking a **(1M context)** model turns on Anthropic's 1M-token context beta under the hood, so the full million-token window is actually used โ€” and the app won't misread that choice as a silent model downgrade. -### Chat & Roleplay - -Three chat modes โ€” **Conversation** (Discord-style DMs), **Roleplay** (immersive RPG with sprites and backgrounds), and **Game** (AI Game Master with party, quests, and combat). Characters can share memory across modes. Create or import characters, search the Chub.ai bot browser, organize chats into folders, branch conversations, swipe between alternate responses, and import from SillyTavern. - -### Visual & Immersive - -Character expression sprites with automatic emotion switching, custom scene backgrounds, dynamic weather overlays, two visual themes (Y2K Marinara and SillyTavern classic), and light/dark mode. - -### AI Agent System - -20+ built-in agents that run alongside your chat โ€” world state tracking, quest management, combat, expression detection, background selection, Narrative Director, prose analysis, Music DJ for Spotify/YouTube, CYOA choices, and more. Add only the agents you want to each chat, or create/import custom agents. - -### Prompt Engineering - -Preset system with drag-and-drop prompt ordering, lorebooks with keyword triggers, an AI lorebook maker, world info inspector, regex scripts, and a macro/template system. - -### Connections & Providers - -OpenAI, Anthropic, Google Gemini, Google Vertex AI, OpenRouter, NanoGPT, Mistral, Cohere, Pollinations, Stability AI, Together AI, NovelAI, ComfyUI, SD Web UI, Draw Things (Apple Silicon, Metal + Apple Neural Engine), and custom OpenAI-compatible endpoints. API keys are encrypted at rest with AES-256. Per-chat connection overrides. - -### Export & Data - -Export individual chats or bulk transcript zips as JSONL or plain text. Fully local file-native storage โ€” all data stays on your machine. No account required. - ---- - -## Documentation - -| Document | Description | -| ---------------------------------------------------- | --------------------------------------------------------------- | -| [docs/INSTALLATION.md](docs/INSTALLATION.md) | Installation guide index (all platforms) | -| [docs/CONFIGURATION.md](docs/CONFIGURATION.md) | Environment variables and `.env` reference | -| [docs/IMAGE_GENERATION.md](docs/IMAGE_GENERATION.md) | Image provider setup, style profiles, and prompt cleanup | -| [docs/EXTENSIONS.md](docs/EXTENSIONS.md) | Extension folder manifests, package format, and examples | -| [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | Common issues and fixes | -| [docs/FAQ.md](docs/FAQ.md) | Frequently asked questions (LAN access, etc.) | -| [docs/MACROS.md](docs/MACROS.md) | Prompt macro syntax, including weighted random choices | -| [docs/PROFESSOR_MARI.md](docs/PROFESSOR_MARI.md) | Built-in assistant capabilities, limits, and safety notes | -| [docs/FRONTEND.md](docs/FRONTEND.md) | Frontend architecture, components, hooks, and API reference | -| [docs/ARCHITECTURE_MAP.md](docs/ARCHITECTURE_MAP.md) | Code ownership map and module-boundary refactor groundwork | -| [android/README.md](android/README.md) | Android Termux bootstrap + WebView shell guide | -| [CONTRIBUTING.md](CONTRIBUTING.md) | Contributor workflow, validation, versioning, and release steps | -| [CHANGELOG.md](CHANGELOG.md) | Release notes | -| [CLAUDE.md](CLAUDE.md) | Maintainer notes for contributors using Claude | - ---- - -## Community & Support - -- [**Join our Discord**](https://discord.com/invite/KdAkTg94ME) โ€” Chat, get help, share characters, and give feedback -- [**Support on Ko-fi**](https://ko-fi.com/marinara_spaghetti) โ€” Help keep the project alive - ---- +### ๐Ÿ“‚ Multi-open, persistent group folders (Characters & Personas) -## Contributors +Group folders in the Characters and Personas panels can be **open several at a time** instead of one-at-a-time, and which folders are open is **remembered** โ€” it survives reloads, storage clears, and syncs across your devices. -

- - Marinara Engine contributors - -

+### ๐Ÿ–ฑ๏ธ Right-click "Quick Start" on library characters -

- Made with contrib.rocks. -

+Right-click any character in the Characters panel โ€” in the main list or inside a folder โ€” to instantly **Quick Start Roleplay** or **Quick Start Conversation**. It's the same shortcut the Bot Browser already had, now available for every character in your library. --- diff --git a/scripts/versioning.mjs b/scripts/versioning.mjs index 86c6c37d0a..8b58191070 100644 --- a/scripts/versioning.mjs +++ b/scripts/versioning.mjs @@ -5,17 +5,6 @@ import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); export const REPO_ROOT = resolve(__dirname, ".."); -const README_RELEASE_LINE = - "Current stable release: **[v%s](https://github.com/Pasta-Devs/Marinara-Engine/releases/tag/v%s)**."; - -function format(template, ...values) { - let next = template; - for (const value of values) { - next = next.replace("%s", value); - } - return next; -} - async function readText(relativePath) { return readFile(resolve(REPO_ROOT, relativePath), "utf8"); } @@ -95,15 +84,6 @@ function updateAndroidBuildGradle(content, version, androidVersionCode) { return next; } -function updateReadme(content, version) { - return replaceOrThrow( - content, - /Current stable release: \*\*\[v[^\]]+\]\(https:\/\/github\.com\/Pasta-Devs\/Marinara-Engine\/releases\/tag\/v[^)]+\)\*\*\./, - format(README_RELEASE_LINE, version, version), - "README latest release line", - ); -} - export async function readCanonicalVersion() { const packageJson = JSON.parse(await readText("package.json")); if (typeof packageJson.version !== "string" || packageJson.version.length === 0) { @@ -154,10 +134,6 @@ const DERIVED_VERSION_FILES = [ path: "android/app/build.gradle", render: (content, version, androidVersionCode) => updateAndroidBuildGradle(content, version, androidVersionCode), }, - { - path: "README.md", - render: (content, version) => updateReadme(content, version), - }, ]; async function buildExpectedFiles(androidVersionCode) {