Skip to main content

aiotelnet: Async Telnet Client

aiotelnet is a lightweight, asynchronous Telnet client for Python, designed for easy integration into modern async applications.

Notice: AI has been used to generate parts of this project. It has been checked against Python documentation for correctness.

This project was born due to the lack of standard async telnet library, while it has been built primarily for telnet usage, it could also be used for any kind of low-level server/client network communication.

Features

  • Asynchronous: Built on asyncio for non-blocking network I/O.
  • Automatic Reconnection: Can automatically reconnect to the server if the connection is lost.
  • Easy to Use: Simple and intuitive API for connecting, sending commands, and handling messages.
  • Customizable: Allows customization of encoding, line breaks, and reconnection behavior.

Installation

pip install aiotelnet

Usage

Here's a basic example of how to use TelnetClient to connect to a Telnet server, send a command, and receive messages:

import asyncio

from aiotelnet.client import TelnetClient


# Define a message handler
async def message_handler(message: bytes):
    """Handle incoming messages from the Telnet server."""
    print(f"Received: {message.decode('utf-8').strip()}")


async def main():
    """Connect to the Telnet server and send a command."""
    # Create a Telnet client
    client = TelnetClient(
        host="telehack.com",
        port=23,
        message_handler=message_handler,
    )

    try:
        # Establish the connection
        await client.connect()

        # Send a command
        await client.send_command("hello")

        # Keep the connection open for a while
        await asyncio.sleep(10)

    except ConnectionError as e:
        print(f"Connection failed: {e}")
    finally:
        # Close the connection
        if client.is_connected():
            await client.close()


if __name__ == "__main__":
    asyncio.run(main())

API Reference

TelnetClient(host, port, message_handler, ...)

  • host: The Telnet server host.
  • port: The Telnet server port (default: 23).
  • message_handler: An optional callable (sync or async) to handle incoming messages.
  • break_line: The byte sequence that separates messages (default: b'\\n').
  • encoding: The encoding to use for commands (default: 'utf-8').
  • auto_reconnect: Whether to automatically reconnect if the connection is lost (default: True).
  • reconnect_interval: The interval in seconds between reconnection attempts (default: 10).

async connect()

Establishes a connection to the Telnet server.

is_connected() -> bool

Returns True if the client is connected, False otherwise.

async send_command(command: str)

Sends a command to the Telnet server.

async close()

Closes the connection to the Telnet server.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This project is licensed under the Apache 2.0 License.

Metadata

Release files for aiotelnet 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiotelnet 1.1.0
File Size Uploaded
aiotelnet-1.1.0.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiotelnet 1.1.0
File Interpreter ABI Platform
aiotelnet-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.9 kB

Release files / aiotelnet-1.1.0.tar.gz

Download URL aiotelnet-1.1.0.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d940ac285ad48eac0064f70acfa7550e66a8a2d2ebc9322f0c5565b3136dfcfd
BLAKE2b-256 checksum
How to use checksums
8ae55d7e6d598ed270f991d60ae69ab749ddaaa370194b0ce07b8c979fcdd2e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 19, 2025.

Transparency log

Release files / aiotelnet-1.1.0-py3-none-any.whl

Download URL aiotelnet-1.1.0-py3-none-any.whl
Size 10.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
def37f5b138a648b352e1aca99014423f09ac59c630be23facbe85e1a26b4825
BLAKE2b-256 checksum
How to use checksums
b25eb7e6f8cb81d56ebdf071cc07c806e8326b07a53dbf921985ea3c6ae7d290
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 19, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page