Skip to content

Releases: extractumio/terminum

v0.25.2

Choose a tag to compare

@extractumio extractumio released this 30 Oct 17:48

v0.25.2 — Bookmarks as a mail list, Reminders the same window, a steady input box

A patch release: changes to windows that are already there (how Bookmarks and Reminders show
their entries, the windows' type, Markdown's look) and one fix; nothing new to install or
upgrade.

Changed

  • Bookmarks read as a mail list. The window has the list on top, each entry its title and,
    under it, its text's start on one line (an agent's without its Markdown's marks), where and
    when at the right; the chosen entry's content under the list. Drag the line between them to
    share the height, a double click halves it. A note longer than its title line shows whole
    above the text. The bar over the terminal and the rail's tips show the same titles.
  • Reminders open the same window, with the open reminders only, those up first, and the
    same actions and keys: Show in terminal (Enter), Resolve (Delete, with Undo for 5 seconds),
    Quote in chat. Its own Open, Close and Delete are gone.
  • The floating windows' text is the chat's: Bookmarks, Reminders, Sent, Plan and Open all
    use the terminal's font at its size, line height 1.5; their heads, times and keys stay the
    interface's.
  • Markdown looks one way on every screen: the terminal's widgets, Bookmarks, Reminders, the
    sent history and Open all share one style. Links take the theme's link color with a faint
    underline, never the browser's blue or visited purple.
  • The floating windows are placed again when a banner shows or goes.
  • The README shows terminum on a monitor, a laptop and a phone, linked to
    terminum.app; the commercial license names terminum.

Fixed

  • A Claude Code session's input box twitched at every redraw of its spinner (every 100 ms):
    a redraw that reached tmux in two parts was captured between them, so the page lost the input
    box for a frame. terminumd now captures once the pane has been quiet for 6 ms, 33 ms after
    the first notice at most.

Verified

At release, on the delivered tree after /simplify over every change since v0.25.1 (its fixes
applied: one title rule for a bookmark in the bar, the lists, the rail and the navigator; one
banner watcher for the floating windows; the navigator drawn again by Marks' change count):
make test (cargo 649, the Panel's 38 and the Page's 138 unit tests), clippy clean, the Panel's
browser check (160), the Page's 1509 browser checks (Chromium and WebKit, a wide and a phone
size), web/test/e2e_live.mjs (183), scripts/e2e_agentstate.py (11) and
scripts/security_check.sh pass. Not verified: the windows on an iPad, the input box against a
real Claude Code session after the release build.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.25.1

Choose a tag to compare

@extractumio extractumio released this 29 Oct 23:50

v0.25.1 — Finder drops by their own paths, the panes as View's window, no image buttons

A patch release: fixes and changes to what is already there (how a drop is pasted, where the
floating buttons' panes open, a mark for a session done with a shell still running); nothing
new to install or upgrade.

Changed

  • Files dropped from Finder on a pane of this Mac paste their own paths, at any size,
    folders too: nothing is uploaded (two zips, one over 100 MB, were uploaded as copies and the
    large one refused). terminumd finds them on macOS's drag pasteboard, matched by name, kind,
    size and time. When it cannot (a drag from Mail or a browser has no file on disk), copies are
    uploaded as before and the toast says which case it was: the drag held no file, a name is
    not among the drag's files (and what it held), the file of that name differs (its size, or
    its time "3 h apart"), it cannot be read, a path has a control or invisible character.
  • Bookmarks, Reminders, Sent and Plan open as one window, placed and drawn as View's: 12 px
    under the terminal's top, 16 px over its end, left of the floating buttons, 820 px wide at
    most, View's head, type and corners; on a phone each is a sheet as before. The bookmarks'
    Done is Resolve.
  • No image buttons after image paths in the terminal. A path to a picture is a path as any
    other: underlined, a click opens it in View. (On a long row each button stood alone on an
    empty line.)
  • A session done with a shell still running (Claude Code's "· 1 shell still running", past
    the 10 minutes such work keeps it working) shows a quiet terminal mark on its row and in the
    header while its footer counts the shell, monitor or task; it is done, unread and reminded
    as before.

Fixed

  • A host group's ⋯ menu near the session list's end went past the window's bottom; it
    stays inside the window.

