-
released this
2026-07-16 13:46:42 +08:00 | 0 commits to main since this release🐛 Bug fixes
Buttons and panels no longer get clipped at Windows display scaling above 100%
- Fixed: on machines set to 125% or 150% scaling (most laptops), text grew with the scale but
many controls didn't — the Log / Script / Stop buttons on each session tab were truncated
or hidden, the ✨ AI Chat toolbar button lost its bottom edge at 150%, and dialogs like
Quick Connect could clip or overlap their fields. - Every fixed pixel size in the app now converts to your actual display scale, the same way
text always did: the sidebar, toolbars, tab strips, all Settings inputs and tables, the PDU
status grid, the AI chat pane, dialogs, the Ctrl+F search bar — even the scrollbar width. - Buttons that change their text (like ⏺ Log → ⏺ Logging) now size themselves from the
actual rendered text width, so they can never truncate again at any scale. - At 100% scaling nothing changes — the conversion is exact there, so existing setups look
identical to before.
Known limitation
- If you change the Windows display scaling while ETTerms is running, restart the app to
re-layout at the new scale.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.7.2)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.7.2_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.7.2.exe.🔗 Links
- TTL reference:
docs/ttl-script-reference.md - Architecture:
ARCHITECTURE.md
Full changelog: v0.7.1...v0.7.2
Downloads
- Fixed: on machines set to 125% or 150% scaling (most laptops), text grew with the scale but
-
released this
2026-07-16 10:13:27 +08:00 | 3 commits to main since this release✨ New features
sendlnretry— send a command, confirm it ran, resend if it didn't-
New TTL command:
sendlnretry '<text>' '<confirm keyword>' [max attempts].
It sends the text, then waits for proof the device actually ran it, and resends if that
proof never arrives. Leave the attempt count out and it retries until it gets through. -
Drop it in wherever you send a command right after a boot — the fragile
pause+sendln+waitdance becomes one line:wait 'root@(none):/#' sendlnretry 'tpm2' 'TPM 2p0' ; retry until the device really runs it wait 'PASS' -
Cap the attempts and handle the failure yourself — on success
resultis 1;
when the attempts run outresultis 0 and the script carries on instead of dying:sendlnretry 'tpm2' 'TPM 2p0' 3 if result = 0 then dispstr 'tpm2 got no response after 3 tries' endif -
Pick the confirm keyword from the command's own output (
TPM 2p0), not its echo (tpm2) —
an echo is produced by the device's tty and doesn't prove the shell ever read the line. -
Each attempt waits 3 seconds by default, or your
timeout/mtimeoutif you've set one.
(Unlikewait,0doesn't mean "wait forever" here — that would mean never retrying.)
🐛 Bug fixes
Scripts no longer hang forever when a booting device swallows a command
- Fixed: a device that is still booting can silently discard console input the moment its shell
takes over the tty. The line you sent is gone — the device never echoes it and never runs it —
so thewaitthat follows blocks forever and the test rig sits dead until someone notices. - This is a race, not a delay: adding
pausebeforesendlnonly lowers the odds of hitting the
window, it can never close it. In one overnight 45-cycle power-cycle run, 3 cycles hung this
way — and the swallowed sends landed at exactly the same moment as the 42 that worked. - Use the new
sendlnretryabove to make these sends reliable.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.7.1)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.7.1_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.7.1.exe.🔗 Links
- TTL reference (see 送出並確認 / sendlnretry):
docs/ttl-script-reference.md - Architecture:
ARCHITECTURE.md
Full changelog: v0.7.0...v0.7.1
Downloads
-
-
released this
2026-07-06 00:06:22 +08:00 | 7 commits to main since this release✨ New features
A proper chat UI for the AI Assistant
- The AI Chat pane now renders real chat bubbles — your messages on the right, the AI's on the left — with full Markdown: code blocks, tables, lists and inline
codeall display cleanly. - When you send a prompt, an animated "…" thinking bubble appears while the AI works and disappears the moment the reply lands, so you always know it's running.
- Built on WebView2 (part of Windows 11). The model dropdown,
[AI]serial tagging, and PDU confirmations all work exactly as before.
Control how far the AI runs
- New setting Max tool calls / message (Settings → AI Assistant): how many tool calls the assistant may chain before it stops — a runaway-loop guard. Default is 30.
- Set it to 0 for unlimited, handy for long automation runs you leave going for hours.
- While the AI is working, the Send button turns into Stop so you can abort any run — bounded or unlimited — at any time.
📦 Downloads
Build Needs .NET Runtime? Notes ETTerms_v0.7.0 (Standard) ✅ Requires .NET 8 Desktop Runtime Smaller download ETTerms_v0.7.0_portable (Portable) ❌ Runtime included Unzip and run anywhere, no admin Run
ETTerms v0.7.0.exe. (The WebView2 Runtime ships with Windows 11; both builds include the native loader.)🔗 Links
- Architecture — see "Built-in AI Assistant (Phase 10)"
- Serial MCP guide
Full changelog: v0.6.0...v0.7.0
Downloads
- The AI Chat pane now renders real chat bubbles — your messages on the right, the AI's on the left — with full Markdown: code blocks, tables, lists and inline
-
released this
2026-07-05 22:37:32 +08:00 | 12 commits to main since this release
✨ New features
Built-in AI Assistant — drive serial & PDU in plain language
- New ✨ AI Chat button in the workspace toolbar opens an AI pane. Ask things like "list the open serial sessions", "attach to COM3, send
helpand show me the reply", or "connect to the PDU and power-cycle outlet 3" — the assistant calls the right tools for you. - Whatever the AI sends to a serial port shows up in that terminal tagged
[AI], so you always see exactly what it did — no hidden actions. - Runs entirely against your own machines: it talks to the serial session ETTerms already has open, and to the PDU over SNMP.
Sits right next to your terminal — like Claude Code / Kiro
- The AI Chat is a normal workspace pane, so you can use Layout (1×2, 2×2…) to put it side-by-side with a live Serial session — chat on one side, watch the device output on the other.
- Clean transcript layout that matches the terminal: your messages align right, the AI's replies read left, and tool activity stays as quiet gray notes. "Thinking" is folded into the Send button instead of spamming the log.
Bring your own AI endpoint (nothing baked in)
- Point it at any OpenAI-compatible endpoint — a local Ollama, a LiteLLM gateway, your company's gateway, or OpenAI. Set the Base URL and API key once in Settings → AI Assistant; leave it blank and the assistant simply stays off.
- Pick the model from a dropdown in the bottom-right of the chat pane — it lists whatever your endpoint offers and switches on the fly, no trip back to Settings. Your choice is remembered.
- Your API key is stored in Windows Credential Manager, never in a settings file — and no endpoint ships inside the app, so a copy you hand to a colleague has the assistant disabled by default.
Safe by design
- Turning a PDU outlet off or power-cycling always asks you to confirm first — the AI can't cut power on its own. Every tool call is written to the app log.
- This is separate from the existing Serial/PDU MCP servers (Settings → AI MCP), which keep working for external AI CLIs like Claude Code / Kiro.
📦 Downloads
Build Needs .NET Runtime? Notes ETTerms_v0.6.0 (Standard) ✅ Requires .NET 8 Desktop Runtime Smaller download ETTerms_v0.6.0_portable (Portable) ❌ Runtime included Unzip and run anywhere, no admin Run
ETTerms v0.6.0.exe.🔗 Links
- Architecture — see "Built-in AI Assistant (Phase 10)"
- Serial MCP guide
Full changelog: v0.5.0...v0.6.0
Downloads
- New ✨ AI Chat button in the workspace toolbar opens an AI pane. Ask things like "list the open serial sessions", "attach to COM3, send
-
released this
2026-07-02 16:08:20 +08:00 | 18 commits to main since this release✨ New features
Find text in your scroll-back (Ctrl+F)
- Press Ctrl+F to open a search bar right inside the terminal and find any text in the
scroll-back history — Enter jumps to the previous match, Shift+Enter to the next,
F3 repeats, Esc closes. - Every match is highlighted in yellow, the current one in orange, and matches stay
anchored to the right line even as old output scrolls off the top of the buffer.
Keyword highlighting + per-tab alerts
- Define your own keyword list under Settings → Highlight (add, remove, and enable/disable
each one). Matching text is highlighted on screen wherever it appears, case-insensitive. - When a keyword shows up on a tab you're not currently looking at, that tab's dot turns
red so you notice it — switching to the tab clears the alert. Great for watching several
sessions at once for an error string.
A much bigger, TeraTerm-compatible TTL scripting language
- The TTL engine now understands a large set of TeraTerm-compatible commands, so many
existing TeraTerm macros run with little or no change. - New control flow —
for/next,do/loop,while/until,call,goto,break,
continue,include— plus a real expression parser (parentheses, logical & comparison
operators, hex0x/$), and dozens of new string, file/folder and utility commands
(sprintf,strsplit,filereadln,getdate,random,crc32,inputbox,yesnobox, …). - New serial-specific script commands:
sendbreak,setbaud,setdtr,setrts,sendfile. - Note: a single-string
waitkeeps ETTerms' existing settle-and-timeout behavior; multi-string
waitfollows TeraTerm semantics (times out and continues withresult=0).
See — or hide — what your scripts are doing
- Scripts now echo their progress (waits, sends, errors) in grey directly in the terminal,
and you can switch this off under Settings → Terminal (Show script trace). - The trace is display-only: it never reaches your session log, the AI bridge, or the device,
so your captured machine logs stay clean.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.5.0)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.5.0_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.5.0.exe.🔗 Links
- TTL reference:
docs/ttl-script-reference.md - PDU MCP & Serial MCP setup guide:
docs/serial-mcp-guide.md
Full changelog: v0.4.0...v0.5.0
Downloads
- Press Ctrl+F to open a search bar right inside the terminal and find any text in the
-
released this
2026-07-02 11:23:05 +08:00 | 22 commits to main since this release✨ New features
Terminal performance overhaul
- Heavy output (long boot logs, big file dumps) now renders much more smoothly — drawing was
reworked to stop re-creating fonts and brushes on every frame. - Scroll-back history storage was rebuilt so the terminal stays fast no matter how much output
has accumulated; previously it got slower and slower once the history buffer filled up.
Full-screen apps (vim / htop) behave like a real terminal
- The mouse wheel now scrolls inside full-screen tools like
vimandhtopinstead of doing nothing. - Tools that ask the terminal "where is the cursor?" now get an answer — fixes full-screen apps
that could hang on startup or draw at the wrong position.
Connection status you can actually see
- When an SSH connection drops or hits an error, a message now appears right in the tab —
no more sessions that silently stop responding. - When the local shell exits (e.g. you type
exit), the tab shows
[ETTerms] shell process exitedinstead of just going dead.
Faster PDU status (GUI and AI)
- Outlet polling now bundles all 12 ports into a few SNMP requests instead of 36 separate ones —
the Status page refreshes faster, and an unreachable PDU no longer stalls the poll for minutes. - The AI
pdu_statustool gets the same speed-up.
🐛 Bug fixes
Garbled Chinese / non-English text
- Fixed: multi-byte characters could occasionally turn into
�garbage when text was split
across data chunks — this affected TTL scriptwaitmatching, what the AI reads over the
serial bridge, and saved session log files. All three now decode correctly.
Scrolling
- Fixed: while you were scrolled back reading history, any new output yanked the view down to
the bottom. The view now stays where you are and only follows when you're already at the bottom.
Resource & stability
- Fixed small memory and handle leaks when opening and closing many local shell tabs over a
long session. - Fixed: typing into an SSH session after the connection died could crash the window — it now
just prints a short "write failed" note in the tab.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.4.0)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.4.0_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.4.0.exe.🔗 Links
- PDU MCP & Serial MCP setup guide:
docs/serial-mcp-guide.md - TTL reference:
docs/ttl-script-reference.md
Full changelog: v0.3.3...v0.4.0
Downloads
- Heavy output (long boot logs, big file dumps) now renders much more smoothly — drawing was
-
released this
2026-06-16 16:24:52 +08:00 | 26 commits to main since this release🐛 Bug fixes
Terminal stops accepting input after you switch away and back
- Fixed: once the terminal had printed some output (on a Serial or PowerShell tab),
switching away and back — minimizing the window, or clicking another app — could leave the
terminal unable to accept any typing or Enter. Previously the only way out was to close
and reopen the session (re-open the COM port / start a fresh PowerShell). - While the session sat idle, this never happened — it only showed up after enough output had
scrolled by, which is exactly when it bit you mid-task. - Cause: after enough output built up scrollback, the terminal's scrollbar could grab the
keyboard focus when the window regained focus, and the scrollbar has no keyboard handling —
so your keystrokes went nowhere. The scrollbar is now mouse-only and never takes focus, so
the terminal keeps working no matter how much it has printed.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.3.3)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.3.3_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.3.3.exe.🔗 Links
- PDU MCP & Serial MCP setup guide:
docs/serial-mcp-guide.md
Full changelog: v0.3.2...v0.3.3
Downloads
- Fixed: once the terminal had printed some output (on a Serial or PowerShell tab),
-
released this
2026-06-11 09:03:53 +08:00 | 28 commits to main since this release✨ New features
Status page — control PDU outlets with buttons
- New Status view (the ⚡ icon on the left, between Terminal and Settings) with a PDU tab —
connect to your PDU by IP and see every outlet at a glance: state, current (mA) and power (W). - Each outlet row now has its own Control button: the label tracks the live state
(Turn ON when off, Turn OFF when on), so a single click flips that port. The SNMP command
runs off the UI thread, the grid refreshes after the change, and it resets cleanly on disconnect. - Outlet status auto-refreshes every 3 seconds in the background — no more manual Refresh button.
- The PDU panel moved out of Settings into its own Status tab (Settings now keeps just
Terminal / AI MCP), and the layout is ready for more Status tabs later.
🐛 Bug fixes
Local Shell startup
- Fixed: the local Shell no longer fails to start when its saved working folder is gone
(e.g. an unplugged USB drive or a deleted folder), which previously caused
CreateProcess failed: 267 (ERROR_DIRECTORY). It now falls back to your home folder,
matching Windows PowerShell behavior.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.3.2)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.3.2_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.3.2.exe.🔗 Links
- PDU MCP & Serial MCP setup guide:
docs/serial-mcp-guide.md - TTL reference:
docs/ttl-script-reference.md
Full changelog: v0.3.1...v0.3.2
Downloads
- New Status view (the ⚡ icon on the left, between Terminal and Settings) with a PDU tab —
-
released this
2026-06-08 16:14:08 +08:00 | 30 commits to main since this release🐛 Bug fixes
Terminal scrolling
- Added a dark vertical scrollbar on the right of the terminal — drag the thumb or click the track
to page through long output, instead of long mouse-wheel scrolling. The owner-drawn bar (slim, rounded
thumb) matches the KKTerm dark theme, and the content area excludes it so text is never covered.
Multi-line paste
- Fixed pasting multiple lines into Kiro CLI / PSReadLine: the whole block is now pasted as a
single unit instead of each line being submitted immediately. ETTerms now honors bracketed paste
(DEC mode 2004) and wraps pasted text inESC[200~ … ESC[201~when the app enables it.
Copy feedback
- After a right-click copy, the highlight now clears — so you get clear visual confirmation that
the selection was copied.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.3.1)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.3.1_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.3.1.exe.🔗 Links
- PDU MCP & Serial MCP setup guide:
docs/serial-mcp-guide.md - TTL reference:
docs/ttl-script-reference.md
Full changelog: v0.3.0...v0.3.1
Downloads
- Added a dark vertical scrollbar on the right of the terminal — drag the thumb or click the track
-
v0.3.0 — PDU MCP server Stable
released this
2026-06-08 10:12:31 +08:00 | 33 commits to main since this release✨ New features
AI-driven PDU power control (MCP)
- New
ETTerms.PduMcpserver lets AI agents (Kiro CLI / Claude CLI) control an SNMP PDU
directly — power outlets on/off, read status, and power-cycle a DUT during automated tests. - Unlike the Serial bridge, the PDU runs over SNMP (UDP), which is non-exclusive, so the AI talks to
the PDU directly — the ETTerms GUI does not need to be running. - Tools:
pdu_connect/pdu_list/pdu_set_port/pdu_get_port/pdu_status/
pdu_power_cycle/pdu_disconnect.
One-click setup for both MCP servers
- Settings → AI MCP now registers both
etterms-serialandetterms-pduinto your AI CLI's
user-level config with a single Setup (and removes both with Remove). Each card shows the
resolved server paths and the CLI verify command. - Publishing the GUI auto-bundles both MCP servers into the app folder
(\ETTerms.SerialMcp\and\ETTerms.PduMcp\), so the registered paths always resolve.
📦 Downloads
Two builds are produced:
Build Needs .NET 8 Desktop Runtime? Notes Standard ( ETTerms_v0.3.0)✅ Yes Smaller; for machines that already have the runtime Portable ( ETTerms_v0.3.0_portable)❌ No Runtime bundled — unzip and run, no install / admin needed Run
ETTerms v0.3.0.exe.🔗 Links
- PDU MCP & Serial MCP setup guide:
docs/serial-mcp-guide.md - TTL reference:
docs/ttl-script-reference.md
Full changelog: v0.2.2...v0.3.0
Downloads
- New