PocketRisu is a self-hosted AI roleplay chat platform, forked from RisuAI. It runs as a Node.js server with a Svelte 5 frontend, accessed via browser. The system supports multiple AI providers (OpenAI, Anthropic, Google Gemini, etc.) through a pluggable adapter pattern, and includes character management, lorebooks, plugins, MCP (Model Context Protocol) tools, translation, TTS, image generation, and a comprehensive data-driven settings system. Data is stored in SQLite with content-defined chunking for large values, and the architecture is a monolith with a client-server split: the server handles persistence, backup, asset manifests, and model job processing; the client handles UI, state management, and direct AI API calls (with optional server-side proxy). Key entry points include src/main.ts (client bootstrap), server/node/server.cjs (server), src/ts/storage/database.svelte.ts (central store), and src/ts/process/request/ (AI request handling). External dependencies include Node.js, SQLite, various AI provider APIs, MCP servers, and browser APIs (File System Access, IndexedDB). The codebase is well-tested with unit and integration tests, and features a sophisticated plugin system with sandboxed execution, a model preset registry with remote sync, and a chat delta sync mechanism for efficient data transfer.
Open Dungeon is a fully local AI roleplay application that generates both narrative text and inline scene images on-device. Built as a Next.js 16 application with a React 19 frontend, it provides a rich interactive fiction experience where users can write actions, dialogue, or narration, and the AI narrator responds with streaming prose. The system supports multiple text backends: local Ollama models (Gemma 4 QAT variants) or any OpenAI-compatible server (LM Studio, llama.cpp, OpenRouter, etc.). Image generation is handled by a separate Python HTTP server that wraps optimized FLUX.2-klein backends (MFLUX/MLX on Apple Silicon, PyTorch SDNQ on CUDA/CPU) or an existing ComfyUI instance. The architecture is a monolith with a Next.js server handling API routes, SQLite for persistence, and an optional sidecar image server. Key entry points include the main chat UI (src/app/page.tsx), the story API (src/app/api/story/route.ts) which handles streaming narration, and the image generation API (src/app/api/images/route.ts). The codebase demonstrates strong engineering practices: thorough streaming support with artifact filtering, robust error handling with timeouts and fallbacks, clean database abstraction, and well-structured Python image server with resident model support.