SkillAgentSearch skills...

COMTool

Cross platform communicate assistant(Serial/network/terminal tool)( 跨平台 串口调试助手 网络调试助手 终端工具 linux windows mac Raspberry Pi )支持插件和二次开发

Install / Use

/learn @Neutree/COMTool
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

COMTool

English | 中文

GitHub PyPI GitHub Workflow Status GitHub repo size GitHub Repo stars

GitHub all releases PyPI - Downloads SourceForge

A cross platform serial debug tools written by python


| Windows | Linux | Raspberry Pi | macOS | | ------- | ----- | ------------ | ----- | | comtool Windows screenshot | comtool linux screenshot | comtool Raspberry Pi screenshot | |

| White theme | Dark theme | protocol plugin | TCP/UDP | Terminal | Graph | | ----------- | ---------- | --------------- | ------- | -------- | ----- | | comtool white theme | comtool dark theme | comtool protocol plugin | tcp udp plugin | terminal | plugin graph |

screenshot maybe the old version, the latest may not the same totally! But better performance、more easy to use and more elegant

Features

  • [x] cross platform (Windows, Linux, macOS, Raspberry Pi)(code with python, only if your platform support python)
  • [x] reliable stability, no UI freeze
  • [x] multiple language support
  • [x] configs save and auto load(auto save settings when exit)
  • [x] multiple character encode support(ASII,GBK(Chinese),UTF-8,UTF-16 etc.)
  • [x] multiple language support
  • [x] multiple connection type support, and support add connection plugin
    • [x] serial port
      • [x] serial auto detect, and remember last selected support
      • [x] serial offline auto reconnect support
      • [x] port baudrate(any value) bytesize parity stopbits flow control etc. settings
      • [x] rts & dtr control by hand
    • [x] TCP/UDP support, include client and server mode
    • [x] SSH client support
  • [x] plugin support(Create plugin see docs/plugins.md), built-in plugin:
    • [x] dbg plugin, support basic send receive debug operation
      • [x] basic send/receive data (ascii and hex)
      • [x] send and receive data count
      • [x] clear received data area
      • [x] auto linefeed
      • [x] scheduled auto send
      • [x] send history and select send again
      • [x] custom most usage data items and one click to send
      • [x] CR LF(\r\n) or LF(\n) support
      • [x] key shortcuts like <kbd>Ctrl+Enter</kbd> to send etc. More see help
      • [x] receive and send record support add timestamp and save log to file
      • [x] send file
      • [x] unix terminal style color support(e.g.\x1b[33;42mhello\x1b[0mhello2)
      • [x] escape character support, like \r \n \t \x etc.
    • [x] protocol plugin, customize your own protocol
      • [x] customize encoding and decoding method
      • [x] customize shortcut key
      • [x] escape character support, like \r \n \t \x etc.
    • [x] terminal plugin, basic terminal interaction
    • [x] graph plugin
      • [x] support dynamicly add graph widgets, add graph widgets you need
      • [x] display line chart in realtime, support customize protocol header(support escape characters)
      • [x] customable button to send data, support shortcut key

Installation

There are two ways to install COMTool:

Install binary

Windows

And you can install by scoop, maintained by StudentWeis

scoop bucket add Nightly https://github.com/StudentWeis/Nightly
scoop install comtool

Linux

Linux has too much version, so we only compile binary for ubuntu. Other distribution please install from pypi or source code. If you have any idea to pack cross platform binary like flatpak or appimage, you can contribute a pull request or add an issue to tell me how to

Arch Linux and its derivative distributions can install from AUR(maintained by taotieren):

# Release version
yay -S python-comtool
# Development version
yay -S python-comtool-git
  • Download release at release page, and extract files from .zip file, and click comtool to run

  • Add current user to dialout group to avoid sudo command

sudo usermod -a -G dialout $USER
grep 'dialout' /etc/group
reboot #must reboot to take effect

Rasberry Pi

Open terminal, install dependencies with package manager:

sudo apt install git python3-pyqt5 python3-numpy

Use package manager to install pyqt5 numpy etc. This way makes install easier. If you meet some error when install with pip, you can try to install with package manager first. To find the package name, the trick is to use sudo apt-cache search package_name | grep package_name to search package name, then install it.

Then install other packages with pip:

git clone https://github.com/Neutree/COMTool.git --depth=1
cd COMTool
pip3 install . --verbose
# 或者
# python setup.py bdist_wheel
# sudo pip3 install dist/COMTool-*.*.*-py3-none-any.whl --verbose
  • Add current user to dialout group to avoid sudo command
sudo usermod -a -G dialout $USER
grep 'dialout' /etc/group
reboot #must reboot to take effect

then enjoy by command

comtool

macOS

If you want to open multiple comtool, just right click dock icon, then click New Window.

or you can open terminal and type

open -n /Application/comtool.app

or

cd /Applicatioin/comtool.app/Contents/MacOS
./comtool

Because the program is not signed by the developer, it will warn when you open it for the first time. You need to go to Settings -> Security and Privacy -> General to see the prompt comtool and click Open anyway.

Windows defender shows comtool binary is malware?

If your program is download from here, it's ok, the error caused by pack issue, all the source code and pack script is here, even the pack progress is totally automated with github action, no one manually pack.

If you remain have concern, just download source code to run with python or pack yourself.

Of course, if you find a better pack way, please open issue to tell us.

Install python package

For developers or the binary not support your platform's, use this way to install

  • Install Python3 first

    • If windows or macOS: dowload python3
    • If linux: ubuntu for example sudo apt install python3 python3-pip, macOS brew install python3 python3-pip
  • Ensure you have pip

pip3 --version
# or
pip --version

If no this command, install by

python3 -m ensurepip
  • Then install from pypi:
pip3 install comtool
comtool

for Chinese, you can use tuna mirrors to download faster by:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple comtool
  • Or you can directly install from github
pip3 install git+https://github.com/Neutree/COMTool
  • Or you can download source code, then install from source code
    • download source code, download in web page or git clone https://github.com/Neutree/COMTool.git
    • install
cd COMTool
pip install .

or build your own wheel binary

pip3 install wheel
python setup.py bdist_wheel
pip install dist/COMTool-*.*.*-py3-none-any.whl
comtool
  • If encounter error when install with pip, you can try to install with package manager first, then install with pip again. e.g.
sudo apt install python3-pyqt5 python3-numpy cython3

To find the package name, the trick is to use sudo apt-cache search package_name | grep package_name to search package name, then install it.

  • By the way, you should add current user to dialout group to avoid sudo command
sudo usermod -a -G dialout $USER
grep 'dialout' /etc/group
reboot #must reboot to take effect

Manually add app to start menu on Linux

  • Copy tool/comtool.desktop to /usr/share/applications folder(may need root user to do this)
  • Edit /usr/share/applications/comtool.desktop, change icon path Icon=/usr/local/COMTool/assets/logo.ico to actual icon path, you can also use your love icon
  • Then you can find comtool app in start menu(or app center)

Pack binary

pip3 install pyinstaller
python pack.p
View on GitHub
GitHub Stars2.4k
CategoryDevelopment
Updated15h ago
Forks396

Languages

Python

Security Score

100/100

Audited on Mar 29, 2026

No findings