Documentation
Termethos documentation
From the first connection to an AI agent testing firmware on your board.
Install
- Download Termethos for your system. Termethos is for Windows and Linux.
- Windows: run
Termethos.Setup.2.0.0.exe. Windows may warn you because the installer isn't code-signed. Why? - Linux: install the
.debwithsudo apt install ./termethos_2.0.0_amd64.deb. Then add yourself to thedialoutgroup so Termethos can open serial ports:sudo usermod -aG dialout $USER, and log out and back in. Linux setup
- Windows: run
- Termethos starts in simulation mode, with a simulated device, so you can try everything without a board.
- To use real serial ports, buy a license, paste the key into the banner and click Activate.
Installing a new version over an old one keeps your license and settings. On Windows the app is installed in %localappdata%\Programs\termethos, and on Linux the .deb installs it in /opt/Termethos. Settings and the license are in %APPDATA%\Termethos on Windows and ~/.config/Termethos on Linux.
Connections
A connection is a saved profile for one board: the serial port, baud rate and line settings. Use the connection controls on the left of the toolbar to pick a saved connection, create a new one or edit it, and the plug button to connect or disconnect.
- Baud rate: the standard rates are listed. Add others, such as 74880, in the advanced settings. Example
- DTR when connecting, RTS when connecting: the state of the two lines when the port opens. Change them if your board resets or enters its bootloader when you connect.
- Reconnecting: if the port goes away, for example when the board resets or is unplugged, Termethos reconnects when it's back.
The status bar shows the connection state, such as Connected: COM3, and the number of trace lines.
AI agents can create connections and change their settings too, once you allow it. Permissions
Logs and telemetry
Termethos works with the text your firmware already prints. Short prefixes add structure:
| Print this | Termethos does |
|---|---|
!Itext !Wtext !Etext | Info, warning or error line. Agents can filter on it. |
!#text | Draws a box around the text |
@{index:value} | Sets dashboard field 0 to 23 |
\x1b[2J | Clears the trace |
Commands
Type a command in the command line and press Enter to send it with the connection's line ending. Sent commands are kept in the history.
Quick commands
Quick commands are buttons on the side of the window, with an optional hotkey. Add them to commands in the advanced settings (the red cog on the toolbar):
{
"name": "Fan 50%",
"command": "fan 50",
"description": "Run the fan at half speed",
"hotKey": "alt+f"
}
AI agents can list and run quick commands by name, if you allow commands for agents.
Scripts
A quick command with a script runs a JavaScript function instead of sending text. The function gets the open serial port:
| Call | Does |
|---|---|
await port.write(data) | Writes a string or bytes as they are, without a line ending. Resolves once written, so a script can pace large writes. |
port.set({ dtr, rts }) | Sets the DTR and RTS lines. Pass both, because a missing one is set on. |
Reset an ESP32 or ESP8266
async (port) => {
port.set({ dtr: false, rts: true }); // hold in reset
await new Promise(r => setTimeout(r, 100));
port.set({ dtr: false, rts: false }); // release: boot normally
}
Send a test sequence
async (port) => {
for (const cmd of ["motor 1 200", "motor 2 200", "log on"]) {
await port.write(cmd + "\r\n");
await new Promise(r => setTimeout(r, 250));
}
}
Send raw bytes
(port) => { port.write("\x02PING\x03"); }
In the settings file the script is a JSON string, on one line, as in the ESP32 reset example.
Scripts have full access to your computer. Termethos shows a script and asks before it runs the first time, and again if it changes. Only run scripts you trust, and allow scripts for AI agents only if you need them.
Export a session
The Export session button saves the trace, the dashboard field changes and the commands sent, each with its time to the millisecond:
- Text (.log): one line per event, with time, level and text, for bug reports.
- JSON Lines (.jsonl): one JSON object per event, with colored parts, for your own scripts and plots.
- Copy for AI: a Markdown summary of the connection, the dashboard, the last trace lines and recent commands, to paste into any AI chat. Choose how many trace lines to include.
An export has what's still in memory: the trace keeps its last 50,000 lines by default.
AI agents
Turn on the built-in MCP server and AI coding agents can read the trace and dashboard, send commands, and create and manage connections.
Tutorials
Connect Claude Code to ESP32 using MCP
Serial settings, a reset script, flash commands and the agent loop for ESP32 boards.
Debug embedded firmware with AI agents
Let the agent flash with your tools, then verify on the board through Termethos.
Build a real-time serial telemetry dashboard
Put sensor readings and state on the 24-field dashboard with one line of firmware.
Automate hardware diagnostics with JavaScript
Quick commands that reset a board, send test sequences or raw bytes.
More questions? See the FAQ, the UI tour, or open an issue.
Ready to connect your board?
Download Termethos and try it free in simulation mode. When you're ready, a one-time $24.50 license unlocks real serial ports, 50% off its usual $49 until December 31, 2026.