Skip to content

Releases: enclavum/otaku

v0.4.3

Choose a tag to compare

@enclavum enclavum released this 08 Sep 09:21

Bug fixes.

v0.4.2

Choose a tag to compare

@enclavum enclavum released this 06 Sep 12:27

Bug fixes.

v0.4.1

Choose a tag to compare

@enclavum enclavum released this 03 Sep 12:41
  • A Generic OpenAI provider - any OpenAI-compatible server should work with it.
  • The web UI gets a dark theme switch.

v0.4.0

Choose a tag to compare

@enclavum enclavum released this 02 Sep 12:04
  • Added web UI: otaku web opens the same session in a browser — the second frontend, over the
    same stories, the same lore and the same commands.
  • Added native Windows support (10 and 11, 64-bit only).
  • The context builder is reworked from the ground up, after docs/context_design.md; the new
    max_context setting keeps the prompt inside the window models still handle well for roleplay.
  • The lore browser in terminal (/lore, /cast) is reworked to include the system message and
    the story messages.
  • Prompt caching for OpenRouter.
  • Sound notifications.
  • A second, longer sample story.

v0.3.0

Choose a tag to compare

@enclavum enclavum released this 17 Aug 11:11
  • New feature: character card import with the /card command.
  • Commands /me and /you suggest and autocorrect cast names.
  • New commands available mid-prompt only: /ooc and /cue, both hinting the LLM — /ooc
    introduces a standing note, /cue a one-time steer that the LLM won't see later.
  • The browsers (/stories, /lore, /model) follow the terminal theme.
  • Commands get highlighted.

otaku 0.2.2

Choose a tag to compare

@enclavum enclavum released this 08 Aug 08:59
  • New providers: OpenRouter and NanoGPT (cloud), llama.cpp and LM Studio (local); the prompt for
    cloud providers is $ instead of >.
  • Numerous UI improvements, including:
    • dialogue coloring;
    • undo erases the taken-back exchange from the screen;
    • regenerate erases the old reply and streams the new one in its place;
    • a rule drawn across the screen wherever the played story breaks;
    • providers configurable directly in the model picker (/model or Ctrl+O);
    • /system accepting a file in addition to text input.
  • New commands: /clear, /last, /balance; command /rename renamed to /title.
  • New CLI command: otaku update.

otaku 0.2.1

Choose a tag to compare

@enclavum enclavum released this 01 Aug 11:48

Packaging only — no functional changes.

Changed

  • The required Python version is now 3.11, down from 3.14.
  • Dependency bounds updated.

otaku 0.2.0

Choose a tag to compare

@enclavum enclavum released this 01 Aug 11:40

0.2 is a ground-up rewrite as a roleplay terminal client: chats are stories that can be
branched from any message, a background pass extracts lore from played messages — scenes,
characters, journals — and the context sent to the model keeps the opening and the recent tail
verbatim with scene summaries in between.

What carries over from 0.1: local models, one terminal, encrypted storage. The 0.1 chat and fleet
features (one-shot/pipe mode, otaku list/otaku stop, cross-provider RAM management,
/remember defaults) are gone. The database schema is new.

Added

  • Stories: branch from any message, fork with its memory, resume where you left off; a
    full-screen story browser with message-level resume and in-place editing.
  • The lore engine: idle-debounced background extraction closes scenes over played messages, keeps
    per-character journals with rolled-up histories, and feeds the story back to the model as a
    recap; /lore browses and edits the memory in place.
  • Roleplay commands: /me, /you, /ooc — framing joined at wire time, bodies stored verbatim.
  • Import and export: a lossless Markdown story document, SillyTavern .jsonl chats, and
    plain-text dismantling — the format detected from the file.
  • A sample story seeded into a fresh database, so a first launch lands mid-story — with or
    without a reachable model.
  • Day-rotated request, system, and error logs (otaku logs).

otaku 0.1.2

Choose a tag to compare

@enclavum enclavum released this 06 Jul 18:46

Hardening release: complete state-dir isolation, never-overwrite key handling, and REPL quality-of-life.

