Metadata-Version: 2.4
Name: ctserial
Version: 0.5.0
Summary: A highly flexible serial interface tool made for penetration testers
Keywords: serial,fieldbus,ICS,control,ControlThings
Author: Justin Searle
Author-email: Justin Searle <justin@controlthings.io>
License-Expression: LGPL-3.0-or-later
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: ctui>=0.8.0,<0.9
Requires-Dist: pyserial>=3.5,<4
Requires-Dist: tabulate>=0.8.9,<0.9
Requires-Python: >=3.8, <4
Project-URL: Homepage, https://www.controlthings.io
Project-URL: Repository, https://github.com/ControlThings-io/ctserial
Description-Content-Type: text/markdown

# ControlThings Serial

A highly flexible serial interface tool made for penetration testers.

# Installation:

As long as you have git and Python 3.8 or later installed, all you should need to do is:

```bash
pip3 install ctserial
```

Or better yet, if you have `uv` installed, install it in an isolated environment with:

```bash
uv tool install ctserial
```

`uv` also lets you try the tool out without installing it by running:

```bash
uvx ctserial
```

# Usage:

First, start the tool from a terminal.  Then connect to your serial device and interact with it.  For example:

```bash
ctserial> connect /dev/your-serial-device
ctserial> send hex deadc0de                   # sends actual hex, so 4 bytes
ctserial> send Dead Code 国                    # sends full utf-8 string without spaces
ctserial> send "Dead Code 国"                  # Use quotes if you need spaces
ctserial> exit
```

# Platform Independence

Python 3.6+ and all dependencies are available for all major operating systems.  It is primarily developed on MacOS and Linux, but should work in Windows as well.

# Development

If you are interested in modifying `ctserial`:

1. Install Python's Poetry package at https://python-poetry.org/.
2. Clone the `ctserial` github repository.
3. Open a termainal to the cloned repository.
4. Run `poetry install` to create a new virtual environment and install an editable instance of `ctserial` with its dependencies.


# Author

* Justin Searle <justin@controlthings.io>

