Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 15:48
· 43 commits to main since this release

Added

  • A Usage popup. Bind switchboard.usage or open it from the central menu to see how much of
    each AI subscription is spent and when it resets. Each agent gets a donut for the window closest
    to running out, a bar for every other window, and the numbers that give the percentage its
    context: what the session spent, how much of the context window the last turn used, whether
    credits are on. Every card dates itself — as of 12m ago — because Codex reports whatever its
    last session wrote, and a two-day-old percentage read as current is the mistake this popup exists
    to prevent. Resets are given both ways, in 1d 12h and resets 08:53 Wed.

    Codex reads the exact numbers OpenAI returns, straight out of its own session log, with no
    network at all. Claude Code publishes nothing to disk, so its card asks the same endpoint the
    in-session /usage command asks, using the OAuth token Claude Code already stores; that request
    runs on a worker with a timeout, so the popup opens instantly with Codex on screen and fills
    Claude in when it lands. Claude also grades its own limits, and the card colours them the way the
    provider grades them rather than by a threshold of ours; anything ungraded falls back to
    usage.warn_percent and usage.alert_percent.

    Each card names the account it is reporting on — the two agents are routinely signed in as two
    different people, and a quota means little without knowing whose it is. Codex's address comes
    from the ID token it stores, Claude's from the profile Claude Code caches, and that profile is
    also where the Claude card gets its plan, since the usage endpoint names none.

    Press r to read both again. Any agent that cannot be read says why on its own card and leaves
    the other one alone. Choose the providers and thresholds under [usage], or from the settings
    overlay.

  • Zen can hide Herdr's own chrome. The new zen.chrome setting (off by default, or
    panes / full) suppresses the pane borders and gaps, the scrollbar column, the tab row and
    the sidebar for the length of a zen session. None of those have a per-pane switch, so anything
    but off rewrites the matching [ui] keys in Herdr's own config.toml and reloads Herdr,
    then restores them exactly on the way out: comments and unmanaged keys survive, keys already at
    the wanted value are left alone, and your untouched config is copied to
    $XDG_STATE_HOME/herdr-switchboard/herdr-config.backup.toml before the first write. If a
    restore fails or Herdr is killed mid-session, herdr-switchboard zen chrome-restore puts it
    back. Herdr only applies sidebar_start_collapsed on its next launch, so full may leave the
    sidebar in place — zen measures that and says so rather than failing silently.

  • Zen mode. switchboard.zen-toggle gives the current pane the screen: it moves to a tab of
    its own, centred at zen.width (default 70%) between two dimmed gutters, and toggling again
    puts it back where it was. switchboard.zen opens a picker to zen any pane instead of the
    current one. The gutters are dimmed by painting over them through Herdr's graphics API, which
    needs [experimental] kitty_graphics = true; without it the gutters are simply blank. Tune it
    with zen.width, zen.scrim, and zen.scrim_color, or from the settings overlay. Neighbouring
    panes are never touched — only the zen'd pane moves, and its running process survives the move.
    Leaving zen restores a two-pane tab exactly; a more deeply nested tab gets every pane back beside
    its former neighbour, with a notification when the split nesting could not be reproduced.

  • An AI Agents picker. Bind switchboard.agents or open it from the central menu to list the
    AI integrations installed in Herdr. enter starts the selected AI in the origin pane, ctrl-t
    starts it in a new tab, and alt-w starts it in a new workspace; failed starts clean up any
    tab or workspace Switchboard created. The focused picker opens as a compact centered popup rather
    than a mostly empty full-screen overlay. This requires Herdr 0.8.0 or newer.

Changed

  • The README is now a concise entry point instead of a monolithic reference. Quick start,
    feature discovery, core actions, and namespaced configuration stay on the front page; detailed
    keybindings, safety behaviour, Zen, Git, configuration, and architecture now live in focused
    guides under docs/. Stale pre-1.0 wording, flat configuration names, dependency scope, popup
    placement, update-version examples, and contributor checks were corrected at the same time.

Fixed

  • Opening AI Agents or another popup from the Central Menu now waits for the menu popup to close,
    so Herdr no longer rejects the replacement as popup already open.
  • The AI Agents picker now closes immediately after a selection while startup readiness is checked
    in the background; failed starts still clean up new tabs or workspaces and report the error with
    a notification.
  • Linked development checkouts now rebuild their release binary when Rust sources or Cargo metadata
    are newer, instead of silently running an old same-version binary after source changes.