Skip to content

niobe v0.15.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 10:51
· 576 commits to main since this release

niobe 0.15.0

The shell now has menus, a history of everything you asked, and the backend's own commands and skills a / away. A repository's config is asked about where you can answer, and a plan shows what limits it rather than a dollar figure nobody pays.

Getting around

  • Menus. The menu bar's names open drop-down menus (Niobe, Session, Context, Model, View, Help) with Esc and a letter, Alt and a letter, or a click. Each lists every action the shell can do next to the key that reaches it directly. An item the session cannot do is dimmed and says why when chosen. The View menu hides and shows each right-hand pane.
  • A reworked F-key bar: Esc Stop, then 1 Help, 2 Compact, 3 Clear, 4 Model, 5 Diff, 6 Rewind, 7 MCP, 8 Memory, 9 Settings, 0 Quit. All ten fit whole at eighty columns, and a click presses one. A backend command such as /clear or /compact is sent only where the backend offers it, and never while a turn runs.
  • / opens the backend's commands and skills, as it does in Claude Code itself, including skills a plugin adds. Searching the transcript moves to Ctrl+F, which works with a prompt half written.
  • Earlier prompts. Up on the composer's first row walks back through the prompts of this session and of every earlier one in the repository; Down walks forward and, past the newest, gives back what you were writing.
  • A history dialog. Ctrl+R opens your earlier prompts, filtered as you type; Enter puts one in the composer unsent. Tab turns it to past sessions, Niobe's and Claude Code's own, and Enter there opens the chosen session in the same terminal. A session another niobe has open is marked in use and is not opened. Session › Resume… opens the same view.
  • Ctrl+U deletes to the start of the line, as in a shell. Left and Right step over a whole emoji or accented letter.

Trust

  • The shell asks before trusting a repository's config. When a cloned repository's config sets environment variables, arguments, permission rules, billing or anything else only a trusted file may, a dialog lists exactly what trusting it would put in force, values included, before any backend starts. "No" opens the session without those settings.
  • niobe trust shows the same list and asks before recording anything; pass --yes to agree without a terminal.
  • Reading the working tree no longer runs any filter, hook or fetch command a repository's own git config names, and no longer rewrites your git index under you.
  • Permission rules copied from Claude Code in its Bash(git status:*) or Read(src/**) form are refused at their line with the rule to write instead, rather than silently matching nothing.

Usage and cost

  • No dollar figures on a Pro or Max plan. What limits a plan is its usage windows, so the Usage pane, the budget row and the printed summary show tokens and window share there. A metered account still sees its bill. --budget on a plan profile is refused, since a budget is counted in dollars.
  • Usage windows read in three colours: plain below half, a warning colour from 50% and the error colour from 90%, in every theme.
  • A session that was billed both ways (resumed from a plan onto a metered profile) is labelled as such everywhere its money appears, and shows the money of its metered part only.
  • Claude Sonnet 5.5 is priced and has a context window, including its Bedrock EU and US profiles.
  • A session total is no longer billed twice after a model change ($0.13 shown for a session that cost $0.08).

The transcript

  • A test run is drawn where it happened, under the call that ran it, with a bar of its passed, failed and ignored tests. A run still going shows how long it has run against the last whole run of the same command.
  • The Changes pane is now the working tree alone: git's own view of everything not yet committed. The Decisions section, which nothing ever filled, is gone from the Activity pane.

Fixes

  • A claude CLI stopped by a signal between turns no longer ends the session; the next prompt starts it again on the same conversation.
  • A locked session store (a sqlite3 shell, a backup) no longer freezes the screen; events that could not be saved are counted after the shell closes.
  • A prompt sent while a reply is streaming no longer splits the reply in two.
  • When the CLI refuses a model change, the header, pricing and context window stay on the model that is actually running.
  • A permission question the CLI withdrew is let go of, and keys typed for it no longer approve the question behind it or send a fragment as a new prompt.
  • A pasted sentence that ends in an image name stays text, and a dropped file with a space or non-ASCII name is found. Enter waits for an image that is still being read.
  • An idle shell holding a very long reply stays cheap, and the composer holds up to 64 KiB with every key drawn in time.
  • Markdown tables and deep nesting stay inside the pane, table columns line up with wide characters, and a diff of a large new file draws quickly.
  • A clipboard reader that hangs is killed at its deadline and named, rather than read as an empty clipboard. An argument that is not UTF-8 is refused instead of crashing.