Releases

Changelog

Every published release, read from GitHub when this page was built. Tagging v<version> builds macOS and Linux binaries and publishes them with their checksums and the installer, so releases/latest/download/install.sh is always the script that matches the archives beside it.

  1. niobe v0.16.0

    Niobe 0.16.0

    What you can see

    • A new session shows your plan's five-hour and weekly windows from the start, carried over from the last session on the same profile and dated, instead of an empty Usage pane until the first reply.
    • A compaction is shown as a compaction: the working line says the context is being compacted, a row records what it shrank from and to, and the rule under the turn names it.
    • The Activity pane counts tool calls by the kind of work they did (exploring, editing, build and test, version control, the web, delegating, each MCP server) with the programs under each kind; t switches back to tool names.
    • Edits to the agent's own memory notes are one "updated memory" row instead of a full diff each.
    • What the agent ran is drawn dim, so its replies and your prompts stand out; a /command or skill you type is coloured in the composer and in the sent prompt.
    • A permission question for an MCP tool lays its arguments out one key per row instead of one raw JSON string; Ctrl+T still shows exactly what is sent.
    • F8 shows in the shell what the agent is told and remembers: the memory files in the order it is given them, with their imports, readable in place.

    What you can do

    • The model picker lists every model the signed-in claude CLI offers, Fable and exact releases included.
    • A / that starts any word in a prompt offers the skills the backend runs there, not only at the start.
    • Typed /model, /memory, /resume, /help, /config and /exit do what their keys do.
    • New sessions are titled by the claude CLI's small model (about 1k tokens, measured); titles = "first-prompt" turns it off.

    What stopped being wrong

    • The composer hides no rows when a line wraps; it grows with every row the prompt takes, and Shift+Enter keeps the earlier rows in sight.
    • Ctrl+C takes a second press to quit when nothing is running, and closes what is open with one.
    • A reply cut off before its final count is counted from its last snapshot, and a turn total that still differs names the turn, session and messages instead of a raw-number error.
    • A recalled prompt says it is recalled and Esc gives the draft back; scripted claude sessions no longer appear in the history.
    • A dialog's shadow keeps and dims the text under it instead of painting over it; the classic theme follows Far Manager's colours.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.16.0 sh install.sh

  2. niobe v0.15.0

    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.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.15.0 sh install.sh

  3. niobe v0.14.0

    niobe 0.14.0

    You can now give the agent a screenshot, copy what it said with the mouse, and follow a session running many sub-agents without losing track of which one did what.

    Working with the transcript

    • Attach images to a prompt. Ctrl+V, or pasting while the clipboard holds an image, attaches it; pasting or dropping the path of a png, jpeg, gif or webp file attaches that file. The image appears in your prompt as [Image #N] and is sent with it. On macOS an image over the 5 MB a model accepts is shrunk before it is refused. Clipboard images need osascript on macOS and wl-paste or xclip on Linux.
    • Select and copy with the mouse. Drag over the transcript to mark text; releasing copies it, without the side panes and without trailing blanks. Dragging past the top or bottom scrolls. Clicking a link opens it in your browser, even a link wrapped over two lines.
    • A compact transcript. Tool calls with nothing under them sit on consecutive lines as one table, so many more fit on screen.

    Sub-agents

    • Each sub-agent has a short tag (test, reviewer, deep1, deep2) in a column of its own on every row it made, instead of its whole label cut to a few words.
    • Group by agent. Press a while the Changes or Activity pane has the keyboard to gather each turn's sub-agent rows under a heading per agent; press it again to see them in the order they happened.
    • The Activity pane lists the agents running now: tag, task, model and how long each has run, with what it is doing underneath. Agents that finished, failed or were cancelled leave the list and are counted in the section header.
    • Each turn's closing rule counts the sub-agents and calls it had.

    Fixes

    • The Changes pane lists only the commits this session made. A session left open while another agent committed in the same repository no longer claims those commits as its own.

    Looks

    • The desktop behind the panes no longer animates while a turn runs; the spinner already says a turn is going. A config that still sets effects loads as before.
    • A permission question casts a shadow like a dialog, visible in every theme including the dark ones.
    • The Usage pane draws all its figures in one grid.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.14.0 sh install.sh

  4. niobe v0.13.0

    niobe 0.13.0

    The transcript now shows what the agent did in the detail you would check it in: the lines it changed, what each call cost, the tests it ran and what every turn spent. And you can stop it, point it at files and run commands of your own without leaving the shell.

    What the agent did

    • File changes are drawn as the lines that changed, under the call that made them. A long diff is cut at twenty rows; Ctrl+T opens every cut diff in place.
    • Each tool call is a row of a table: its name, what it did, which sub-agent made it, and on the right what it cost and how long it took. A run of calls to one tool folds into one group with Ctrl+O. A call a standing rule allowed says so on its row.
    • Test runs are read. When the agent runs cargo test, the counts appear under the call, including the names of failing tests, and a run the CLI cut short or saved to a file is counted from what survived or from that file. A run whose output was cut and shows no count is still marked failed when it failed.
    • Sub-agents are named on every call and message they made, and a sub-agent's own calls, edits, model and tokens are part of the session, including in a session read back from Claude Code's own files. A permission prompt from a sub-agent says which one is asking.
    • The Working tree section lists files git does not track yet, marked new, rather than showing +0 −0 beside them. Per-file +/− counts agree with git diff --numstat, including for line endings, final newlines and binary files.

    What it cost

    • Every finished turn is ruled off with its tokens, how far it moved the five-hour window and how long it took.
    • A context meter shows how full the context window is, where that can be measured, and is left out where it cannot.
    • Where the account is billed by use, the Usage pane leads with money and shows what the session spends per hour worked. On a subscription plan, a cost figure is labelled API-equivalent; where niobe cannot tell how the account is billed, it shows no cost at all rather than guess.
    • Many figures are now right that were not: a resumed session's first turn no longer bills the whole earlier session again; the 1M context window, fast mode and /clear are priced as the CLI reports them; a turn with no reported usage shows a dash, not 0 tok; and very large counters draw as figures instead of overflowing.

    Steering the session

    • Esc or Ctrl+C stops a running turn and keeps the session. A second Ctrl+C quits.
    • @ names a file in your prompt, completed from the files git lists. A path with a space goes in quoted, as Claude Code reads it.
    • / searches the transcript; // offers the backend's own slash commands.
    • ! runs a command of your own from the ask bar. It runs in a session of its own, so it cannot draw over the shell, and Ctrl+G stops it without ending the session.
    • Shift+Enter opens a new line on terminals that can report it, including under tmux; Ctrl+J does on every terminal. A multi-line paste is one prompt, and an Enter inside a paste is a line break, never a send.
    • Esc and a digit press the F-key the bar names, and the bar's badge names the mode.
    • One pane has the keyboard at a time, and a transcript you have scrolled back in offers the way down.

    Looks

    • Designed themes draw in their own colours on a truecolor terminal; NO_COLOR draws the sixteen ANSI colours.
    • While a turn runs, the desktop behind the panes moves: rain, drifting words or a radar, depending on the theme. effects = false in your config keeps it still.
    • The session pane is captioned with what the session is about, and markdown links, images and footnotes in replies are drawn.

    Safer and sturdier

    • A repository's config that you have not trusted can no longer decide how the account is billed, answer permission prompts, or be read through a link that leads outside the repository. A trusted config stays trusted only for the exact text you trusted.
    • A * rule no longer covers a command chained after the one it allows, and a rule for a command does not cover running it outside the sandbox.
    • Nothing a session starts outlives it, even if niobe is killed outright. The terminal is handed back on SIGINT, SIGQUIT and Ctrl+Z, and redrawn when you continue.
    • Quitting no longer hangs on something the CLI started, and a CLI that is not reading its input no longer freezes the screen.
    • The session store is readable by you alone, and two niobe processes cannot record the same session at once.
    • The installer fails and says why when it could not install a working niobe.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.13.0 sh install.sh

  5. niobe v0.12.0

    niobe 0.12.0

    The composer is now an ask bar, and it tells you which mode the session is in again.

    • The mode is back on screen. The bar's right-hand end reads ▸▸ plan mode, ▸▸ ask mode or ▸▸ auto mode once the backend has said which one is in force, next to the keys that change it: Shift+Tab to cycle the mode, Alt+Enter for a new line. Before a backend has said anything, the bar shows no mode rather than guess one.
    • Hints make room for your prompt. As the pane narrows or your prompt gets longer, the hints drop out one at a time, and a hint is never drawn over what you typed.
    • Replies stay whole. What niobe says back to a key, such as F5's usage windows or why a prompt wasn't sent, now appears in the bar instead of on a row of its own. A reply too long for one line wraps instead of being cut off.
    • niobe --help matches the shell. It lists the numbered answers a permission question takes (1–4 or the arrow keys, Enter, Tab to write your own answer, Esc to decide later) and says where the mode is shown.
    • F5 calls its pane Usage, like the rest of the shell.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.12.0 sh install.sh

  6. niobe v0.11.0

    Niobe 0.11.0

    When the agent needs your permission, the question now appears in the transcript, directly under the work that led to it. It no longer covers the screen.

    • The question scrolls with the transcript. The panes and the input bar stay visible while you decide.
    • The answers are numbered. Pick one with its number, the arrow keys or j/k, then press Enter. Each answer says on its right what it will do, for example niobe saves Bash(cargo test). If a rule is too long to fit, it is repeated in full below the answers, so you always see the whole rule before you save it.
    • The question shows which turn is waiting for your answer.
    • Press Tab to type your own answer instead. The call is refused and the agent receives your words as the reason, for example "open a PR instead of pushing". Your answer does not start a new turn.
    • Press Esc to answer later. The question stays in the transcript and the session shows that it is still waiting on you. The agent waits and Niobe answers nothing for you in the meantime. Press Esc again to go back to the question.
    • If you have scrolled up when a question arrives, your view stays where it is and the bottom of the pane tells you a question is waiting below.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.11.0 sh install.sh

  7. niobe v0.10.0

    Niobe 0.10.0

    The Activity pane now tells you what each sub-agent is doing, not just that it exists.

    • Its model is shown next to it, as the agent's own replies name it, so you can see which work went to a cheaper model and which to a stronger one.
    • Its current step is on a line beneath it while it runs (Reading catalog/cache.py), and the first line of its answer once it finishes. A failed agent shows why it stopped.
    • How large its context grew is shown when it finishes, as done 4100 ctx. This is the size of the agent's conversation as Claude Code counted it, not a bill: Claude Code reports cost per model, never per agent, so Niobe doesn't show a cost for any single agent.
    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.10.0 sh install.sh

  8. niobe v0.9.0

    The Activity pane

    The pane at the bottom of the right-hand column used to list the sub-agents that were running and nothing else. It is now the Activity pane, and it holds everything about what the agent is doing: the sub-agents, the decisions the session recorded, and the tools it called. Three sections, each of which folds, in one column that scrolls.

    A sub-agent that has finished stays in the list with how it went. A pane that showed only what was running erased a failure at the moment it mattered most. The state is a glyph before it is a colour — ◆ running, ◇ done, ✗ failed — so it reads on a sixteen-colour terminal and in whatever palette you have chosen. While an agent runs, its row says how long it has been running.

    Decisions now carry the time they were recorded, in a column of their own, newest first.

    Tools are counted by family rather than by exact name: every tool an MCP server provides is one row for that server, so a session that reached for Notion a dozen ways reads as one figure instead of twelve. Each family carries its own failure count, which the total at the top of the section could never tell you — you can now see which tool you kept failing at.

    The tool bars moved here from the Usage pane rather than being drawn in both places, and they are no longer capped at four: this pane scrolls, so every family gets a row. The Usage pane is four rows shorter for it, and the Changes pane above got those rows — four more of your changed files on screen without scrolling.

    The mouse wheel goes to whichever pane the pointer is over.

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.9.0 sh install.sh

  9. niobe v0.8.0

    Niobe 0.8.0 — the Changes pane knows about your repository

    Until now the Changes pane showed one thing: the files the agent's own edit tools said they had touched, six of them, with "and n more" underneath. It now shows the repository you are working in.

    The branch, and how far it has drifted from its upstream. The working tree, file by file, with the directory written once and the files grouped under it. The commits made since the session started, each with its age and its subject, and the ones your upstream has not got yet marked. All of it measured from the repository by asking git the same questions you would.

    The pane scrolls, and its sections fold, so twenty-three changed files no longer push everything else off the bottom. The mouse wheel goes to whichever pane the pointer is over, and the pane you are scrolling shows a scrollbar so you can tell there is more.

    Two kinds of number about the same files, and Niobe will not blend them. The "Working tree" section is git's count, exact, for every changed file in the tree — including files this session never touched. "This session" is what the agent's edit tools reported, which is a floor rather than a measurement: it carries a "≥" where a call did not say how much it changed, and an em dash where none of them did. They are separate sections with separate headings because they are different claims by different parties.

    Nothing is invented where nothing was read. A repository Niobe has not finished reading says so rather than showing you a confident "+0 −0". A directory that is not a repository grows no branch line and no commits section instead of empty ones. A file git declines to count lines in keeps an em dash, which a file that genuinely changed by no lines does not. A branch with no upstream is not zero commits ahead — it is ahead of nothing, and the figure is absent. A commit whose upstream git cannot compare against is marked as not known rather than guessed either way, and the mark is a symbol as well as a colour, so it survives a sixteen-colour terminal.

    Reading a repository is not free — around a tenth of a second on a small tree, which is six frames' worth — so none of it happens while the screen is being drawn. Niobe reads on a thread of its own, follows an edit the moment it lands, and otherwise paces itself against its own cost, so a large repository never spends more than a sliver of a core keeping the pane current. A read that is slow or fails leaves what you were looking at alone rather than blanking it.

    F6 folds the working tree away; F7 folds the tool list.

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.8.0 sh install.sh

  10. niobe v0.7.0

    niobe 0.7.0

    The Usage pane now tells you who spent the session's tokens.

    Where the pane counted everything in one heap — tokens in, tokens out, cache read — each model now has a row of its own: the share of the session it spent, a bar of that share, and the count. A session that hands its sub-agents a cheaper model can finally see the split.

    Under those rows, the cache. Its figure is a hit rate — cache reads against every input token the session sent — with the reads themselves beside it. A token count that is nine tenths cache reads used to read as alarming; the pane now says outright how much of the prompt came from cache and how much was paid for in full.

    Nothing here is estimated. The shares come off the same fold as every other figure in the shell, they add up to 100 rather than to 99 or 101, and where no request has been eligible for a cache yet the row shows an em dash rather than a zero. A model that spent nothing gets no row.

    Model names appear as your backend reported them, with only the vendor prefix and a release date taken off; where two would shorten to the same thing, both keep their full names, so two rates can never hide under one label.

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.7.0 sh install.sh

  11. niobe v0.6.0

    Niobe 0.6.0

    The Usage pane now opens on the plan's windows — how much of the five-hour and seven-day window is gone, drawn as a bar you can read across the room, and when each one comes back: resets 16:40 today, resets Tue 09:00 later in the week. A window your backend did not report draws nothing rather than a zero, and one reported without a reset shows the share alone. Where a plan is spending beyond its flat fee the pane says so, and shows an em dash for the amount — the CLI reports that it is happening and never how much.

    The shell keeps time now. The menu row carries a wall clock, and a session read back from its recording is dated by the times it actually ran at rather than by the moment you opened it. A recording that kept no times shows none.

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.6.0 sh install.sh

  12. niobe v0.5.0

    niobe 0.5.0

    The status line is gone, and the shell is better for it.

    What those two rows at the bottom carried has moved to where you already look for it. The model you are on, the backend and profile running it, whether a turn is going and for how long, and the time of day now sit at the right of the menu row. The plan's usage windows and your budget are in the pane that owns those figures. The branch is in the Changes pane. The session gets the two rows back, which at eighty by twenty-four is two more lines of transcript.

    The menu row gives its segments up whole when you narrow the terminal, rightmost first. Half a model id, or a clock missing a digit, reads as a different figure — so it drops the figure instead. An error count leads the group and is the last thing to go: a session that hit one says so wherever you are looking.

    The body is cut nearly two to one in favour of the transcript, and the right-hand column gives the Usage pane exactly the rows its figures need, splitting the rest between the files you changed and the sub-agents running.

    There is a clock. It is your local time, read from the system timezone — or it is nothing at all. A clock an hour out is worse than no clock, so on a machine that will not say which timezone it is in, the shell shows none.

    Also: the Cost pane and its F-key are now Usage, menu hot keys are underlined as well as accented, and the shell no longer tells you which palette is on — F9 is the affordance.

    One thing to know: the mode a session gates tool calls in is not shown anywhere in this release. Shift+Tab still cycles it and the backend is still told, but the row that named it is gone and the composer does not say yet.

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.5.0 sh install.sh

  13. niobe v0.4.1

    Fixed

    A running turn showed no cost until the backend reported one, so the figure sat empty for the part of a turn where you most want it. It now shows what the turn has cost so far, labelled as the floor it is — the number only ever rises as the backend reports more.

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.4.1 sh install.sh

  14. niobe v0.4.0

    Full Changelog: https://github.com/niobe-dev/niobe/compare/v0.3.0...v0.4.0

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.4.0 sh install.sh

  15. niobe v0.3.0

    Full Changelog: https://github.com/niobe-dev/niobe/compare/v0.2.0...v0.3.0

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.3.0 sh install.sh

  16. niobe v0.2.0

    Full Changelog: https://github.com/niobe-dev/niobe/compare/v0.1.0...v0.2.0

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.2.0 sh install.sh

  17. niobe v0.1.0

    Full Changelog: https://github.com/niobe-dev/niobe/commits/v0.1.0

    4 archives, each with its SHA-256

    Install exactly this one: NIOBE_VERSION=v0.1.0 sh install.sh