About this project

Sotto is an open-source, self-hosted language learning platform designed to provide private, low-pressure rehearsal before real-world speaking. It builds a complete CEFR course around the learner's own context—notes, goals, work, and interests—rather than generic content. The platform supports five graded skills: grammar, reading, listening, speaking, and writing, with mastery-gated progression and adaptive content generation. Key features include a personal memory graph using SM-2 spaced repetition, adaptive listening episodes seeded with due vocabulary, sourced classes from real articles or YouTube links with verified citations, live conversation via the Gemini Live API, practice exams modeled on Goethe, DELE, and Cambridge formats, and iPad workbook PDFs for annotation. The system supports bring-your-own-key (BYOK) for LLM, TTS, and STT providers, as well as a keyless local agent path through Claude Code or Codex CLI, and can run fully offline with local models. Sotto is built with Next.js 16, React 19, TypeScript, Prisma 7, and PostgreSQL 16. Installation is via a Docker Compose-based installer script, with desktop launchers available for macOS, Windows, and Linux. The project is licensed under AGPL-3.0 and includes CI, CodeQL, gitleaks, and Dependabot integrations. It positions itself against OpenLingo as a more feature-complete alternative, with additional capabilities like mastery gates, interactive memory graph, rubric pronunciation scoring, and a first-party terminal client.