• v0.13.0
    CI / test (push) Successful in 15s
    Release / test (push) Successful in 4s
    Release / binaries (push) Successful in 28s
    Stable

    niklas released this 2026-09-27 16:32:44 +00:00 | 0 commits to main since this release

    T used to silently cycle through your teams one at a time, with only
    a small "team: " in the header to say which one had ended up
    active. It now opens a picker listing every team you're in, plus "All
    teams", and picking one is a normal j/k-and-enter selection rather
    than a guess at how many times to press T. Esc leaves the active team
    unchanged.

    Each team gets a stable colour, computed from its id rather than
    stored anywhere new, and the same colour now shows as a bullet next
    to "team: " in the header at all times — so which team the
    lists are scoped to is visible without opening the picker at all. A
    new theme token, identity_1 through identity_6, lets a custom theme
    file set its own six; the two built-ins (gruvbox-dark, gruvbox-light)
    pick six hues that don't already mean firing or critical.

    Still needs terdut-server v0.20.0 or later — this reads only GET
    /api/teams, already required since then. Nothing here needs a newer
    server.

    Nothing changes for a config with no team key, and the set of
    binaries and their names is the same, so self-update behaves as
    before.

    Downloads
  • v0.12.0
    CI / test (push) Successful in 17s
    Release / test (push) Successful in 3s
    Release / binaries (push) Successful in 23s
    Stable

    niklas released this 2026-09-26 19:47:55 +00:00 | 1 commits to main since this release

    Two changes, both on the sign-in and incident screens.

    Single sign-on. The sign-in screen asks the server how it can be signed in
    to and offers what it finds. When the server has single sign-on, "Sign in
    with " shows a link and a short code; approve it in any browser
    and the TUI signs in, so it works over SSH where no browser can be opened.
    The terminal never talks to the identity provider. The password form is
    hidden if the server has turned password login off. New optional
    auth: sso in config.yaml starts the SSO sign-in straight away (auth: password, or leaving it out, shows the form); it does not fire right after
    you sign out, and any other value is refused with a message.

    Similar incidents. The incident view has a "Seen before" section listing
    similar earlier incidents, and C adds a note as the resolution note,
    alongside c for a plain note. This was committed after v0.11.1 and is
    released here for the first time.

    Server compatibility: still needs terdut-server v0.20.0 or later, and that
    is enough to sign in with a password as before. SSO sign-in needs v0.29.0.
    "Seen before" needs v0.22.0; an older server just shows nothing there. A
    server without /api/auth/config answers 404 and is treated as passwords
    only.

    Nothing changes for a config with no auth key, and the set of binaries
    and their names is the same, so self-update behaves as before.

    Downloads
  • v0.11.1
    CI / test (push) Successful in 4s
    Release / test (push) Successful in 4s
    Release / binaries (push) Successful in 12s
    Stable

    niklas released this 2026-09-24 06:39:57 +00:00 | 4 commits to main since this release

    No change to the TUI: the Go code is identical to v0.11.0, and so is the
    set of binaries and their names, so self-update behaves as before.

    • The gate and the release build now come from the Makefile. CI and the
      release workflow run make fmt lint test, and the release builds its
      binaries with make dist, so what a developer runs, what CI runs and
      what is published are the same code.
    • The repo is set up for the release skill (KIND=binary), which verifies
      after publishing that every binary is attached exactly once, that the
      release has notes, and that it is the release self-update will offer.

    Still needs terdut-server v0.20.0 or later. Sign in with a user account;
    api_key in config.yaml is ignored (see v0.11.0).

    Downloads
  • v0.11.0
    CI / test (push) Successful in 12s
    Release / test (push) Successful in 5s
    Release / binaries (push) Successful in 12s
    Stable

    niklas released this 2026-09-23 20:24:23 +00:00 | 5 commits to main since this release

    Breaking: the TUI no longer uses an API key. api_key in config.yaml is
    ignored (the sign-in form says so); it is not an error to leave it there.
    Still needs terdut-server v0.20.0 or later.

    • Signs in with a username and password on a form at start, the way the
      web UI does. username: in config.yaml prefills the name.
    • Keeps the server's session, not the password, in
      ~/.config/terdut-tui/session.json (readable by you only), so the next
      start resumes it. Sessions last 30 days and slide with use.
    • L signs out: ends the session on the server and deletes the saved one.
    • When the session ends (expired, ended from the web UI, account
      disabled) the TUI returns to the form and says why, without keeping the
      last session's data on screen. A 403 does not sign you out.
    • The account needs a password. An API-only user has none and cannot
      sign in; the server answers it like a wrong password, so the form says
      to set one first, in the web UI or with p in Users as an administrator.
    • API keys still exist on the server and k in Users still manages them.

    Release notes now come from this tag message: the release workflow copies
    it to the release page (first exercised by this tag).

    Downloads
  • v0.10.0
    CI / test (push) Successful in 12s
    Release / test (push) Successful in 3s
    Release / binaries (push) Successful in 14s
    Stable

    niklas released this 2026-09-23 19:57:58 +00:00 | 7 commits to main since this release

    Requires terdut-server v0.20.0 or later. The server became team-scoped
    in v0.12 and the old client no longer works against it: use v0.9.x with
    servers before v0.12. There is no fallback to the pre-team API.

    • T switches team: all teams, then each of yours. Incident and alert
      rows show a Team column while several teams are on screen. team: in
      config.yaml sets the team to start on, by name or id.
    • The schedule is per team. Only a team's owners and administrators can
      change it, the picker offers only its members, and "On-call today"
      lists one person per team.
    • Users has a Flags column for administrators and disabled accounts.
      Creating and deleting users is for administrators; topic, API keys
      and password work on your own row, or on anyone's if you are one.
    • Incidents show their team and escalation level, and a silent dead
      man's switch appears on the timeline.
    • An older server is recognised and reported on start, and a wrong API
      key now fails on start rather than on the first list.
    • Fixed a panic when the Team column appeared over loaded rows.
    • The set-password form in Users (p) was already in v0.9.0. Nothing about
      it changes here; it needs server v0.10.2, which v0.20 covers.

    Not in the TUI, and staying in the server's web UI: escalation ladders,
    invites, integrations and admin settings. Stats are not team-scoped by
    the server and cover all your teams.

    Downloads
  • v0.9.0 e0c5a5cba3

    v0.9.0
    CI / test (push) Successful in 21s
    Release / test (push) Successful in 3s
    Release / binaries (push) Successful in 24s
    Stable

    niklas released this 2026-09-19 19:11:25 +00:00 | 8 commits to main since this release

    Downloads
  • v0.8.0 9a510ecc77

    v0.8.0
    CI / test (push) Successful in 2s
    Release / test (push) Successful in 2s
    Release / binaries (push) Successful in 9s
    Stable

    niklas released this 2026-08-20 09:17:35 +00:00 | 10 commits to main since this release

    Downloads
  • v0.7.2 d6c0f7508c

    v0.7.2
    CI / test (push) Successful in 4s
    Release / test (push) Successful in 2s
    Release / binaries (push) Successful in 9s
    Stable

    niklas released this 2026-08-19 19:23:32 +00:00 | 13 commits to main since this release

    Downloads
  • v0.7.1 6fdb4bbbf8

    v0.7.1
    CI / test (push) Successful in 13s
    Release / test (push) Successful in 14s
    Release / binaries (push) Successful in 1m37s
    Stable

    niklas released this 2026-08-19 18:55:27 +00:00 | 14 commits to main since this release

    Downloads