Add telnet:// URI scheme support for one-click MUD connections

Summary

This PR implements telnet:// URI scheme support, allowing users to connect to MUD servers with a single click. This addresses the long-standing feature request in issue #689 from 2013.

What this PR does

  • Adds telnet:// URI parsing and handling in command-line arguments
  • Implements intelligent profile matching - reuses existing profiles when available
  • Auto-creates new profiles when connecting to unknown servers
  • Provides cross-platform OS integration for browser and system-wide telnet:// link support
  • Handles multi-instance coordination - routes URIs to existing Mudlet instances

How it works

User Experience

  1. User clicks a telnet://server.com:port link in browser or application
  2. Mudlet automatically opens (or receives the URI if already running)
  3. If a matching profile exists → loads the most recently used one
  4. If no profile exists → creates new profile with server details and connects
  5. User is immediately connected to the MUD server

Key Features

  • URI Format Support: telnet://host[:port] with port defaulting to 23
  • Profile Matching: Host + port based matching with existing profiles
  • Smart Naming: Profiles named as “hostname” or “hostname:port” for non-standard ports
  • Collision Handling: Automatic numbering for duplicate profile names
  • Multi-instance: Routes to existing Mudlet instance when available

Testing

The implementation has been tested with:

  • Various telnet:// URI formats (telnet://server.com, telnet://server.com:4000)
  • Profile creation and reuse scenarios
  • Multi-instance coordination
  • Real MUD server connections (e.g., telnet://aardmud.org:4000)

Test Commands

# Test basic connection with port
./mudlet "telnet://aardmud.org:4000"
# Test default port (23)
./mudlet "telnet://batmud.bat.org"
# Test profile reuse (run twice)
./mudlet "telnet://testserver.example.com:1234"

https://github.com/user-attachments/assets/981cb718-5587-4fcb-a210-c182430b79a4

Players clicking these links will have Mudlet automatically open and connect.

Closes

Fixes #689

/claim #689

Type of change

  • New feature (non-breaking change which adds functionality)
  • Enhancement to existing feature
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Claim

Total prize pool $200
Total paid $0
Status Pending
Submitted August 17, 2025
Last updated August 17, 2025

Contributors

RI

Rishi Mondal

@MAVRICK-1

100%

Sponsors

MU

Mudlet

@Mudlet

$200