Verified

At release, on a clean tree after /simplify over every change since v0.25.0: make test
(cargo 648, the Panel's 38 and the Page's 137 unit tests), clippy clean, the Panel's browser
check (160), the Page's 1495 browser checks (Chromium and WebKit, a wide and a phone size),
scripts/e2e_agentstate.py (11), scripts/e2e_hooks.py (32), scripts/e2e_remote.py (32) and
scripts/security_check.sh pass. web/test/e2e_live.mjs passes in WebKit alone (91) and in
Chromium; run with both, three of its WebKit checks (AC-32's fold of a tool's output, AC-93's
Mark as Unread) fail after Chromium's, as they did on 6625162, before these fixes. A drop from Finder on
this Mac pasted the file's own path. Not verified: the new toasts after a real drop from Mail
or a browser, the windows on an iPad.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.25.0

Choose a tag to compare

@extractumio extractumio released this 29 Oct 13:10

v0.25.0 — sorting in Files, everything back after tmux restarts, bookmarks as a navigator

A minor release: a new feature (the Files tree sorts by name, extension or recent first),
with fixes to what comes back after tmux restarts and to the bookmarks' pane.

New

  • Sorting in Files. The tree's context menu has Sorting › Recent First, Alphabetical
    (the default, as Finder's names) and By Extension; folders always come first, and the
    choice is kept. terminumd sorts, so a folder of 500,000 entries still pages (Recent First:
    its first rows in about 2 s cold, later pages at once).
  • A held finger opens the tree's menu on an iPhone (iOS Safari sends no right-click); a
    finger never drags a row.
  • [+] in the session list's head (on a computer), left of the button that hides the list,
    opens New session's form under the head.
  • The full name and folder in a narrow window. A tap on the session's title in the header
    slides the header's buttons aside for 3 seconds and shows the session's whole name and
    folder; ☰ opens the list.
  • The bookmarks' pane is a navigator: the list at the left and the chosen one at the right,
    an agent's record as Markdown and your bookmark's text as the terminal shows it, as wide as
    View's window and as tall as the terminal, long lines wrapped. A bookmark's or reminder's
    "Insert into chat" is now Quote in chat: its text pasted quoted.

Fixed

  • After tmux -L terminum kill-server or a reboot, the sessions now come back with:
    • their names: a window tmux named after its program is tmux's to name again (rows read
      "2.1.310", Claude Code's version, for good), and a coding agent's conversation title is
      kept and shown on its row while a shell runs there, until an agent runs again and titles it;
    • their Unread marks, handed to the panes made again (they were dropped);
    • their last 300 lines in the terminal: on a tmux of this Mac a pane made again starts by
      printing them, then "[terminum: the lines above are from before tmux restarted]" and its
      shell, so they are in its history and survive the next restart. A host's panes still open
      them from the row's menu only.
  • A table lost its top rule after Ask typed into a coding agent's box.
  • Dropped or uploaded files go into a coding agent's box one path per line (spaces
    elsewhere, where a shell would run each line at Enter).
  • A finished plan stayed at 100% on its row for good, also for the next requests: it is
    archived when the next request starts and leaves the row 10 minutes after its last update.
    The Plan pane's "Now" has a gray pill instead of a stripe along its edge.

Verified

At release, on a clean tree: make test (cargo 641 + 1, the Panel's 38 and the Page's 138 unit
tests), clippy clean, the Panel's browser check (160), the Page's 1493 browser checks (Chromium
and WebKit, a wide and a phone size), scripts/e2e_restore.py (15), scripts/e2e_lastlines.py
(24), scripts/e2e_remote.py (32) and scripts/security_check.sh pass. A real
kill-server against a private terminumd and tmux brought back the window names, an agent's
title on its row, its Unread mark and its 300 lines in the terminal. Not verified: a real
reboot, a host's restore, a long press on a real iPhone.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.24.0

Choose a tag to compare

@extractumio extractumio released this 28 Oct 19:34

v0.24.0 — the agent's records as bookmarks, going through bookmarks, long paths shown short

A minor release: a new feature (a coding agent keeps its reports, findings and questions as
your bookmarks and reminders, replacing the Plan pane's notes; going through a session's
bookmarks) and a changed MCP tool. Read Before you upgrade first.

