otaku is a free, open-source LLM frontend for roleplay and creative writing, with web and terminal interfaces. It runs on your own computer, needs no infrastructure, installs in one command, and works with a local model or a cloud API with minimal configuration.
curl -LsSf https://otaku.sh/install.sh | sh
Windows · macOS · Linux
the first 20 and the last 150 messages are always sent to the model as they are, to make it maintain the style
as the number of messages grows, intermediate messages are split into scenes and are automatically summarized; when the story no longer fits the context, its middle is replaced by scene summaries
you can cap the context size yourself
you can see what will be sent to the model with the /context command
if the model supports vision, you can attach pictures to your messages
you are free to play any character during the story
/ooc and /cue to steer the plot, /me and /you to say who is speaking
add and remove characters outside stories, and invite them into a story
characters you introduce in your story are extracted automatically; each character keeps their own journal of what they've seen and experienced
the model can ask you questions with answers to pick from — you pick an answer instead of typing one
the model can search for facts on the internet
the model can keep private notes between turns to store e.g. characters' unspoken intentions, which can improve the plot development
the model can ask for the current date, time, and other local facts
a custom reminder of yours injected at a depth you choose
yet to be added, planned for next releases (see below)
into the characters library, or into a story you've already started
will be split into turns, and you can play with the characters in it
to simplify adding new characters to the library
for better character isolation
including import from SillyTavern — not implemented yet, but you can import world info into the system message
speak instead of typing your turns
Stories live in a local SQLite database; the database is snapshotted daily into the state dir, the last seven kept (configurable).
Pictures attached to a turn and cards' pictures are kept beside the database, downsized and stripped of their metadata; they are not part of the daily snapshot.
Encryption at rest is disabled by default but is one config switch away (AES-256-GCM, sealed client-side): the key can live in your OS keychain, come from a command of your choice (a password manager, a hardware token), derive from a passphrase, or sit on disk. The request log and the pictures are sealed with the same cipher.
Provider API keys are always stored sealed, their key in the OS keychain.