Fixed

  • OTAKU_CONFIG_DIR is now fully isolated. Previously a custom state dir
    wrote a config pointing at the default ~/.otaku/history.db, and — much
    worse — its first run replaced the shared OS-keychain key, making the
    primary setup's history permanently undecryptable. Each dir now gets its own
    default database and its own keychain item; the default ~/.otaku keeps the
    legacy item name, so existing installs keep unlocking.
  • Unlock failures no longer stutter ("Could not unlock encryption key: could
    not unlock…") and a key mismatch is spelled out instead of surfacing as an
    empty error.
  • /remember no longer risks dropping other models' saved defaults when
    model_defaults.json is corrupt — it refuses instead, and writes atomically.

Changed

  • Key setup never overwrites anything. Provisioning reuses an existing
    keychain or retrieve_command key instead of replacing it, keychain writes
    are add-only, and keys.json is created exclusively — so deleting
    keys.json no longer burns the key, and a restored backup keeps working.
    A stray pre-envelope history.key is left in place rather than deleted.
  • Bare otaku unlocks encryption before the model picker, so interactive
    key ceremonies (passphrase, command providers) happen up front.
  • /history rows fall back title → summary → first prompt.
  • Config paths in notices are shown ~-shortened; shorter -nr banner.

Added

  • /model remembers the switched-to model as the last used one (the picker
    preselects it next time).
  • [defaults].verbose — set the stats line globally (a session-wide UI
    preference; deliberately not per-model, so /remember doesn't pin it).

otaku 0.1.1

Choose a tag to compare

@enclavum enclavum released this 06 Jul 14:09

Initial public release. (0.1.0 was a premature PyPI upload from a pre-release
tree — it was never tagged and is superseded by 0.1.1.)

Added

  • Multi-backend client for Ollama, LM Studio, MLX (omlx), and any
    OpenAI-compatible server — from one terminal command.
  • Zero-config first run: the initial ~/.otaku/config.toml auto-detects each
    built-in engine's port (and omlx's API key) from your environment
    (OLLAMA_HOST) or the engine's own settings file, falling back to the
    standard default. Runs once, at that first write; edit the sections freely
    afterwards.
  • Cross-provider model management: otaku list (with --running to show only
    loaded models), load and unload from the picker, otaku stop --all, with a
    live RAM gauge. Provider queries run concurrently with a short (0.5s) probe
    timeout, so one configured-but-down provider no longer slows every command;
    when nothing is reachable, otaku names each provider, whether it answered,
    and points at ~/.otaku/config.toml to fix.
  • Chat REPL: streaming responses, thinking-effort control, tok/s stats
    (/set verbose, off by default), triple-quoted multiline input, in-chat
    model switching (/model), /new (fresh conversation) vs /clear (reset
    context in place), and slash commands.
  • Streaming markdown rendering: headers, lists, blockquotes, rules, and fenced
    code blocks (syntax-highlighted via Pygments) on top of inline emphasis/code.
  • omlx output smoothing ([providers.omlx].smooth, default on): de-jitters
    omlx's bursty token delivery into steady typing, without affecting tok/s.
  • Persistent session defaults: a [defaults] config section (system, think,
    parameters, no_record) plus per-model overrides keyed by bare model name;
    /remember saves the current settings as the model's defaults.
  • One-shot / pipe mode: otaku <model> "prompt" and … | otaku <model>
    print a plain reply and exit (prompt + stdin combined instruction-first),
    so otaku works as a Unix filter.
  • Encrypted conversation history (AES-256-GCM), searchable across all
    conversations by full message content, with background LLM-generated
    summaries (idle-debounced so they never block exit or reload a cold model;
    [defaults].create_summaries / summary_idle_seconds), user-set titles
    (/title, shown in the /history picker), and resume-from-any-turn.
  • Get answers out: /copy (last reply or whole chat → clipboard, via the native
    tool or an OSC 52 fallback) and /save <file> (conversation → Markdown).
  • Install via uv tool install or Homebrew (brew install enclavum/tap/otaku).
  • Runs on macOS, Linux, and Windows. On Windows the streaming-time Ctrl+R
    (cancel + regenerate) shortcut is disabled — it needs a POSIX terminal — but
    everything else works; WSL gives full parity.