Repository navigation
Releases: extractumio/terminum
Release list
v0.25.2
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
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
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-serveror 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.
- their names: a window tmux named after its program is tmux's to name again (rows read
- 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
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'sadd_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.jsoninto the agent's bookmarks of their sessions and
projects, once, and keeps the file asnotes.json.imported; done notes are not carried over.
Your own bookmarks are not touched. add_notes_for_userchanged: a record is atitleand atext(both required), with
remind,kind(bug, deferred, followup, question, report) andfile. 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.jsonwas imported);
renamenotes.json.importedback tonotes.jsonbefore 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 toolchainonce; 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
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
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 installadds 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~/.claudeor~/.codexbefore you turn it on, andofftakes 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 statusnames
terminum hooks installuntil 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.tomlonly 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
AllowTcpForwardingon Alpine, whose stock value isno); a refusal is shown as
"forwarding refused by 's sshd" and asked again every 10 minutes.DisableForwarding yesorAllowStreamLocalForwarding norefuse 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 uninstalltakes the hooks and the MCP server out
of both agents.terminum rollbackleaves 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 --toan
older release does move that command, and an older build has noterminum mcp: run
terminum hooks removefirst (thenterminum hooks installwith the older build), or Codex
and Claude Code report terminum's MCP server as failed at each start.
state/plans.jsonandnotes.jsonstay 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
echoin.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
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 throughtailscale 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 foldersasks 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
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
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 insoundfonts/beside it), so a.midplays without setting anything
up. Your own~/.terminum/soundfont.sf2, ormidi.soundfontinsettings.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
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 fromblob: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 adata: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.sf2at~/.terminum/soundfont.sf2or name one
insettings.jsonasmidi.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.cssapplies 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.