Content
# Tool List
[English](README.en.md)
I created this tool to monitor serial port communications on Windows without altering the original software's usage of serial ports. It achieves this by using a kernel filter driver to replicate serial port read and write events, allowing the desktop application to monitor without opening the COM port itself. Thus, the original business program remains the actual user of the port.
The current version is `0.1.0`, providing a Windows x64 installation package, a desktop monitoring interface, a command-line interface, and an MCP interface. Personal use is free. The repository currently does not have an additional open-source license; you can view the code and download it for personal use, but do not redistribute it under another name without further permission.
## Download and Installation
The official installation package is released on the GitHub **Releases** page, with the file name:
```text
LemonSerialMonitor-Setup-x64.exe
```
Installation does not require opening PowerShell:
1. Double-click the installation package.
2. Read and accept the "Local Test Certificate Usage Note".
3. Choose the desktop program installation location.
4. Click "Install" and allow administrator permissions when prompted by Windows.
5. If the installer prompts for a restart, save your work and restart as prompted; then reopen the software.
The current driver uses a local test certificate, not a Microsoft official release signature. The installer will automatically verify the installation package, import the included public key certificate, and enable Windows `TESTSIGNING` if necessary. It will not disable Secure Boot or modify BitLocker. The installation will pause if Secure Boot is enabled.
The test certificate can only be imported after the installer obtains administrator permissions, so Windows may still display SmartScreen or "Unknown Publisher" on the first double-click. The 0.1.0 release file has a local test signature but no Microsoft trust chain or RFC 3161 public timestamp; please download only from this project's Release page and verify `SHA256SUMS.txt`.
0.1.0 does not support overwriting an existing newer installation. Before updating, stop monitoring, back up data, completely uninstall the old version, restart as prompted, and then install the new version.
For complete instructions, see [Installation and Uninstallation](docs/INSTALL.md).
The complete operation manual can be directly viewed or saved: [PDF version](manual/Lemon-Serial-Monitor-Complete-Operation-Manual.pdf), [Word version](manual/Lemon-Serial-Monitor-Complete-Operation-Manual.docx).
## Compatible Target Systems
- Windows 10 x64
- Windows 11 x64
- Windows Server 2019 x64 (Desktop Experience / Server Core)
- Windows Server 2022 x64 (Desktop Experience / Server Core)
- Windows Server 2025 x64 (Desktop Experience / Server Core)
Server Core does not install the WPF desktop program, only the driver, background service, AI/command-line interface, and documentation. x86, ARM64, unknown Windows Server builds, and environments with Secure Boot enabled will be rejected by the installer.
The 0.1.0 current code candidate has been verified on a Windows 11 x64 machine for graphical installation, restart, service cold start, desktop connection, JSON CLI, and MCP; the verification chain also completed the complete uninstallation of the previous candidate and the clean installation of the current code candidate. Without connecting a serial port device, the background service will still run; after clicking "Refresh Ports", an empty port list and driver temporarily not available are normal, and will refresh after connecting a real device.
Windows Server 2022/2025 has been hosted on GitHub for desktop runner to complete platform identification, hosting testing, and installation contract checking, but no kernel driver was loaded; Server Core only has component layout contract testing, and Server 2019 self-hosting tasks were not executed. There was no end-to-end acceptance of driver installation, restart, capture, AI, and uninstallation on any Server real or virtual machine, so these versions are compatible targets, not completed hardware certifications. For specific scope, see [0.1.0 Release Notes](docs/RELEASE_NOTES_0.1.0.md).
## Main Features
- Monitor one or more serial ports' Read, Write, and configuration control events without occupying the COM port by the desktop program.
- Three viewing modes: list, dump, and terminal.
- Display time, process, port, direction, operation code, status, length, flags, HEX, and text.
- HEX and text cyclic search; HEX supports `??` single-byte wildcard.
- Multi-line selection can be copied to space HEX, compact HEX, text, C array, Python `bytes`, TSV, CSV, or JSON.
- `Ctrl+C` uses the current copy format; `Ctrl+Shift+C` copies only consecutive space HEX data.
- Sessions are automatically written to a protected local database; after stopping, can be exported to CSV, TXT, or RAW.
- Local AI interface supports status, port, start/pause/continue/stop, session list, paginated reading, waiting for new events, export, and protocol description.
- AI interface provides standard MCP stdio service, does not open an HTTP port, and does not accept sending, injection, replay, or arbitrary file access.
- Graphical complete uninstallation; accurately removes software files, services, drivers, filters, certificates, and data according to protected installation records.
## Get Started with Monitoring in Three Minutes
1. Open the original business software using the serial port and let it connect normally.
2. Open Lemon Serial Monitor and click "Refresh Ports".
3. Check the COM port you want to monitor, fill in a session file name, such as `board-test.db`.
4. Click "Start".
5. Let the original business software send or read data.
6. Switch between "List", "Dump", and "Terminal" to view.
7. Before ending, click "Stop", then copy or export as needed.
If the list shows no data, confirm you have clicked "Start" and the original business software has performed read/write operations on the same COM port after "Start". The monitoring tool will not actively send data to the device.
Without connecting a serial port device, seeing "Service Connected", an empty port list, and driver temporarily not available after refreshing is a normal phenomenon, not indicating the background service startup failure.
For complete interface instructions, see [Operation Guide](docs/USER_GUIDE.md); for problem handling, see [Troubleshooting](docs/TROUBLESHOOTING.md).
## AI Integration
The AI client is located at:
```text
C:\Program Files\Lemon Serial Monitor\ai\Lemon.SerialMonitor.AI.exe
```
If you chose a different location during installation, use the actual path.
Quick command-line check:
```powershell
& 'C:\Program Files\Lemon Serial Monitor\ai\Lemon.SerialMonitor.AI.exe' status --json
& 'C:\Program Files\Lemon Serial Monitor\ai\Lemon.SerialMonitor.AI.exe' ports --json
```
MCP configuration example:
```json
{
"mcpServers": {
"lemon-serial-monitor": {
"command": "C:\\Program Files\\Lemon Serial Monitor\\ai\\Lemon.SerialMonitor.AI.exe",
"args": ["mcp"]
}
}
}
```
For detailed integration steps, see [AI Integration Guide](docs/AI_INTEGRATION.md); for commands, tools, fields, and integrity rules, see [AI Interface Reference](docs/AI_API_REFERENCE.md).
## Data and Uninstallation
Sessions and export files are saved in the protected `%ProgramData%` data directory. The uninstaller will clearly prompt: **Complete uninstallation will permanently delete all sessions, exports, settings, logs, and AI status produced by this software**. Data that needs to be kept must be exported or backed up first.
You can enter complete uninstallation from "Settings → Apps → Installed Apps → Lemon Serial Monitor → Uninstall". The uninstaller will first close the software desktop program, AI client, and background service; only if Windows kernel is still using the driver, startup strategy needs to be restored, or files are still locked by the system, it will arrange to continue cleaning up after a restart and verify residuals.
## Building from Source
The repository already includes the accepted DOCX/PDF manuals required to generate the installation package. Building from source also requires Visual Studio 2022, WDK, Spectre library, .NET SDK, Pester, and Inno Setup 6.7.3. Build, sign, test, and install package commands are in [Build Instructions](docs/BUILD.md).
Security boundaries and threat models are in [Security Notes](docs/SECURITY.md); version changes are in [0.1.0 Release Notes](docs/RELEASE_NOTES_0.1.0.md).
## Independent Implementation
This project's code, protocol, session format, installation process, and interface are independently implemented and do not include any binary, icons, trademarks, private code, or materials from other serial port software.