Repository navigation
Releases: devincii-io/quickterm
Release list
QuickTerm v4.1.1
Released 2026-10-04.
Sidebar
- A workspace with one terminal takes two rows instead of four. The active
workspace's folder name and save dot sit on its row, and the Explorer and
VS Code buttons appear there on hover next to Close view and the
menu. The line under a workspace is used only for the workspace here
offer, while it is offered. - A terminal row is a single line. Its folder follows the name, and under a
workspace only when the terminal has left the workspace's folder (in
scratch, the folder it started in). - The footer icons are centred; the collapse arrow stays on the right.
Install with QuickTerm-v4.1.1-Setup.exe or unpack the portable ZIP. Verify downloads against SHA256SUMS.txt.
QuickTerm v4.1.0
Released 2026-10-04.
Sidebar
- Workspaces with no terminal that are not open are hidden. A Show N
empty workspaces line under the list brings them back. - A view button next to search sets what the list shows: empty workspaces,
finished terminals (a finished one that still asks for you always shows),
grouping by workspace or one list of terminals, and sorting by name or by
recent activity. Reset view goes back to the default. The button is
tinted while the view differs from the default, and the choice is kept
per window. - Workspaces are proper rows: an arrow that folds their terminals (pointing
right when there is nothing inside), the view color and the name. A
count shows only when there is something to count. - Terminals hang under their workspace on a guide line; the active
workspace's line is in its accent. - The search button opens the palette already narrowed to workspaces and
terminals (@).
Palette
- Opening the palette selects the first row. Before, rows that arrive a
moment later (saved workspaces, agent sessions) pushed the first row to
the bottom and left it selected, so Enter could close a workspace view. - Workspaces are listed in the same order as the sidebar, ignoring case.
Install with QuickTerm-v4.1.0-Setup.exe or unpack the portable ZIP. Verify downloads against SHA256SUMS.txt.
QuickTerm v4.0.0
Released 2026-10-04.
Workspaces and sidebar
- A window no longer has a main workspace. Every workspace, scratch
included, opens as its own view with its own layout, autosave and close
button. Closing any view saves it and keeps its terminals running. Closing
the last one leaves an empty area with a New scratch button. - Opening a workspace that is already on screen focuses its view. Otherwise
the new view takes half of the active one. The sidebar, the palette, the
Dashboard,quickterm openand Explorer's Open QuickTerm here open or
focus a view and never swap the workspace inside one. Open QuickTerm
here opens a new scratch view in that folder. - The sidebar is one list in a fixed order: every saved workspace in
alphabetical order, empty ones included, then scratch views, then
Unassigned. Terminals are sorted by name. A terminal that needs you gets a
chip and keeps its place. - Click a workspace to open or focus it. On hover it offers Close view
and a menu with Open in new window, Workspace settings and Delete
workspace. The active workspace shows its folder, the Explorer and VS Code
buttons and the save dot on a second line. - Every live terminal row has Detach and Kill on hover or keyboard
focus. Kill asks in a small box beside the row. After a click, Cancel has
the focus; after the Delete key, Kill has it and Enter confirms. A failed
kill keeps the row, shows the reason and offers Retry. - Right-click, Shift+F10 or the menu key on a row offers Open, Move to the
active workspace, Detach, Rename and Kill. Double-click or F2 renames. - Clicking a terminal focuses it where it is shown, opens its workspace when
that is closed, or moves an Unassigned terminal into the active view. - Removed: the "Main window" row, the colored view navigation, the
"workspace beside" footer button and the strip of terminal choices. The
floating + in hidden mode no longer drags; it sits 12 px from the top. - A view keeps its color across restarts. Closing a scratch view keeps only
the terminals that are busy or that you typed into. Idle untouched shells
are left to the idle cleanup, so they no longer keep QuickTerm in the tray. - Kill all terminals in the Dashboard closes the killed panes in every
view of every native window.
Agents: Claude Code and Codex
- Codex is a terminal type next to Claude Code, under Agents in
Settings > Terminals > Add. Both use one launch mode setting: new
conversation, continue latest, choose session and agent manager. Codex
also has fork a session. Claude Code profiles keep their 3.x mode. - Agent profiles have typed options. Claude Code: model, permission mode,
effort, session name and extra folders, and under Advanced an extra system
prompt, agent, MCP config, settings file, fork when resuming, verbose and
connect IDE. Codex: model (suggested from Codex's model cache), approval,
sandbox, approve for me, bypass approvals and sandbox, reasoning effort,
web search, config profile and extra folders, and under Advanced worktree,
inline mode, local model and local provider. - The palette lists the workspace folder's recent conversations as "resume
Claude session: <title>" and "resume Codex session: <title>". Restarting
such a pane resumes the same conversation. Scratch views list the
conversations of their own folder. Codex subagent and background threads
are left out, and a Claude session renamed with /rename shows that name. - The palette has a row for every mode of every agent profile, plus "split
agent view". Splitting an agent manager pane starts a normal conversation
in the workspace folder. A restored agent pane whose process is gone
offers Continue latest and Choose session for both agents. - When Codex is installed through npm, QuickTerm starts its native
codex.exeinstead of the.cmdshim. For an agent started through a
.cmdor.batfile, QuickTerm refuses arguments that cmd.exe would
reinterpret.
SSH
- SSH and SFTP profiles can use the Windows OpenSSH client next to the
bundled PuTTY tools. New profiles pick OpenSSH when it is installed.
Existing profiles keep PuTTY. - QuickTerm reads host aliases from
~/.ssh/config. It follows Include and
skips Match blocks and wildcard hosts. Settings > Terminals > Add has a
"From ~/.ssh/config" heading with one entry per alias, and the Host field
suggests aliases. Picking one shows the resolved user, port, key and
ProxyJump as placeholders. Fill from ~/.ssh/config copies them into
the fields. - OpenSSH profiles take a ProxyJump. QuickTerm refuses a
.ppkkey with
OpenSSH, a ProxyJump with PuTTY, and a host or user that starts with "-".
Without an OpenSSH client the error names the Windows optional feature to
install. A PuTTY profile whose key is not a.ppkoffers Switch to
OpenSSH.
Settings
- Settings has seven tabs: General, Window, Shortcuts, Terminals, Snippets,
Advanced and About. The update notification switch moved to Advanced. - Terminals and Snippets show a filterable list with the editor beside it.
Rows mark problems and unsaved changes. Add is a menu grouped into
Shells, Agents, Remote, From ~/.ssh/config, Devices, Containers and
Desktop. In a window narrower than 820 px the editor replaces the list and
has a Back button. - One Save stores everything. The footer button, Ctrl+S in Settings and the
Save button in each editor do the same thing. "Save connection" is gone,
and Open stays disabled until a terminal is saved. - The terminal editor shows name, description and command first, then the
fields of its type, then launch mode, shortcut and autostart. Arguments,
environment and the start command are under Advanced. - No native drop-down list is left. Every choice opens a QuickTerm menu.
Shortcuts and search
- Shortcut fields record the keys you press. Esc cancels, Backspace clears.
Global hotkeys pause while a field records, so a key QuickTerm already
uses is recorded instead of fired. Letters follow your keyboard layout. - A changed summon key or terminal shortcut works as soon as you save, with
no restart. A key that another program holds is reported beside the field
and in the Save message. Only host and port still need a restart. - A new global shortcut needs Ctrl, Alt or Win. QuickTerm warns about Alt
keys it uses itself and about the Alt keys shells and agents use. - The Shortcuts tab lists the summon key, every terminal's shortcut and the
in-app keys. Help shows the same key list. - A search box at the top of Settings (press
/to reach it) finds any
setting, terminal or snippet, opens its tab and highlights the field.
Escape clears the box before it closes Settings. - The palette (Alt+K) adds "open workspace", "close workspace view", "new
scratch view", "go to terminal", "setting", "edit terminal", "edit
snippet" and "kill terminal" rows. "kill terminal" lists the live
terminals; Enter on one asks once more, Escape goes back. - Palette prefixes narrow the list:
>actions,@workspaces and
terminals,#settings and terminal configs,!snippets. - "load workspace" and "show workspace beside" became "open workspace".
"attach from another workspace" is now "move terminal here".
Window and overlay
- Settings > Window sets the default window size, from presets or custom,
or from Use this window's size. QuickTerm remembers the last size and
position unless you turn that off, and restores them only when they still
fit on a monitor. New windows open at the configured size, offset from
the first one. - An optional drop-down overlay turns the summon key into a toggle. The
window slides in from the top or bottom edge of the monitor under the
cursor, or of the primary monitor, at the width and height you set. It
stays on top and hides when another program takes the focus; both are
settings. Turning the overlay off restores the normal window at the next
summon. - The overlay stays open while QuickTerm opens a link, a folder or an
elevated terminal. Tray Open shows the overlay when it is on. - Sidebar and Settings text keeps at least 4.5:1 contrast on every surface,
and the sidebar marks focus and state in Windows high contrast mode.
Themes
- The built-in themes are replaced by 20 schemes taken from their upstream
sources: Graphite (the house theme, still the default), Catppuccin Mocha
and Latte, Tokyo Night, Storm and Day, Rosé Pine and Rosé Pine Dawn,
Kanagawa Wave, Dragon and Lotus, Gruvbox Dark and Light, Everforest and
Everforest Light, Nord, Dracula, GitHub Dark and Light, and Carbonfox.
Seven of them are light. - The sidebar, Settings and menus take their colors from each theme's own
editor palette, not only from the terminal. Status colors and the colors
of workspace views come from the theme's ANSI hues. - The theme chooser in Settings > General is a menu grouped into Dark, Light
and Custom. Every row shows the theme's accent and eight ANSI colors on
its background. - Graphite keeps its sidebar colors. Its terminal colors were rebuilt so
each row of the ANSI palette has one even lightness. - Every color in the stylesheets comes from a theme token. Tests check text
contrast in every theme and fail on a color literal outside the theme
definitions.
Upgrading from 3.x
config.jsonupgrades in place.claude_modebecomesagent_mode.
Claude Code profiles also keep writingclaude_mode, so 3.x still knows
their mode after a downgrade.- 3.x cannot read some shortcuts 4.0 records, for example Ctrl+Alt+Minus or
Ctrl+Alt+Left. 4.0 saves such a key under a field only 4.0 reads and
leaves the old field empty. After a downgrade 3.x loses that one shortcut
instead of resetting the whole configuration. - A 3.x shortcut without Ctrl, Alt or Win still loads and works. The
settings history in Settings > About can still restore a v...
QuickTerm v3.13.0
Released 2026-10-03.
Windows and workspaces
- Each native window has one sidebar, command palette and settings sheet.
Workspace views share that sidebar and keep their own terminal layouts.
Colored view navigation identifies the active workspace separately from
the native window. - New scratch views have independent temporary workspace identities. Opening
another scratch no longer replaces the workspace you are using. Closing a
view saves its layout and keeps its terminals running. - Workspace folder and logo edits preserve the latest layout and terminal
ownership. Layout autosaves cannot undo newer metadata edits.
Terminal and connection setup
- A setup tour introduces windows, workspace views and terminals. Save a
terminal configuration before launching it; detected shells populate setup,
not the sidebar's launch menu. - Typed forms cover local shells, WSL, Claude Code, custom commands, SSH/SFTP,
Telnet, serial consoles, Docker, Podman, Kubernetes, Remote Desktop and VNC.
Desktop connections open their own client windows and never create PTYs. - Configure arguments, environment variables, shortcuts and autostart in
forms. The raw JSON editor is removed.
Settings
- Saved themes, font defaults, terminals, connections, snippets and app
preferences refresh other native windows. Sidebar state stays per window;
text zoom stays per pane until the saved font default changes. - Settings saves send only changed fields and reject conflicting stale edits.
Cancelling a logo draft no longer deletes a previously saved image. - The Windows kill regression test launches a detached base interpreter and
waits for its PID. Python's virtual-environment launcher can no longer
terminate the intended survivor through its own job object.
Verification limits
- Remote hosts, container engines, serial hardware and desktop servers were
not connected during release verification. Their launch arguments and
validation are covered by tests; real connections remain UNVERIFIED. - Windows release binaries remain unsigned and can trigger SmartScreen.
QuickTerm v3.12.0
Resizing
- Text no longer breaks apart after you resize a pane or the window. The
terminal (now xterm.js 6.0) rewraps lines exactly as the Windows console
does, so a wrapped prompt stays in one piece and PowerShell no longer
redraws it over the output above. - Reopening a window or coming back to a workspace replays each terminal at
every size it went through, so its history comes back as it was instead of
scrambled. - The terminal scrollbar is xterm's own now; its rail stays visible, and it
shows no handle while there is nothing to scroll.
Terminals
- QuickTerm talks to the Windows console directly instead of through
pywinpty. Characters no longer turn into "?" boxes when they arrive split
across two reads, an exit shows at once, and the app is about 5 MB smaller. - Without PowerShell 7, the list under + and the palette offer to
install it. winget runs in a new terminal, where you answer its prompts
and the administrator request yourself; without winget, the download page
opens. Afterwards PowerShell 7 is in the list. - Settings > Default terminal lists every detected shell, so Git Bash, WSL
or Command Prompt can be the default without a profile. + switches to
the new default as soon as you save.
Known issue
- A prompt exactly as wide as the pane, followed by a resize, can still make
PowerShell redraw it one row too high.
QuickTerm v3.11.0
Terminals that need you
- A background terminal that rings the bell or sends a notification (Claude
Code and Codex do this when they wait for an approval or finish a turn)
gets a "needs you" dot in the sidebar, sorted to the top of its group, with
the message in the tooltip. It clears when you look at that terminal or
type into it. A detached terminal that finishes while you are away gets the
same mark. - When no QuickTerm window is in front, the taskbar button flashes; when
QuickTerm is hidden in the tray, a tray balloon names the terminal. At most
once per terminal every 30 seconds. - The sidebar shows each terminal's current folder, not only the one it
started in, and it now shows "busy" again. - A finished terminal whose output you have not read stays in the sidebar as
a dimmed row; opening it shows the final output.
Panes
- An exited terminal has a Restart button; Enter in the exited pane or
"restart terminal" in the palette does the same. The old output stays above
a[restarted]line, and the restart repeats the pane's own launch, Claude
mode included. - "broadcast input to all panes in this workspace" in the palette sends what
you type to every live pane, like tmux's synchronize-panes. It stops on a
workspace switch or from the palette. - "search all terminals..." in the palette searches every terminal's
scrollback and jumps to the hit. - "save terminal output" writes a terminal's scrollback as plain text to
Downloads\QuickTerm.
Workspaces and settings
- Workspaces tiled side by side come back after a restart or a reload.
- Settings > Terminals shows a profile as a name, a command and an optional
start command; everything else is under "More". - Settings > About lists the last 20 saved settings and restores any of them.
- Ctrl+_ (readline's undo) and Ctrl+Insert reach the terminal again; only
keys that really type +, - or 0 zoom the text.
Command line
quickterm ls,quickterm new [--profile] [--cwd] [--workspace],
quickterm open WORKSPACEandquickterm send SESSION TEXT [--enter]
drive the running app. See the README.
Fixes
- The Explorer handoff poll no longer retries hundreds of times a second
when the server refuses it. - Bash, Zsh and Fish profiles keep their own arguments; the dashboard names
Git Bash, Nushell, Bash, Zsh and Fish profiles correctly. - Menus opened in Settings draw above the sheet.
- Moving a Claude pane into a new workspace keeps its launch mode.
Under the hood
- The server is split into route modules (
quickterm/api/), the session
manager into ring, fan-out and reaper modules, and the frontend's
2,300-lineboot()into about twenty modules composed bymain.js.
Nothing about the wire protocol changed.
QuickTerm v3.10.0
Fixes for the 55 issues filed by the September audit (#9 to #63).
Terminals that stay usable under load
- On Linux, pasting a lot into a busy program froze every pane, the REST API
and the WebSocket until the program read its input. The writer no longer
holds the terminal while it waits. - Fast output (
yes, a big build) made the Linux viewer reset and replay the
terminal hundreds of times a second. Output is now collected into large
chunks as on Windows, and a viewer is only resynchronised once it is 2 MiB
behind instead of eight reads behind. The throughput benchmark went from
failing every run to about 55 MB/s. - Re-opening a terminal after its scrollback wrapped could print stray
characters and switch off modes set at startup. Replay now never starts in
the middle of an escape sequence or a character, and restores bracketed
paste, the alternate screen, mouse reporting and cursor modes, so a long
Claude Code session keeps working after a reload or a workspace switch.
Kill, exit and cleanup
- On Linux, killing a terminal now ends every job in it, including background
jobs, and a shell that exits while a background job still holds the
terminal is reported as exited at once. - A kill that fails leaves the terminal able to take input.
- On Windows, a kill is only reported as done when every process of the tree
is gone. - The idle reaper rechecks each terminal right before it stops it, so a
terminal you open or type into during a cleanup pass survives. - A detached terminal that finishes while you are away keeps its final output
until you open it (up to 24 hours). - Automatic replies from the terminal (cursor position, focus reports) no
longer count as typing, so an untouched shell can be cleaned up and no
longer keeps QuickTerm in the tray.
Starting terminals
- A missing program now says which terminal and which command failed, with a
hint that QuickTerm reads PATH when it starts, instead of "Internal Server
Error". - PowerShell and Command Prompt profiles use the executable the inventory
found and keep their own arguments. Git Bash and Nushell profiles run their
start command. - Autostart and global-hotkey profiles resolve exactly like terminals started
from the sidebar, get the PuTTY tools on PATH, and report a failure in the
error banner instead of failing silently. - A profile that sets
Pathnow really replaces PATH on Windows. - Linux terminals always advertise
TERM=xterm-256colorand truecolor. - On Windows, QuickTerm no longer runs a
taskkill.exeor shell planted in
the folder "Open QuickTerm here" was used on.
Workspaces, windows and settings
- "Open QuickTerm here" within 20 seconds of a reload is no longer lost.
- Deleting a workspace while an autosave is running no longer brings it back.
- A partial settings save no longer wipes profiles and their secrets, and
every save keeps the previous file asconfig.prev.json. - Changing the port back to its old value now sticks.
- A hidden or minimized window keeps its workspace claim.
- An administrator window keeps its own workspaces and no longer deletes the
normal window's scratch layout. - A corrupt workspace file is set aside as
*.invalid-*.jsoninstead of
becoming an entry that cannot be opened or deleted. Workspace names such as
con.txtsave on Windows 10. - A workspace autosave without a logo no longer clears the logo.
- Settings > General has a Scratch folder field.
- Splits on Linux open in the pane's real folder instead of a
\\host\path
UNC path.
QuickTerm v3.9.1
Closing a pane gives its space back
- Closing a pane in a split (Alt+D, the × button, Alt+W, kill all) left
the layout broken since 3.9.0: when the first pane went, the splitter took
two thirds of the window and the survivor kept one third; when the second
went, a stale splitter and a header stayed on the lone survivor. Neither a
resize nor waiting repaired it, only the next split did. The leave
animation now collapses the element it was meant to and redraws the tree
when it ends.
Zoom you can see and leave
- Alt+Z dropped the keyboard: the zoomed pane lost focus and the next
keystrokes went nowhere. The terminal keeps focus now. - The zoomed pane keeps its header. Its zoom control turns into ▣ "Show
all panes" and stays visible without hover; the palette row reads "show
all panes" while zoomed. Alt+Z on a lone pane says "[only one pane]"
instead of changing nothing visible. - Focusing a hidden pane while zoomed, from the sidebar or with Alt+arrows,
shows every pane again first instead of putting the keyboard into a
terminal you cannot see.
Kill from the keyboard
- Alt+W opens the kill bar with Kill focused; Alt+W or Enter again
kills, Escape cancels. Clicking Kill in the header still puts Cancel first. - Escape cancels the bar from anywhere in the pane, not only while one of its
buttons has focus. - Alt+W on a pane with no running terminal says so.
QuickTerm v3.9.0
Tile as many workspaces as you want
Workspace views are now leaves of the same split tree as terminal panes. A
new view takes half of the view you asked from, cut along its longer side, so
repeated opens spiral inward the way a tiling window manager places windows.
There is no limit on how many you open. Drag a view by its header onto another
view to dock it on that side or swap the two, drag a divider or use its arrow
keys to resize, zoom to see one view alone, and close to save it and leave its
terminals running. Every view has its own colour, and opening one works from
inside a view too: the sidebar footer, Alt+K, the tile action on a workspace
menu row, or "show ... beside" under a terminal that belongs to another
workspace. Views slide into place.
Menus instead of native selects
The terminal picker and the workspace row are QuickTerm's own menus. The
workspace menu shows each workspace's folder, marks the ones shown in another
view with that view's colour (choosing one focuses the view), and tiles any
other beside the current one from a hover action. Menus walk with the arrows
and typeahead, and hand the keyboard back to the terminal.
A workspace from the folder you are in
When the focused terminal sits outside the workspace folder, the sidebar
offers "workspace here: ". One click makes the folder a workspace
named after it, moves the terminal into it and switches there. A folder that
already is a workspace's root offers "open " and takes the terminal
along.
New terminals tile too
Alt+N cuts the focused pane along its longer side, and splits, closes, moves
and rebalances slide instead of jumping. Splitter drags never animate, and
prefers-reduced-motion turns the motion off.
Install: run QuickTerm-v3.9.0-Setup.exe, or unpack the zip. Both are listed in
SHA256SUMS.txt. The in-app updater in Settings > About picks this release up.
QuickTerm v3.8.0
Show two workspaces in one QuickTerm window. Choose two workspaces in the sidebar or show two workspaces… in Alt+K. Each view has its own terminals, sidebar, workspace label, and colored border. Resize the divider, stack the views vertically, or hide the second view without stopping its terminals.
Workspace saves now run in order, including the final page-exit snapshot. Switching saves the outgoing layout before handing over its workspace claim. Closing the second view waits for saving and retains its terminals. Page exit no longer unconditionally kills scratch terminals.
Quitting while a viewer's WebSocket is already closing no longer interrupts server shutdown with a duplicate-close error.
Verified locally on Windows 11 with 392 Python tests, 75 JavaScript tests, native WebView2 input/output and split/zoom in both views, focus and resize checks, save-failure recovery, and close-to-tray. The frozen application passed PTY, WebSocket replay/live/exit, authentication, and dynamic-route smoke checks. All four release files are covered by SHA256SUMS.txt.
The second-view arrangement opens on demand and is not restored at startup. Browser unload delivery remains best-effort; explicit companion close waits for its save. Workspace ownership remains advisory at the authenticated API write boundary.
Download the Setup.exe for installation or the windows-x64.zip for a portable copy. The wheel and source archive are included for Python installations.