Sobre o projeto

Otaku é um frontend de LLM de código aberto projetado para roleplay, comparável ao SillyTavern ou Janitor AI. É gratuito, roda localmente em macOS, Linux e Windows, e não requer infraestrutura como Docker ou servidores de banco de dados. Os usuários podem interagir através de uma interface web ou de um terminal. O aplicativo suporta backends de LLM locais (llama.cpp, KoboldCpp, Ollama, oMLX, LM Studio) e provedores de API de nuvem (OpenRouter, NanoGPT e qualquer servidor compatível com OpenAI). A instalação é feita por meio de um único comando usando o gerenciador de pacotes `uv` ou o Homebrew. - **Controle de Contexto**: Mantém a prosa consistente enviando sempre as primeiras 20 e últimas 150 mensagens exatamente como estão. As mensagens intermediárias são automaticamente divididas em cenas e substituídas por resumos editáveis para gerenciar contextos longos. - **Reconhecimento de Personagens**: Extrai automaticamente os personagens introduzidos na história. Cada personagem mantém um diário individual de suas experiências. - **Personas Flexíveis**: Os usuários podem interpretar qualquer personagem e usar os comandos `/me` e `/you` para orientar o LLM sobre os papéis dos personagens. - **Contexto Transparente**: O comando `/context` permite que os usuários vejam exatamente o que está sendo enviado ao LLM. - **Importação de Conteúdo**: Suporta a importação de chats do SillyTavern, arquivos de texto simples (divididos em turnos) e cartões de personagem (PNG ou JSON). Lorebooks podem ser importados para a mensagem do sistema. - **Gerenciamento de Histórias**: Os usuários podem navegar, continuar a partir de qualquer mensagem ou bifurcar histórias. A bifurcação copia todas as cenas, personagens e diários para uma nova ramificação. - **Suporte a D&D**: Inclui o comando `/roll` para rolagens de dados (por exemplo, `2d6+3`, `2d20kh1`), que envia os resultados junto com as ações. Os dados são armazenados localmente em um banco de dados SQLite com snapshots diários. A criptografia em repouso (AES-256-GCM) é opcional e pode ser ativada via configuração. As chaves de API dos provedores são sempre armazenadas seladas, com a chave mantida no keychain do sistema operacional. Os arquivos de configuração são gerenciados de forma cirúrgica para preservar as edições do usuário entre as versões, e ambientes separados podem ser executados usando a variável `OTAKU_CONFIG_DIR`.