New

  • The agent keeps what must not get lost in the scroll. A coding agent hands you a final
    report, a next step, a gap it saw elsewhere in the project, deferred work or a question
    through terminum's add_notes_for_user, and each becomes a bookmark of its session with the
    agent's mark: a title and a text written to read without the chat (Markdown). It is a
    reminder, coming up at each turn's end, only when you must act or decide. Open goes to where
    the agent made it (the line where its call was printed, found by its title); Insert into
    chat pastes its title and text. The agent's records have limits of their own (50 open a
    session or project, 500 in all) and never count against your 300 bookmarks; the same title
    is not kept twice; the text is cleaned and redacted as sent history is. Seen with Claude
    Code: a task asking for a final report kept it as a bookmark, a choice left to the user
    became a question, a routine edit kept nothing.
  • Going through a session's bookmarks. The bookmarks' button (its count: bookmarks and open
    reminders) lists the session's bookmarks and open reminders top to bottom, the agent's with
    its mark and reminders with a bell. Press one, or ↑ ↓ on a computer, and the session goes
    there while the list stays open; ✓ or Delete settles one (a reminder resolved, a bookmark
    deleted) with Undo for 5 seconds; Enter or Esc closes it. The bar over the terminal has the
    same Done.
  • The Plan pane in sections: a larger title, "Now" with the current step set apart, the
    progress as "3 of 9 done", a percent and a bar with the ETA under it, the steps with round
    marks and the current one highlighted, when it was updated, and how many records the agent
    kept for you (a press opens the bookmarks' list). It takes the theme's text colors, so it
    reads in light themes too.
  • A long path shows short. A path of 84 characters or more in a row of output shows its
    first 36 and last 40 characters with "[...]" between; a click or a tap (or Enter) on
    "[...]" shows it whole while the page is open, and Find opens it when a match is in its
    middle. Copy, ⌘-click and underlines always take the whole path. Not folded in the cursor's
    row, an agent's input box or footer, or a full-screen program; a path broken over two rows
    is shown as it is.

Before you upgrade

  • The Plan pane's notes become bookmarks. At its first start, terminumd turns the open
    notes of ~/.terminum/state/notes.json into the agent's bookmarks of their sessions and
    projects, once, and keeps the file as notes.json.imported; done notes are not carried over.
    Your own bookmarks are not touched.
  • add_notes_for_user changed: a record is a title and a text (both required), with
    remind, kind (bug, deferred, followup, question, report) and file. Restart running
    Claude Code and Codex sessions: they read terminum's tools and their descriptions only when
    they start, and an old session's call in the old shape is refused as a tool error ("notes[0].title is
    required"), nothing kept.
  • Rolling back to 0.23 keeps the agent's records as bookmarks, but 0.23 does not know
    they are the agent's: they lose the agent's mark and count against your 300. The Plan pane of 0.23 shows no notes (notes.json was imported);
    rename notes.json.imported back to notes.json before rolling back to keep them.

Fixed

  • No notice for Claude Code's question in a narrow pane. A session waiting on its
    question (AskUserQuestion) showed no question mark, no waiting line and sent no notice
    after 2 minutes when its pane was narrow (an agent team's panes beside it): Claude Code
    breaks "Esc to cancel" over two rows there, and terminum read the screen as finished. The
    footer's words are now read as one line.
  • Image buttons alone on a line. The image buttons after a row as wide as the view stood
    alone on the line below it; they stay with the row's last word.
  • A warning in every Linux build (zig's linker on rustc's -Wl,-O1): cargo-zigbuild
    0.24.0 filters it out. Building from source: make toolchain once; an older cargo-zigbuild
    is refused with that advice.

Verified

At release, on a clean tree: make test (cargo 632 + 1, the Panel's 38 and the Page's 136
unit tests, the scripts' 34), clippy clean, the Panel's browser check (157), the Page's 1485
browser checks (Chromium and WebKit, a wide and a phone size), the live check against a
private tmux 3.6a (177), scripts/e2e_remote.py (32 of 32), the agents on a host (21 of 21)
and scripts/security_check.sh pass. Interactive Claude Code in a private tmux and terminumd,
four tasks naming neither terminum nor its tools, two runs: a final report kept as a bookmark
both times, a choice left to the user kept as a question both times (once a reminder), a
routine edit kept nothing; a bug the agent only read was told in its answer, not kept. Claude
Code 2.1.311 in a 22-column pane breaks its question's footer over two rows; that screen is
now read as waiting. Not verified: Codex's records, an iPhone, a real Linux host.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.23.1

Choose a tag to compare

@extractumio extractumio released this 27 Oct 22:46

v0.23.1 — long quotes reach Claude Code whole on ssh hosts

A patch release: one fix since v0.23.0, nothing new to set up.

Fixed

  • A long quote from Ask reaches Claude Code whole on a Linux host. Claude Code on an ssh
    host showed a long quote folded ("[Pasted text #13 +13 lines]"), with the blank line after
    it inside the fold, so several quotes ran together on one line. Claude Code takes more
    than 800 characters read at once for a paste, and a Linux terminal hands a program up to
    4 KB at once (a Mac's 1 KB parts stayed under it). terminum now types more than 512 bytes
    in parts, each once the program read the last. A 3 KB quote takes a fraction of a second
    longer to appear. A quote taller than half the pane is still pasted and folded, as before:
    an agent's box taller than the pane breaks its redraw.

Verified

make test (cargo 646 + 1, the Panel's and the Page's unit tests), the Panel's browser
check (157), the Page's 1449 browser checks (Chromium and WebKit, a wide and a phone size),
the live check against a private tmux 3.6a (181: a 2.5 KB quote typed by the page reaches a
slow reader in reads of at most 441 bytes; 1022 with v0.23.0) and scripts/security_check.sh
pass; clippy clean. Claude Code 2.1.312 in a private tmux folds what it reads at once over
800 characters (785 typed, 805 folded) and shows a quote typed in parts whole. Not verified:
Ask on a real Linux host.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.23.0

Choose a tag to compare

@extractumio extractumio released this 27 Oct 21:07

v0.23.0 — session plans and progress, notes for you, agents on ssh hosts, last lines kept, links that open

A minor release: new features (a coding agent's plan, progress and notes in the list and a Plan
pane; terminum mcp; the same for agents on ssh hosts; a session's last lines after a restart)
and an install or upgrade that keeps the agents' integration current. Read Before you
upgrade
first.

New

  • Session plans and progress. A coding agent's plan shows as a percent and a thin track on
    its session's row, on the header's Plan button and as a circle in the floating buttons'
    column. Press any of them to open the
    Plan pane: the items (✓ done, ▶ in progress, ○ pending, ⚠ blocked), the current step and the
    agent's ETA ("~17:40 (agent's estimate, given 16:55)"). The plan comes from the agent's own
    plan tool through terminum's hooks (Claude Code's tasks and TodoWrite, Codex's update_plan
    where it has one; Codex 0.164 has none and keeps its plan through terminum's MCP tool). The
    percent is completed of all items, never the agent's guess.
  • A reminder, never typed. When a working agent has not updated its plan for a while
    (10–30 min by the turn's length), terminum asks it once through the hook's own channel;
    nothing is typed into the pane. Seen in real sessions: Claude Code 2.1.310 updated its plan
    3 s after the reminder, Codex at once.
  • Notes for you. The agent leaves bugs, deferred work, follow-ups and questions; the Plan
    pane lists them under the plan with Done, Reopen, Delete and Insert into chat (pastes the
    note into the pane's input, never Enter).
  • terminum mcp, terminum's MCP server (update_session_plan, get_session_plan,
    add_notes_for_user, update_notes_for_user). terminum hooks install adds it to Claude Code
    (inside terminum's plugin) and to Codex (one marked block in ~/.codex/config.toml, backed
    up first). Outside a terminum pane it offers no tools, so other sessions pay nothing.
  • Coding agents' progress on ssh hosts. terminum hosts agents <host> on (or the host
    menu's "Coding agents' progress on …") installs the hooks and MCP server on the host,
    one result line per agent; that host's rows and Plan pane then show its agents as local ones.
    The events ride on the Files helper's ssh as a reverse socket forward; nothing is written to
    the host's ~/.claude or ~/.codex before you turn it on, and off takes it out.
  • Links with a text of their own open. A link a program prints with its own text (an OSC 8
    hyperlink, such as Claude Code's "⧉ … MR !318") is underlined; hover shows the address,
    ⌘-click or a tap opens an http(s) address in a new tab or a file path as a printed path does.
    Other schemes stay text. tmux 3.6a ends such a link at each row's end, so a link that runs
    past a row is a link on its first row only; tmux before 3.4 keeps no such links at all.
  • OpenCode's mark stands beside its sessions in the list and the header, as Claude Code's
    and Codex's do.
  • A calmer header on a computer. The session's title, ✎ and a Plan button (with the
    percent) are keys of the header's size on the line of its other keys; the title and folder
    line up with the terminal's text, the session list's first group with the terminal's top. The
    floating buttons' column shows the plan's progress as a circle, and fades while you scroll.
  • Sessions waiting for your answer are lines across the terminal's top, one each, under
    the banners, instead of cards over its corner.
  • Last lines survive a restart. terminumd keeps each pane's last 300 lines (setting
    lastLines, 0–2000, 0 off); after a reboot or a killed tmux server, the row's menu has
    Show Last 300 Lines with what the pane showed before (a coding agent's last turn, say),
    and the restore report points to it.

Before you upgrade

  • The agents' integration is refreshed, only where you installed it. Where you ran
    terminum hooks install, an install or upgrade now updates Claude Code's plugin (adding the
    MCP server and a synchronous PostToolBatch hook that carries the reminder) and adds Codex's
    MCP block; an agent without terminum's hooks gets nothing. Not wanted: terminum hooks remove. A failed refresh is a warning, never a failed upgrade; terminum status names
    terminum hooks install until it is fixed.
  • Codex asks once to trust terminum's changed SessionEnd hook in /hooks (it was async,
    which Codex warned about at each start); trust it there.
  • Restart running agent sessions (Claude Code and Codex): they read their plugins and
    config.toml only when they start.
  • Hosts are off until you enable them, one at a time: terminum hosts agents <host> on.
    The host's sshd must allow forwarding a Unix socket (AllowStreamLocalForwarding, and
    AllowTcpForwarding on Alpine, whose stock value is no); a refusal is shown as
    "forwarding refused by 's sshd" and asked again every 10 minutes. DisableForwarding yes or AllowStreamLocalForwarding no refuse the Files tunnel too; only a refusal of this
    forward alone (AllowStreamLocalForwarding local) keeps Files working. Dropbear forwards no
    Unix socket, so Files fail there too.
  • Rolling back or uninstalling. terminum uninstall takes the hooks and the MCP server out
    of both agents. terminum rollback leaves them as they are: they run
    ~/.terminum/bin/terminum, which a rollback never moves (it stays the newest build's), so an
    MCP tool the older terminumd does not know fails as a tool error. terminum upgrade --to an
    older release does move that command, and an older build has no terminum mcp: run
    terminum hooks remove first (then terminum hooks install with the older build), or Codex
    and Claude Code report terminum's MCP server as failed at each start.
    state/plans.json and notes.json stay on disk, unread by older builds.

Fixed

  • Typing into a full-screen program that uses the mouse (OpenCode) reached nothing after a
    click on the terminal: the keys stayed where they were. A click there now gives the terminal
    the keys, as anywhere else.
  • A long drawn table was split in two while it was redrawn; it is read whole.
  • An older helper on a host was never replaced by a newer one; it is updated again.
  • A long tap's menu on a phone no longer takes the keys: the keyboard stays up.
  • A tmux server's first start answered every later command with the one before it (since
    0.21.0): setting the server's identity answered twice on a server without one. Now set once,
    one answer; also in the restore.
  • Enabling Files on a host whose login shell prints (an echo in .bashrc, common on
    Debian-style hosts) failed: the helper's answer was compared with all of ssh's output. Only
    its last line counts now; probes read after a marker.
  • Codex warned at each start about terminum's async SessionEnd hook; it is synchronous now.
  • An upgrade updates Claude Code's plugin in place instead of removing it first; a failure
    keeps the old one.

Verified

cargo test and clippy clean; the Page's and Panel's browser checks; agents on a host checked
against a fake host and over a real OpenSSH sshd on Alpine 3.20 and Debian 12 (19 of 19 each:
enable, events and MCP from a host pane, a refused forward with Files kept, link loss and
reconnect, disable). Not verified: a macOS host over real sshd. At release: make test (cargo 646 + 1, the Panel's 38 and the Page's 138 unit tests), the Panel's browser check, the Page's
1449 browser checks (Chromium and WebKit, a wide and a phone size), the live check against a
private tmux 3.6a (179, OSC 8 links through tmux included) and scripts/security_check.sh pass.
Not verified: typing into OpenCode itself (checked with a stand-in that asks for the mouse).

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.22.0

Choose a tag to compare

@extractumio extractumio released this 26 Oct 19:21

v0.22.0 — a Linux server; rename a session group; many fixes

A minor release: new features (terminum as a server on Ubuntu or Debian, renaming a tmux
session's group) and a changed install for Linux. On a Mac the install and upgrade are as before.

New

  • terminum runs as a server on Ubuntu and Debian. The same package installs a systemd user
    service there; its terminals live in tmux and outlive restarts and upgrades, as on a Mac. Other
    devices reach it through tailscale serve.
  • Rename a session group. A tmux session's group in the list has Rename… in its menu (a
    right click on its header, or its ⋯): it renames the tmux session, and the group keeps its
    place and whether it is folded. A project's Rename… is in its own menu, as before.
  • The page ships JetBrains Mono Nerd Font for devices without it.
  • macOS asks for the protected folders once, at install, so no prompt waits on the Mac's
    screen while you work from the phone; terminum folders asks again.

Fixed

  • Ask's Send to Agent presses Enter only in the pane the quote went to, while its coding
    agent still runs: switching panes within the moment before it, or the agent ending, no longer
    runs a line in another terminal or a shell (a toast says the Enter was not pressed). Send to
    Agent hides when the agent ends while the dialog is open; after a timeout the buttons work again.
  • A session whose subagents still work is not done. Claude Code's idle notice, the next
    prompt or ten minutes no longer end it while subagents, teams or workflows it started run; on
    Codex's screen "2 agents still running" counts too. Shells and monitors left running count
    ten minutes, as before.
  • A selection's Copy and [+] in a split's pane stand at the terminal's right, not over the
    text at its left.
  • Unread marks set just before a restart or an upgrade are kept.
  • History pages at tmux's history limit are numbered right when tmux trimmed and refilled
    its history to the same count.
  • A collapsed group's menu keeps New Session and Close Group.
  • The sent history's and the reminders' panes keep Tab and the keys inside them.
  • On an iPhone a selection no longer breaks when the terminal updates while the page puts
    iOS's menu away; the space bar's trackpad moves one character over an emoji.
  • Files: a JSON or YAML file of 100,000 values opens quickly (a page of rows at a time); a
    YAML key twice, a key named __proto__ and an escape past Unicode are handled (an error with
    its line, or a member like any other); a CSV's last empty record and a column first met after
    row 5000 show; a video or sound stops when its tab closes; a picture's address works while it
    is shown; MIDI renders two at a time and stop when their tab closes.
  • Keep Both works when the name is taken by a link to a file outside the writable folders;
    a new file or folder on such a name says it exists.
  • Uploads and pastes are read only once one of the two upload slots is free, on a Mac and on
    a host's agent.
  • A Linux install of a release names the release's build (it refused: the build cached for
    its agent was another).

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.21.0

Choose a tag to compare

@extractumio extractumio released this 24 Oct 18:31
08ab7c0

v0.21.0 — drop files into Files; a calmer list; settings alone in ⋯

A minor release: a new feature (uploading by dropping files on the Files tree) and a moved menu.
Nothing to set up; the install and upgrade are as before.

New

  • Drop files from Finder onto the Files tree. They upload into the folder under the pointer
    (a file's row: its folder; below the rows: the root), on this Mac or the pane's host. While
    you drag, that folder is marked and a line says where they go; move up or down to pick
    another. A name already there asks Keep Both or Skip: nothing is ever written over. Up to
    100 MB a file; a folder dropped is not uploaded (the toast says so).
  • Paper, a light color scheme with soft pastel hues, among the menu's colors (in Cobalt2's
    place).

Changed

  • The header's ⋯ holds settings only (and Sign out). Split Below, Right and Left, Move to
    Session… and Close Session are in a session row's menu (a right click, or a finger resting on
    the row).
  • A selection's Copy, [+] and Ask stand in the floating buttons' column, starting level with
    the selection's first line; the column's other buttons step aside while they show. The
    floating buttons lift and nod under the pointer.
  • The buttons under the session list (New session, Bookmarks / Reminders, Add host, Attach
    tmux sessions) fold into one slim row of icons on a computer and unfold while the pointer is
    over them.
  • Every group in the list is tinted, each in a hue apart from its neighbor's, so the groups
    under the projects no longer run together.
  • A row shows where its coding agent works (a worktree it moved to), as the header does,
    with "Follow the agent's folder" on.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.20.1

