Skip to content

Releases

Troupe Nightly (0.5.0-nightly.20261113.98.4d5a70e)

Choose a tag to compare

@github-actions github-actions released this 09 Aug 17:21
4d5a70e

Automated nightly build of main HEAD (20261113, 4d5a70e).

Termul Manager v0.4.60

Choose a tag to compare

@github-actions github-actions released this 07 Nov 05:44
b412763

This is the last release under the Termul name, and the next one, 0.5.0, renames the app to Troupe.

Highlights

  • Automations. Ask an agent in chat to set up repeatable work, and it drafts an automation for you to review. Agents can create, edit and propose automations, but only you can approve, enable, run or delete one. Automations live in a new Automations tab on desktop, web and phone, and run on demand or on a schedule in the desktop app and in termul-server. A run can call a web endpoint, run an agent, transform and check data, repeat steps for each item, merge branches, wait (a wait survives a host restart), and call a tool on one of the project's MCP servers directly. Each agent step gets only the tools you approve on its card. Termul also notices when you ask for the same thing on 3 or more days in 30 and offers to automate it. The check runs locally, and a setting turns it off. (#1582, #1583, #1584, #1585, #1586, #1587, #1600, #1608, #1687, #1690, #1693, #1694, #1718)

    Automations tab with an automation open on its node diagram

  • A new look for subagents. When an agent fans out work, its subagents show as one group in the turn, with live progress, a timer and a status summary. Click a row to open that subagent beside the chat on desktop, or as a full-height sheet on a phone. You can stop one subagent and leave the rest running. Subagents from Claude, Codex, Cursor, OpenCode and Gemini CLI now map to one record on the host, so live, reopened, desktop and web chats show the same state, and subagents stay in the chat history after the turn ends. Background subagents keep running after their turn, and a chat shows as working while its agent works outside a prompt turn. Changed files and subagents share one status pill in the top right, so the composer keeps its full height. (#1494, #1642, #1646, #1647, #1680, #1681, #1683, #1685, #1686, #1688, #1695, thanks @julianromli)

    A chat turn with a subagent group and the subagent side panel open

  • Browse and install MCP servers. Settings > MCP servers lists the servers in the official MCP Registry, with search, logos, and a plain reason when a server can't be installed. The catalog syncs live from the Registry by default, and a host setting turns sync off. Only the host fetches logos, so your browser or phone never contacts a publisher. Install is one flow. Fill in what the server needs, review the exact command or URL, and Termul saves it, checks that it responds, and offers Sign in when it needs OAuth. To add a server that isn't in the catalog, a guided form asks where it runs and for its name and URL or command, so you no longer have to paste JSON. (#1543, #1547, #1603, #1604, #1613, #1627, #1737)

    Settings MCP servers catalog with search results and logos

  • GitHub issues and pull requests. A GitHub tab in the Side panel and a GitHub section in the phone drawer list the project's issues and PRs, with filters for text, labels, assignee and sort order. Open one to read it, comment, reply to review threads, edit labels and assignees, or close and reopen it. You can also hand an item to an agent. Start an issue in a new worktree chat, Ask about it in a read-only chat, Review a PR, Fix CI from its failing checks, or Resolve comments from its unresolved threads. Termul stores no GitHub token. It runs your gh CLI on the host. (#1610, #1611, #1612, #1670)

    GitHub issues and pull requests in the side panel with a pull request open

  • A + menu in the composer. On desktop, the chat composer and the agent launcher share one + menu for files and photos, mentions, slash commands, Termul tools (Browser, Canvas and Automations) and Connectors. Pick a Termul tool and Termul tells the agent to use it, whichever agent you run. Connectors lists your MCP servers with an on/off switch for each. A bare @ now opens Conversations and Explorer, so you can attach another chat or pick a project file without typing. Select text in any message and press Cmd+L or Ctrl+L to add it to the composer as a context chip. The context window bar shows what fills the window and how much is left, warns before it fills, and has Compact in the same place. The V2 model picker is now the default. (#1751, #1657, #1532, #1578, #1571, thanks @julianromli)

    The composer + menu with Termul tools open

  • Images, videos and PDFs. Images, videos and audio that an agent produces show inline in chat on desktop and web, whatever shape the agent sends them in. Two or more images in a row show as a strip of tiles, with a full-screen viewer that swipes and downloads. Images, videos and PDFs also open in read-only editor tabs from the file tree and every other place you open files, with a pdf.js viewer for PDFs. (#1564, #1565, #1566, #1567, #1666)

  • Claude accounts switch for you at the limit. When a Claude chat hits its account's usage limit, Termul moves it to the signed-in account with the most room and resends the last prompt, even if the chat is on another tab. If no account has room, the chat continues when the limit resets. "Switch accounts automatically" in Settings > Provider controls this and is on by default. The account chip shows the 5-hour window with a label, and the weekly window too once it passes 80%. The browser version can now add, sign in to, rename and remove Claude accounts. On Windows, accounts share projects, settings and skills without Developer Mode, so a chat resumes after a switch. (#1559, #1561, #1570, #1602, #1516)

  • Agent browsing on every desktop OS, and a newer canvas. Agent browser automation now works on Windows, macOS and Linux. Agents browse in their own login profile, Termul checks each site, asks before risky actions, and a Stop button ends the run. The design canvas moved to figcraft termul-v0.6.0 (upstream v0.15.1 and later), which gives agents wait_for_changes. A new termul-canvas skill gives agents design defaults and a working order. (#1371, #1463, #1544, #1734)

  • Installing and updating. On a Wayland session with Mesa 25 or newer, the Linux AppImage no longer opens a blank window. scripts/install.sh now installs a termul-manager launcher that loads the host's Wayland library (#1757, fixes #1682, thanks @dapzero). The pre-update backup skips agent binaries and other data Termul can download again, skips symlinks, and removes its partial folder when it fails, so an update no longer sits at 0% or stops on a backup error. The download now times out after 30 minutes instead of stalling (#1671, #1678, #1715). Nightly builds update in the app with the same signed flow as Stable (#1549, #1551, thanks @julianromli).

  • Smaller touches. Report a bug from inside the app, with redacted diagnostics you can read before you send (#1433). The code editor has find and replace and go to line (#1493, thanks @FnDXueyi). Oh My Pi is a bundled agent, and you can remove a custom agent from Agent chats settings (#1502, #1504, thanks @mannnrachman). Skills installed for Claude Code, plugin skills included, show in the slash menu (#1456, thanks @rfxlamia), and clicking a skill chip opens its SKILL.md (#1485, thanks @julianromli). Thoughts and tool calls between two messages fold into one row (#1450). The phone composer and its Select model and Add to chat sheets follow the Claude mobile app (#1633, #1641). Termul Light has a v2 palette, and Termul Light and Dark share one brand blue (#1507, thanks @julianromli). The Side panel keeps its tabs when the Rail collapses (#1720), and the Side panel chat menu has Reload this chat (#1514, thanks @julianromli). A fresh termul-server is set up in the browser instead of a terminal wizard (#1577).

Fixes

Agent chats

  • A long agent turn renders its latest 40 steps, with a control to load earlier ones, so it no longer grows memory without limit. (#1674)
  • Reopening an idle chat on the agent that holds it keeps the live session, so its background shells and subagents keep running. (#1689, #1692)
  • A chat that reopens mid-turn gets its pending question and model controls back. (#1661)
  • A chat reopened any way other than Reload this chat gets its MCP servers again. (#1510)
  • A first prompt is no longer lost when another client reopens the chat at the same moment, and a follow-up no longer jumps ahead of it. (#1677, #1736)
  • The Changed files list shows only the files this session edited that are still uncommitted. (#1525, #1703, #1706, thanks @julianromli)
  • Effort, Fast and other model options come back together with the model, and your picks return when an agent resets a session to its defaults. Option values an agent rejects are disabled in the selector. (#1679, #1488, #1489, thanks @davidgrldo)
  • External links open only after you click Open in the confirm dialog. (#1545, thanks @julianromli)
  • Stream and rate-limit errors read as short messages, and npx startup errors name the real cause. (#530, #1454, #1615, thanks @julianromli and @rfxlamia)
  • The Claude limit warning sits inside the composer card, so its Switch button works, and the Add to context button stays opaque on hover. (#1491, #1562, thanks @julianromli)
  • Claude agents can see Termul's plan and title tools, so the plan panel fills in. (#1723)
  • The launcher no longer starts the default agent at boot when your saved agent is another one. (#1673)
  • The agent icon stays on chat rows after the agent goes idle, and on the composer while a launch creates its worktree. (#1667, #1701)
  • Keyboard focus rings use one dim color in every theme, and a horizontal scro...
Read more

Termul Manager v0.4.52

Choose a tag to compare

@github-actions github-actions released this 19 Oct 00:54
219ec21

Highlights

  • Canvas Editor (experimental). There's a new canvas for drawing and diagrams, built on figcraft. Agents can work on it through MCP tools — from the desktop app or a browser — with an agent cursor and inline guidance while they work. Canvases autosave, keep their state when closed (up to a limit), and cope with files changing underneath them and editor crashes. It's early days, so treat it as experimental. (#1369, #1396–#1405 via #1414)
  • Settings, one page each. Every Preferences and Project settings category now gets its own page instead of one long scroll. (#1380, thanks @julianromli)
  • Smaller chat touches. You can see which Claude account an agent is using right in the launcher, a pill shows the subagents running in the current turn, and what an agent supports moved into the model tooltip. (#1394, #1368, #1387, thanks @yolkmonday)
  • Syntax colors match Cursor. The editor highlighting now matches the Cursor theme. (#963, thanks @julianromli)

Fixes

Agent chats

  • An idle agent no longer burns a thread — it now parks properly between turns. (#1398)
  • You can't switch a chat to a Claude account that isn't signed in. (#1395)

Editor and explorer

  • Browsing files on Windows works again on verbatim paths. (#1383)

Web

  • Saving a file over a dead connection fails fast instead of hanging forever. (#1366)

Under the hood

  • There's a new docs site covering setup, terminals, files, git, the browser, AI agents, SSH, phones, settings and troubleshooting. (#1373–#1379)
  • The macOS release build retries the stapling step and logs what the stapler says. (#1389)

Installing on Windows

If Windows SmartScreen shows "Windows protected your PC", the installer isn't code-signed yet. Click More info, then Run anyway.

Contributors

Thanks to @julianromli (#963, #1380), @yolkmonday (#1368), and @gnoviawan for their work in this release.

Full changelog: v0.4.50...v0.4.52

Termul Manager v0.4.50

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:16
f4c4845

Termul v0.4.50

Highlights

  • A new workbench. The revamped shell is now the default. The Rail, the Side panel and the pane tabs share one top row, and the status bar, branch picker, projects sidebar, file explorer, git panel, markdown outline, pickers and command palette are all redesigned. Model, effort and agent sit in one composer popover, the app uses Inter and Paper Mono, and Preferences and Project settings get one page per category. (#1059, #1053, #1047, #1044, #1150, #1163, #940, #941, #942, #943, #944, #945, #946, #922, #934, #1235, #1380, thanks @julianromli)
  • Native SSH workspace. SSH runs on a native russh backend with per-tab sessions and host-key checks. A session workspace adds a host library, tabs, inline prompts and a redesigned SFTP panel. (#1101, #1102, #1103, #1157, #1130, thanks @naddrzz)
  • Termul on your phone. The drawer is now home, with live chat status and section tabs. The header has three slots, the composer is one row, the chat dock collapses, approvals are thumb-safe, message actions open on long-press, Git history has a phone layout, and system back closes every overlay. (#948, #949, #950, #951, #957, #973, #979, #992, #1057, #956)
  • Git history and diffs. Git history opens in the main panel with commit detail and per-file commit diffs. Diffs open in their own tab, and the web client can stage and unstage hunks. (#1152, #1151, #1042, #1034, #1033, thanks @julianromli)
  • One host, many devices. Each host keeps one durable project registry, and every device reads projects, chat history, agents, files, settings and terminals from live host watches. A change saved on one device shows on the others without a reload. Approvals and questions wait until a person answers, retried commands never run twice, an editor save refuses to overwrite a file that changed on disk, and a stopped host shows an offline state instead of a reconnect loop. (#1116, #1094, #1096, #1110, #1140, #1111, #1088, #1091, #1092, #1095, #1097, #1131, #1078, #1113)
  • Agent chats, upgraded. A turn's tool calls roll into one disclosure, and edits show as inline diffs that open the file at the first change. There's a new question panel, chats reload without closing their tab, unread state syncs across surfaces, and the agent selector shows what the agent supports. Claude accounts work per project, OpenCode 2 is supported, agents can ask you questions through the ask_user MCP tool, and a setting controls how long idle chats stay open. (#1230, #1108, #1153, #1226, #1257, #1329, #1124, #954, #1169, #1173, thanks @julianromli and @mannnrachman)
  • Terminals that survive. A terminal now ends only when you kill it, its process exits or the host shuts down. Closing a pane or a tab only detaches it, and desktop terminals reattach after a reload. The host enforces terminal limits, terminal profiles open from the command palette, and Terminal Appearance has a screen reader mode. (#1120, #1114, #1256, #1348, #974)
  • termul-server in a container. An official Docker image and docker-compose.yml ship with this release, and termul-server now builds for Linux arm64. (#1347, #1358, #976, #1090)

Fixes

Agent chats

  • A chat stays live when Claude hits a usage limit, and mid-session auth expiry re-authenticates instead of failing. (#1107, #1234)
  • Sends made while a chat is still launching are queued, and typing into an idle-stopped chat resumes it with its transcript intact. (#1207, #1166, #1168)
  • Agent chats and the Claude auth preflight use the project's environment. (#1121, thanks @heyho-ai)
  • A Claude chat continues in a new session when a newly selected account can't resume it. (#1360)
  • Windows no longer leaks agent processes or flashes consoles, and timed-out process trees are killed. (#1085, #1231)
  • The Claude CLI launches without an OS keychain and through native-binary npm shims. (#988, #1275)
  • Scrolling back across agent-switch seams no longer skips or drops messages. (#1342, #1346, #1229)
  • Slash commands stay where you typed them and no longer go stale after recovery. (#1250, #1172, #1296, #1325, #1353)
  • Reopening a failed chat restores its error banner, and Retry gets a fresh agent when it needs one. (#1327, #1307)
  • The sign-in browser opens for every desktop agent, and Antigravity's MCP discovery is accepted. (#909, #912, thanks @julianromli)
  • Registry fetches refuse redirects, cap the body and coalesce concurrent forced fetches. (#1205, #1340, #1249)

Chat UI

  • Long unbroken text wraps inside the message bubble, and pasting an image no longer attaches it twice. (#1193, #923)
  • Queued prompts align and open smoothly. (#928, thanks @cxernlol)
  • File paths, #L line links and in-message anchors open in the right place. (#1221, #1224, #966, #1223)
  • Changed files show the change kind and file icons, keep their counts after a restore, and stay open across reloads. (#1239, #1161, #1248, #990)
  • Installed skills stay listed, and the chats sidebar shows the selected model. (#1252, #1174, thanks @julianromli)
  • Streaming text animates smoothly, grouped models appear in the picker, and Fast mode toggles correctly. (#1177, #1179, #1314)

MCP

  • An expired OAuth token refreshes on a new chat instead of being deleted. (#1355)
  • Edited servers re-probe, and concurrent probes coalesce without joining a stale probe. (#1213, #1214, #1282, #1322, #1339)

Editor and explorer

  • A save that races a rename no longer recreates the old file, and an open tab no longer reloads in a loop. (#1357, #1164)
  • Renaming, cutting and pasting a file keeps its open tab and unsaved edits, and Delete removes every selected entry. (#1308, #1326, #1285)
  • Windows verbatim roots stay valid, and deleting a file closes its tab on desktop. (#1383, #1245)
  • .astro files highlight, compound extensions such as .test.ts get the right icons, and file-name search opens hits in the explorer. (#1158, #1199, #1241)

Git and worktrees

  • Git runs inside WSL for projects on WSL paths. (#1341)
  • A refresh of every repo no longer freezes Termul, and a crashed WebView2 recovers. (#1176)
  • Branch switches refuse names that aren't branches. (#1284, #1312)
  • Merge previews use git merge-tree and reject option-like branch names, and junctions are created natively. (#1305, #1277, #1315)
  • Worktree names and git arguments are validated, and the create modal opens from its shortcut. (#1219, #1215, thanks @mannnrachman)

Terminals

  • Output missed while a terminal was cached is replayed, and split UTF-8 characters stay intact. (#1160, #1195)
  • Closing a terminal yourself no longer triggers an exit notification. (#1309)
  • A lost claim rotation recovers, and opening a terminal at a folder falls back to the default shell from App Preferences. (#1319, #1356, #1359)

Web and phone

  • A brief network drop resumes a running turn quietly, and the connection lamp holds through sub-second reconnects. (#1144, #1196)
  • The chat says plainly when a turn has ended. (#1216, thanks @mannnrachman)
  • Phone text fields stay at 16px so iOS doesn't zoom, and toasts clear the dock and key bar. (#975, #982)

Desktop

  • Closing the window hides Termul to the tray instead of quitting and killing agents. (#1159)
  • The window position and size are saved before quit, and startup no longer hangs on Wayland. (#1198, #968)
  • Context menu actions apply to the field you right-clicked. (#1338)
  • Dialogs trap focus, and every text field and select uses the same focus state. (#1100, #1083, thanks @naddrzz and @julianromli)
  • The light theme's canvas is softer on the eyes. (#925, thanks @cxernlol)
  • Project preference saves retry after a failure and keep their order. (#1178, #1167, #1292, #1306)

Under the hood

  • A new documentation site covers getting started, terminals, files, git, the browser, AI agents, SSH, agent setup, phones, settings and troubleshooting. (#1373, #1374, #1375, #1376, #1377, #1378, #1379)
  • The ACP architecture is documented, and its API reference is checked against the code. (#1331)
  • The classic desktop shell and the legacy desktop event sink are retired, and the large workspace, layout, git panel and editor persistence files are split into modules. (#1060, #1061, #1128, #1026, #1027, #1028, #1030)
  • A fault-injecting relay harness, plus an ACP end-to-end suite that runs against a release termul-server. (#1079, #1333)
  • The macOS release build retries notarization stapling and logs the stapler's output. (#1389)

Installing on Windows

If Windows SmartScreen shows "Windows protected your PC", the installer isn't code-signed yet. Click More info, then Run anyway.

Contributors

Thanks to @julianromli (#909, #912, #913, #922, #934, #940, #941, #942, #943, #944, #945, #946, #953, #954, #1083, #1107, #1108, #1124, #1150, #1151, #1152, #1153, #1158, #1172, #1173, #1174, #1177, #1226, #1235, #1250, #1252, #1380), @naddrzz (#1099, #1100, #1101, #1102, #1103, #1104, #1130, #1157), @mannnrachman (#1167, #1169, #1215, #1216, #1217), @cxernlol (#923, #925, #928), @heyho-ai (#1121), and @gnoviawan for their work in this release.

Full changelog: v0.4.21...v0.4.50

Termul Manager v0.4.21

Choose a tag to compare

@github-actions github-actions released this 07 Oct 19:26
9efe2d9

Termul v0.4.21

Highlights

  • Agent chats call you back. A notification fires when an agent chat finishes or needs your input — so you can switch away without watching a spinner. (#874, thanks @julianromli)
  • Dead turns stay buried. Reopening a chat never reattaches to a dead agent, dead-agent chats always close cleanly, sessions keep their state on reopen and prefer resume, and interrupted turns get markers after writer drain on shutdown. (#921, #892, #887)
  • Web client navigation, end to end. Reloading a chat URL lands on the live agent instead of a restored terminal; project switches swap layouts optimistically with cross-project tab-leak guards; the launcher restores your selection and shows the worktree picker again; a runaway WebSocket reconnect is halted. (#918, #919, #914, #920)
  • ACP protocol, hardened. The Codex client aligns with stable ACP duties; streaming coalesce buffers and agent-controlled tool-call payloads are bounded; unconfirmed config, unsupported prompts, and relative cwd are rejected; messageId is honored and out-of-turn agent text is kept; post-cancel prompt errors are treated as cancelled; the remote agent version is applied and the catalog opt-in restored. (#911, #906, #890, #895, #893, #891 — thanks @julianromli and @naddrzz)

Fixes

termul-server

  • The session writer backpressures burst records instead of dropping them. (#889)
  • --state-dir resolves before HOME/XDG defaults. (#885)

Web and desktop

  • Chats re-subscribe instead of resume when a turn is still active after reload. (#888)
  • Mobile header and context-bar touch targets raised to 44px. (#886)

Under the hood

  • A new Playwright e2e suite covers agent survival, crash recovery, editor regression, switch responsiveness, and worktree launch. (#919)
  • ACP store tests realigned with the additionalDirectories argument; set_config_option visibility tightened. (#930)
  • Biome-format follow-ups for #892. (#898)

Installing on Windows

If Windows SmartScreen shows "Windows protected your PC", the installer isn't code-signed yet. Click More info, then Run anyway.

Contributors

Thanks to @julianromli (#874, #911, #892, #893, #895, #890, #891), @naddrzz (#906), and @gnoviawan for their work in this release.

Full changelog: v0.4.20...v0.4.21

Termul Manager v0.4.20

Choose a tag to compare

@github-actions github-actions released this 05 Oct 14:34
125df2a

Termul v0.4.20

Highlights

  • Agents can now drive a browser (Windows only for now). ACP agents open pages in a dedicated right-hand pane, evaluate page scripts, accept flat or nested tool params, and ask for consent inline in the chat — a gradient ring shows when the agent is in control. (#793, #817, #826, #827, #829, #830, #831, #833)
  • Sessions that survive anything. Reopened chats keep their session state and prefer resume; crash-corrupted histories heal instead of failing; the session writer backpressures bursts instead of dropping records; interrupted turns get markers after writer drain on shutdown. (#809, #887, #889, #892)
  • Multi-device remote, hardened. Host-owned agent reuse with mid-turn resume guards and an idle reaper, bounded replay holes, accepted-turn retry dedupe, cross-device fan-out, multi-device PTY attach, a web reaper, an explorer FS watcher, and a hardened WebSocket handshake with origin validation. (#861, #866, #870, #871, #872, #873)
  • Web client, polished for phones. Desktop-only UI is hidden on web, keybindings are web-safe, the on-screen keyboard no longer double-compensates, chat notifications land properly, and mobile touch targets grew to 44px. (#868, #869, #886)
  • Snappier remote. Catalog fetches dedupe and serve with gzip/immutable caching. (#867)
  • Project icons resolve themselves. Icons are picked automatically from repo files and the git remote. (#875)
  • Retuned colors. Termul's dark and light ramps were retuned for better contrast and cohesion. (#864)

Experimental features

  • Canvas, one click away. A new canvas entry on the activity rail opens a visual workspace rendered by openpencil — tab, bridge, store, and facade up front; daemon pool, proxy, and MCP endpoint behind it. (#832, #834, #835)

New

  • Primary buttons are embossed and oversized actions shrunk. (#828, thanks @julianromli)
  • Agent chat motion polish and a single Comet spinner. (#820, thanks @julianromli)
  • The agent-chat tab shows a turn activity cue instead of a connection lamp. (#816)
  • The marketing landing page got transitions.dev motion. (#818, thanks @julianromli)
  • Token-entry screen for web auth. (#869)

Fixes

Agents and chat

  • Post-cancel prompt errors are treated as cancelled. (#893, thanks @julianromli)
  • Agent messageId is honored and out-of-turn agent text is kept. (#895, thanks @julianromli)
  • Unconfirmed config, unsupported prompts, and relative cwd are rejected. (#890, thanks @julianromli)
  • The remote agent version is applied and the catalog opt-in restored. (#891, thanks @julianromli)
  • Chats re-subscribe instead of resume when a turn is still active after reload. (#888)
  • Warm-pool slots are dropped on renderer-initiated teardown. (#792)
  • Session agent tabs are reused on navigate; explicit tabIds no longer auto-open. (#831)
  • Browser boundary logs carry wire error codes and arg key names. (#833)

termul-server and remote

  • --state-dir resolves before HOME/XDG defaults; state-dir-derived defaults, question grace, and interrupted-turn markers. (#885, #866)
  • Session-persistence test repair and interrupted-marker fold parity. (#876)
  • @mention filename search transport, sessionless project switch, project restore. (#870)

Web and desktop

  • A touch tap refocuses the terminal after blur. (#860)
  • Browser consent renders in the focused surface — an in-chat card replaces the centered modal. (#830)
  • macOS DMGs are notarized and stapled in the release workflow. (#781, #782)
  • Rust 1.99 clippy/deprecation failures resolved; the signal-reaper cfg check is compile-time. (#779, #780)

Under the hood

  • The great October refactor: every god-file split into module directories — acp-store into zustand domain slices, ws.rs and commands.rs into domain modules, ConnectedTerminal, AgentLauncher, WorkspaceTabBar, ProjectSidebar, and GitPanel into leaf components, plus pty/manager, worktree, acp manager, session_persistence, git_tracker, and acp-transport. Inline test mods moved to sibling files, test fixtures deduped, invokeIpc/web helpers unified into lib/ipc, and ~6,600 lines of dead renderer code removed. (#786–#814, #798–#803)

Installing on Windows

If Windows SmartScreen shows "Windows protected your PC", the installer isn't code-signed yet. Click More info, then Run anyway.

Contributors

Thanks to @julianromli (#864, #828, #820, #818, #893, #895, #890, #891, #892) and @gnoviawan for their work in this release.

Full changelog: v0.4.18...v0.4.20

Termul Manager v0.4.18

Choose a tag to compare

@github-actions github-actions released this 01 Oct 23:10
1f7fb1a

Termul v0.4.18

Highlights

  • Switch agents mid-chat. Pick a different agent from the composer and keep going: the live transcript and a handoff summary carry over, the timeline marks the switch, and the sidebar shows which chats used more than one agent. (#737, #739, #744, #748, #753, #760, #764, #766, #775)
  • Inline AI assist in the terminal. Ask Termul to explain a command's output or fix a failing command right from the terminal. (#689)
  • Idle notifications. Get notified when a long-running terminal tab goes quiet. (#682)
  • Per-line staging. Stage or unstage individual lines inside a git hunk. (#681)
  • Installable web client. The termul-server web client is now a PWA, works on phones below 767px, and shows connection health with safer offline input. (#705, #707, #714, #731)
  • Headless agent sign-in. Agents that need OAuth can now sign in from a terminal, with a browser-open paste-back flow for remote and headless setups. (#715)
  • Faster with many projects. Streaming, tab activation, and transcripts now only do work for the visible workspace, ACP transcript memory is bounded, and startup no longer rescans every session file. (#721, #728, #735, #773)
  • Fresh look. A new semantic color system across chat, workspace, terminal, panels, and dialogs, plus smoother scrolling and polished sidebar, explorer, and drag-and-drop transitions. (#743, #763, #767, #769-#772)
  • Notarized macOS builds. The DMGs are now signed, notarized, and stapled, so macOS opens them without a Gatekeeper warning. (#781)
  • No more 100% CPU on Linux. The ACP agent process no longer pins a CPU core when Termul is built from the repo root. (#776, fixes #717)

New

  • Project name is filled in from the folder you pick; advanced options moved into a collapsible section. (#686)
  • Git worktree setup progress streams into the chat as a collapsible first row when launching an isolated agent. (#752, #762)
  • Enabled MCP servers are checked automatically when the app starts. (#738)
  • ACP agent registry now updates in-app at runtime. (#711)
  • Tab-bar context menus and middle-click close work the same across all tab kinds. (#747)
  • Agent chat UI polish and ACP workflow improvements. (#726, thanks @julianromli)

Fixes

Agents and chat

  • Fixed the ACP agent process pinning a CPU core at 100% on Linux; the async-process reaper config is now applied for builds from the repo root too. (#776, fixes #717, thanks @insankhamil for the detailed report)
  • Provider sign-in is reused when launching agents in a worktree or another project, instead of asking you to log in again. (#729)
  • Resumed chats keep full scroll-back, skill chips, and no longer double the first prompt or duplicate messages when scrolling up. (#698, #733, #736, #740, #751)
  • Failed sessions can be retried cleanly without leaving dead tabs; multi-step agent auth progresses correctly. (#700, #701)
  • File paths, images, and command pills render properly in chat. (#723, #724, #727)
  • Removed the "Starting agent" banner from the top of the chat pane. (#722)
  • Claude Desktop-style MCP JSON (object-map headers) now imports correctly. (#691, #693)
  • Fixed every isolated agent launch failing because of an invalid --progress flag. (#754)
  • Factory Droid update state is preserved. (#732, thanks @julianromli)

termul-server and remote

  • Web auth token is required on public binds (fails closed). (#696)
  • Project list survives server restarts by default. (#697)
  • Agents launched under systemd get your login PATH. (#687)
  • Protocol, git route, branch, and shell-fallback hardening. (#702, #704, #716)
  • Cloudflare tunnel no longer stalls after the URL is found. (#713)

Desktop

  • Restored projects keep file access after an app restart. (#685, thanks @kuravista)
  • New terminals and agent sessions start in the main project root. (#688)
  • SSH profiles can be deleted from the context menu. (#692)
  • Main window navigation is restricted to an allow-list (security hardening). (#680)
  • Custom scrollbar restored. (#734)
  • macOS DMGs are now notarized and stapled, so Gatekeeper opens them without an "unidentified developer" warning. (#781)

Installing on Windows

If Windows SmartScreen shows "Windows protected your PC", the installer isn't code-signed yet. Click More info, then Run anyway.

Contributors

Thanks to @davidgrldo (#681, #682, #689, #720), @julianromli (#726, #732, #767), and @kuravista (#685) for their work in this release.

Full changelog: v0.4.15...v0.4.18

Termul Manager v0.4.15

Choose a tag to compare

@github-actions github-actions released this 27 Aug 11:11
57d325b

[0.4.15] - 2026-08-27

Highlights

v0.4.15 brings the agentation toolbar, MCP OAuth 2.1, a reworked chat history experience, and a wave of web-client and security hardening.

  • Agentation toolbar + MCP-native annotations — the agentation toolbar is integrated with an MCP-native annotation backend, letting agents attach structured annotations (plans, todos, status) to sessions that survive across reconnects. (#451, #662)
  • MCP OAuth 2.1 flow — HTTP/SSE MCP servers can now complete a full OAuth 2.1 authorization flow instead of requiring static tokens, so providers like Notion, Linear, and GitHub MCP just work with a browser sign-in. (#669)
  • Reworked chat history — chat history now lazy-loads tail-first on resume (CAP-2), shows relative last-activity timestamps, strips verbatim cwd prefixes so session/resume works on Windows, and reads only tail records from disk to avoid loading full transcripts on reconnect. A collapsible changed-files panel sits above the running chatbox, and file @-mentions render inline as Tiptap pills. (#667, #668, #672, #675, #673, #671, #676)
  • termul-server onboard setup — the standalone server binary now ships a guided onboard setup + background launch, so a fresh VPS goes from termul-server to a working web client in seconds. --help is now structured with sections. (#663, #658)
  • Web-client persistence & resilience — web client state and project list are persisted server-side (Option B), with signal-driven adaptive keepalive and extended disconnect grace so long-background tabs survive without a full reconnect. Remote fs/git writes on standalone termul-server are now opt-in, the worktree picker shows when the server admits writes, and project git branch is auto-detected. (#635, #656, #637, #652, #654, #655, #659, #636, #665)
  • Settings & UI polish — settings and preferences are now modal dialogs, composer selections persist across chat sessions, all context menus are unified onto the shadcn Radix primitive, and the native-menu hook switches to the bubble phase so the global menu opens. (#660, #631, #632, #626)
  • Security hardening — session IDs in logs are redacted to 8-char prefixes, user-provided paths are rebuilt from components after .. rejection to break taint flow, and the landing contributors sync script is excluded from CodeQL. (#679)

Note: macOS bundles are ad-hoc/unsigned in this release (no Apple Developer Program configured); the auto-updater signatures (.sig) are still produced. Set the APPLE_* repository secrets to re-engage notarization + Gatekeeper verification automatically.

Full diff: v0.4.10...v0.4.15

✨ Features

  • Agentation — integrate agentation toolbar + MCP-native annotation backend (#451, #662) by @gnoviawan
  • Mcp — OAuth 2.1 flow for HTTP/SSE servers (#669) by @gnoviawan
  • Acp — lazy-load chat history tail-first on resume (#667) by @gnoviawan
  • Acp — normalize Zed-style paste format + custom agent icon support (#666) by @gnoviawan
  • Acp — show relative last-activity time on chat history rows (#668) by @gnoviawan
  • Chat — collapsible changed-files panel above running chatbox (#673) by @gnoviawan
  • Chat — file @-mentions render inline as Tiptap pills (#671) by @gnoviawan
  • Chat — mobile chatbox selectors as centered modal with touch-safe drag (#657) by @gnoviawan
  • Chat — persist composer selections across chat sessions (#631) by @gnoviawan
  • Server — add termul-server onboard guided setup + background launch (#663) by @gnoviawan
  • Ui — convert settings and preferences to modal dialogs (#660) by @gnoviawan
  • Web — persist web client state server-side (#635) by @ihsan-ramadhan
  • Web — persist web-client project list server-side (Option B) (#656) by @gnoviawan
  • Web — signal-driven adaptive keepalive and extended disconnect grace (#637) by @gnoviawan
  • Sidebar — replace worktree submenu with per-project chat history (#628) by @gnoviawan

🐛 Bug Fixes

  • Security — redact session IDs in logs and sanitize path taint (#679) by @gnoviawan
  • Acp — strip verbatim cwd prefix so session/resume works on Windows (#672) by @gnoviawan
  • Acp — read only tail records from disk for lazy-load chat history (#675) by @gnoviawan
  • Acp — recover web rate_limited turn-busy to queue on host→web switch (#633) by @gnoviawan
  • Browser — resync webview bounds after creation to stop split-pane overflow (#661) by @gnoviawan
  • Chat — resolve changed-files panel path from ACP locations field (#676) by @gnoviawan
  • Chat — resolve composer cursor dead-space and add multi-line scroll (#670) by @gnoviawan
  • Chat — compact MCP badge with inline icon and scrollable popover (#643) by @gnoviawan
  • Chat — drive @-mention file picker via ripgrep sidecar (#625) by @gnoviawan
  • Plan — render termul-plan fence as PlanPanel via ChatMarkdownCode delegation (#627) by @gnoviawan
  • Plan — ensure termul-plan fence opener sits on its own line (#629) by @gnoviawan
  • Acp — remove background title agent; use set_session_title MCP tool only (#630) by @gnoviawan
  • File Explorer — mobile back button returns to parent, not root (#638) by @gnoviawan
  • Release — validate SHA256SUMS entries against published asset names (#651) by @davidgrldo
  • Web — allow remote fs/git writes on standalone termul-server via opt-in flag (#652) by @gnoviawan
  • Web — show worktree picker when server admits writes, not by hostname guess (#654) by @gnoviawan
  • Web — detect isGitRepo on project creation for existing git repos (#655) by @gnoviawan
  • Web — consume attach snapshot + auto-detect project git branch (#659) by @gnoviawan
  • Web — remove no-op window controls, relocate panel toggles to panel sides (#665) by @gnoviawan
  • Web — reopen durable writer on subscribe and instant reconnect on long background (#636) by @gnoviawan
  • Renderer — switch native-menu hook to bubble phase so global menu opens (#626) by @gnoviawan

🔧 Refactor

  • Chat — restyle queued-message panel to connect with chatbox (#674) by @gnoviawan
  • Renderer — unify all context menus onto the shadcn Radix primitive (#632) by @gnoviawan

🛠️ CI & Chores

🙌 Contributors

Thanks to everyone who shipped this release:


📦 Downloads

Pick the build for your platform from the assets below. Linux artifacts and all .sig updater signatures are produced; macOS bundles are ad-hoc/unsigned this release (see the note above). The auto-updater will pick this release up automatically.

Termul Manager v0.4.10

Choose a tag to compare

@github-actions github-actions released this 08 Aug 12:20
fd40f19

[0.4.10] - 2026-08-08

Highlights

v0.4.10 is the biggest release to date, landing the multi-channel release system, full web & mobile parity, the standalone termul-server, and a major ACP (Agent Client Protocol) overhaul.

  • Multi-channel release system — Termul now ships on Stable, Insider (RC), and Nightly channels for both the desktop app and the standalone termul-server binary, with minisign signature verification and an opt-in self-update subsystem for unattended VPS deployments. The updater manifest (latest-stable.json + latest.json alias) is published automatically on every v* tag. (#558, #559)
  • Full web & mobile parity — Termul now runs as a web app and on mobile browsers. Web terminal parity, a mobile chat shell + file-explorer drawer, GitPanel mobile, and per-capability truthful facades + gates mean the web build honestly reflects what the host server supports instead of stubbing silently. Workspace layout + chat drafts persist across reloads via localStorage. (#535, #536, #538, #549, #553, #556, #557, #499, #449, #479, #480, #514)
  • termul-server standalone binary — a headless, VPS-deployable server binary (server_main.rs, gated behind the standalone-server feature) serving the same embedded web bundle via Axum + a live WS relay. Operators can expose it through a built-in cloudflared tunnel with a scan-to-connect QR, and opt into verified atomic self-updates. (#433, #469, #550)
  • ACP overhaul — catalog, install, history, MCP — upgraded to agent-client-protocol 1.3.0, added a host-owned ACP catalog with verified atomic agent installation (CAP-6), host-owned ACP history / terminal leases / workspace manifests (CAP-1..5,7), and full MCP server integration (status, tool list, JSON import, probe errors, Windows npx spawn fix). (#526, #551, #550, #510, #525, #528, #537, #542)
  • Agent Skills + chat UX — Agent Skills returned as inline composer/timeline chips and a deduped slash menu; the agent chat got attachments, motion, human-readable tool calls, a structured AskUserQuestion panel, nested tool-media rendering, and a per-word staggered fade for streamed text. (#506, #512, #516, #519, #521, #396, #496, #533, #534, #541)
  • Editor, git, and platform polish — editable YAML frontmatter Properties panel + editor auto-save + VSCode-style file-explorer toolbar actions; ACP-generated commit messages and merge conflict resolution suggestions; a system tray + single-instance focus; vendored OpenSSL for portable macOS bundles. (#443, #544, #545, #509, #441, #397, #455)

Note: macOS bundles are ad-hoc/unsigned in this release (no Apple Developer Program configured); the auto-updater signatures (.sig) are still produced. Set the APPLE_* repository secrets to re-engage notarization + Gatekeeper verification automatically.

Full diff: v0.4.8...v0.4.10

✨ Features

  • add multi-channel release system (stable/insider/nightly) for desktop and termul-server (#558) by @gnoviawan
  • Web — fix remaining web/mobile parity gaps — truthful facades + capability gates (#553) by @gnoviawan
  • Acp — host ACP catalog and verified atomic installation (CAP-6) (#551) by @gnoviawan
  • Continuity — host-owned ACP history, terminal leases, workspace manifests (CAP-1..5,7) (#550) by @gnoviawan
  • Acp — default turn + idle timeouts to unlimited (#547) by @gnoviawan
  • File Explorer — add vscode-style header toolbar actions (new file, new folder, refresh) (#545) by @gnoviawan
  • Acp — expose ACP timeout env overrides in App Preferences (#543) by @gnoviawan
  • Settings — use JSON editor for MCP servers + compact one-line list (#542) by @gnoviawan
  • Web Parity — mobile shell entry points + GitPanel mobile branch + TOC hide (CAP-5/6) (#538) by @gnoviawan
  • Acp — import MCP JSON config, surface probe errors, fix Windows npx spawn (#537) by @gnoviawan
  • Web Parity — add web entry resilience + facade web branches for CAP-3 (#536) by @gnoviawan
  • Web Parity — git/search/skills/log web routes + facade branching for web/mobile parity (#535) by @gnoviawan
  • Acp — add MCP tools to launcher and refine tool list styling (#528) by @gnoviawan
  • Acp — upgrade agent-client-protocol to 1.3.0 (#526) by @gnoviawan
  • Acp — add MCP server status, tool list, and chatbox enable/disable (#525) by @gnoviawan
  • Acp — auto-scroll thinking box while streaming (#522) by @gnoviawan
  • inline agent-skill chips in composer and timeline (#519) by @gnoviawan
  • Terminal — replay PTY modes so TUIs restore correctly across refresh (#517) by @gnoviawan
  • Acp — agent skill inline chip pills in composer and launcher (#516) by @gnoviawan
  • Acp — restore Agent Skills in slash menu with dedup (#512) by @gnoviawan
  • Acp — add MCP setup in settings (#510) by @gnoviawan
  • Git — generate commit messages with ACP (#509) by @gnoviawan
  • Acp — slash command chip UI in chat input (#507) by @gnoviawan
  • disable default webview context menu on right-click (#505) by @gnoviawan
  • Chat — scrollable thinking box with expand/collapse toggle (#504) by @gnoviawan
  • add web terminal parity for desktop and mobile (#499) by @gnoviawan
  • Acp — close relay reliability seams for resume, long-run, and stale recovery (#498) by @gnoviawan
  • Acp — structured AskUserQuestion panel (#496) by @mannnrachman
  • Acp — render nested tool media (#491) by @mannnrachman
  • Acp — open chat file paths in editor (#488) by @mannnrachman
  • Web — add mobile file explorer drawer for web/remote browsing (#480) by @gnoviawan
  • Web — add mobile file explorer drawer for web/remote browsing (#479) by @gnoviawan
  • Web — allow project switching on a cold tab without a live agent (#474) by @gnoviawan
  • Remote — scan-to-connect QR via built-in cloudflared tunnel (#469) by @gnoviawan
  • Fs — remove web + ACP path jail to allow browsing all folders (#468) by @gnoviawan
  • Editor — redesign markdown preview readability (#464) by @gnoviawan
  • Acp — web chat-history server sync + restore-on-switch-back (#461) by @gnoviawan
  • Acp — redesign chat tool activity (#460) by @gnoviawan
  • Chat — surface failed project switch inline (5-2) (#459) by @gnoviawan
  • Acp — add multi-project switching and session persistence (#456) by @gnoviawan
  • mobile ACP chat layout + web/remote project-list mirror, switch & live-sync (#449) by @gnoviawan

🐛 Bug Fixes

  • nightly version uses upcoming release base (release/v* detection) (#559) by @gnoviawan
  • Web — reconcile /fs/* containment policy with git/skills/search (CAP-2) (#557) by @gnoviawan
  • Web — bind shared-live project_root to active project (CAP-1/CAP-8) (#556) by @gnoviawan
  • Acp — restore click-to-install, host-aware catalog, and web agent auth (#554) by @gnoviawan
  • address CodeRabbit review findings from CAP-6 PR (#551) (#552) by @gnoviawan
  • Editor — keep editor open on save, add auto-save and explorer file actions (#544) by @gnoviawan
  • Acp — restore persisted tool calls when resuming chat history (#541) by @gnoviawan
  • Acp — polish agent chat design foundations (#534) by @julianromli
  • Acp — slow streamed text fade with per-word stagger for smooth word reveal (#533) by @gnoviawan
  • Acp — stop leaking [blocked] type names into chat tool call rendering (#532) by @gnoviawan
  • Acp — align skill chip caret with transparent textarea padding (#531) by @gnoviawan
  • format turn duration as h/m/s and collapse needs-attention turns (#524) by @gnoviawan
  • unify chat composer slash/chip parity across launcher and chatbox (#523) by @gnoviawan
  • align skill chips with caret and stop duplicate launch bubbles (#521) by @gnoviawan
  • Acp — replace total turn timeout with idle deadline + 3h hard cap (#520) by @gnoviawan
  • Acp — stream chat text with opacity fadeIn instead of blur (#518) by @gnoviawan
  • Acp — resume sessions from backend watermark on refresh so running work survives reload (#515) by @gnoviawan
  • Web — persist workspace layout and chat draft across reload via localStorage (#514) by @gnoviawan
  • Web — reconnect terminal websocket on mobile AFK visibility return (#513) by @gnoviawan
  • Acp — re-fill empty args/env/headers in MCP wire payload (#511) by @gnoviawan
  • Acp — move desktop history out of WebView storage (#508) by @gnoviawan
  • Acp — compute actual diff lines instead of treating full file contents as changed (#503) by @gnoviawan
  • add first-prompt warmup to prevent ACP cold-start hang (#502) by @gnoviawan
  • Web — carry projectId in terminal spawn so web UI terminals run (#501) by @gnoviawan
  • Web — stop infinite re-render loop in mobile chat shell (#500) by @gnoviawan
  • Web — desktop subdir expansion + mobile last-folder persistence (#492) by @gnoviawan
  • Acp — remove agent chat bottom gap (#489) by @mannnrachman
  • Acp — reload configs during history restore (#487) by @mannnrachman
  • Acp — surface close session failures (#486) by @mannnrachman
  • Acp — accept items-only attachment drops (#484) by @mannnrachman
  • Workspace — restore agent chat tabs (#482) by @mannnrachman
  • Acp — improve PlanPanel details (#481) by @mannnrachman
  • Acp — keep web/remote ACP alive through proxies and dedup user_prompt echo (#478) by @gnoviawan
  • Acp — recover Cursor/Pi provider setup with authenticate-before-session + sign-in banner (#476) by @gnoviawan
  • Acp — bound live chat memory + render cost for long multi-session runs (#475) by @gnoviawan
  • Acp — persist web/remote session across mobile idle/background (#473) by @gnoviawan
  • Remote — make tunnel probe best-effort (non-blocking) — fixes #471 no-QR regression (#472) by @gnoviawan
  • Remote — gate tunnel QR on edge reachability + clear stale URL on cloudflared exit (#471) by @gnoviawan
  • Chat — remove UUID-path breadcrumb and plan-mode warning from chat top (#470) by @gnoviawan
  • ...
Read more

Termul Manager v0.4.8

Choose a tag to compare

@github-actions github-actions released this 18 Jun 14:29
1c72e2d

[0.4.8] - 2026-06-18

Highlights of this release: updater: show What's New release-notes popup after update, git: add syntax highlighting and word-level diff to GitDiffView, ui: whole-UI zoom via Ctrl+=/-/0 (VS Code style), fixes for terminal, ui.

Full diff: v0.4.7...v0.4.8

✨ Features

  • Updater — show What's New release-notes popup after update (#383) by @gnoviawan
  • Git — add syntax highlighting and word-level diff to GitDiffView (#382) by @gnoviawan
  • Ui — whole-UI zoom via Ctrl+=/-/0 (VS Code style) (#376) by @gnoviawan
  • Settings — add category sidebar with fuzzy search to settings pages (#373) by @gnoviawan
  • Git — add status bar branch picker with checkout and create (#338) by @julianromli
  • Git — add line numbers to diff view (#265) by @DeryFerd

🐛 Bug Fixes

  • Terminal — wire pasteText to send bracketed paste markers directly to PTY (#381) by @gnoviawan
  • Ui — consistent typography scale and left-panel density (#375) by @gnoviawan
  • File Explorer — theme primary folder icons and align Explorer header (#305, #334) (#372) by @mannnrachman
  • Acp — surface agent error messages when session_id is None (#371) by @khmuhtadin
  • File Explorer — stream filename search via rg --files to fix 0-count regression (#364) by @mannnrachman
  • Pty — strip verbatim ?\ CWD prefix so cmd.exe starts in project (#352) by @gnoviawan
  • Ui — align Explorer sidebar header typography with Projects (#335) by @julianromli
  • Search — cap search query length to prevent resource exhaustion (#274) by @DeryFerd
  • Browser — escape double quotes, newlines, and Unicode separators in annotation JS injection (#273) by @DeryFerd

⚡ Performance

🛠️ CI & Chores

  • enforce PR template by validating description on pull_request (#374) by @gnoviawan

🙌 Contributors

Thanks to everyone who shipped this release:


📦 Downloads

Pick the build for your platform from the assets below. macOS and Linux artifacts are signed; the auto-updater will pick this release up automatically.