Choose a tag to compare

@extractumio extractumio released this 24 Oct 14:27
11b0598

v0.20.1 — MIDI out of the box; Esc from the Files tree; ⌘X

A patch release: small changes to existing features since v0.20.0, nothing new to set up.
The package is about 30 MB larger: it now carries the General MIDI SoundFont.

Changed

  • MIDI plays on a fresh install. The package carries GeneralUser GS 2.0.3 by S. Christian
    Collins (its license in soundfonts/ beside it), so a .mid plays without setting anything
    up. Your own ~/.terminum/soundfont.sf2, or midi.soundfont in settings.json, still takes
    its place.
  • Look at files one after another: open a file from the Files tree (Enter or a click; the
    tree keeps the keys), press Esc there to hide View, ↓ and Enter for the next.
  • ⌘X cuts the text selected in a coding agent's input box (copied, then deleted).
  • ⌘Z and ⌘⇧Z work after a selection made with the pointer, which left the keys nowhere.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.

v0.20.0

Choose a tag to compare

@extractumio extractumio released this 24 Oct 12:54
1888b9a

v0.20.0 — Sounds, PDFs and data in View; the agent's folder; a security fix

A minor release: new features (View shows PDFs, plays videos, every sound and MIDI, renders
JSON, YAML, CSV and TSV; Files follows the coding agent's folder; drag from Files; Mark as
Unread) and a new endpoint (POST /api/midi), so the next minor after v0.19.1. It also
carries a security fix: update.

Security

  • A picture or a video can no longer run script in terminum's page. Since v0.19.0 files
    were shown from blob: addresses, which belong to the page; an SVG or an HTML file opened
    with Open Image in New Tab (or a video's Open in New Tab) ran its scripts there in Chrome,
    with the sign-in in reach. Now only pictures, videos, sounds and PDFs keep their type; an SVG
    is shown from a data: address of its own, anything else downloads.
  • A remote host's file is typed by terminumd, by its name and with the sandbox policy, never
    by what the host says; every other answer from a host is JSON.

New

  • View plays and shows more: PDFs in the browser's own viewer; videos and sounds in its
    player; AU and AIFF decoded where the browser does not play them; MIDI rendered on the
    Mac with your General MIDI SoundFont (put a .sf2 at ~/.terminum/soundfont.sf2 or name one
    in settings.json as midi.soundfont; none is shipped), played in the same player, so it
    seeks and pauses as any sound.
  • JSON, YAML, CSV and TSV open rendered: a tree in the editor's colors, open as far as is
    reasonable, that folds and copies values; a table with a sticky head. Source shows the text.
  • The coding agent's folder: when Claude Code works in a worktree below where it started,
    the header and Files show that folder, and paths it prints (artifacts/…/shot.png) are
    links again. Settings' "Follow the agent's folder" turns it off (page.followAgent).
  • Drag files and folders from Files onto the terminal: their paths go to the input, quoted,
    without Enter.
  • Mark as Unread in a session's menu (Mark as Read on an unread one).
  • Esc in View hides it and goes back to the terminal.

Fixed

  • custom.css applies from the first moment the page shows, not after it connects.
  • A video in an HTML document no longer holds its memory after its tab closes.

Install or upgrade: curl -fsSL https://github.com/extractumio/terminum/releases/latest/download/install.sh | sh

SHA256SUMS is signed with the release key SHA256:Zt1tUwAnt4BQ1/hU8QCphhm+43bV5W0k55KwYz4vw9s.