Mles logo

MlesTalk: character-by-character messenger

MlesTalk is an open-source character-by-character messenger between users on the same channel. See how everyone is writing their messages, character by character! Exchange thoughts faster! Avoid centralized services of big corporations and their data collection!

MlesTalk at Google Play

Key features:

Messaging supports both asynchronous and real-time communications. In addition to a unique username and shared channel, you will need to pick a shared key (i.e a shared password) with other channel users. You can share your new channel with friends without MlesTalk easily with provided QR-code internet-link or use it on a browser yourself.

Retro-feeling for those Unix-era users who remember the magnificent Talk program.

By purchasing MlesTalk you support its existing internet server infrastructure and further development. Thank you!

Please join /r/mles Reddit community to get info about new features of MlesTalk or Mles protocol in general.

Connectivity is based on the Mles-WebSocket protocol. You can freely select the server to connect to in the channel creation. It is possible to set up your own server too! Please see more information below.

The source

MlesTalk is an open-source project. A sincere thank you to all open source library developers, without you this application would not exist!

About Mles.io server

Mles.io has a service server support implemented for the MlesTalk application and this server is suggested by default to be used by the MlesTalk application. Mles.io provides a limited history of messages for users during initial connection, if messages already exist on the channel. The Mles.io service is provided as-is as a best-effort service without any liability. The MlesTalk application user is free to select any server they wish to connect to, as long as it supports the Mles-WebSocket protocol.

Mles.io will always run the latest released open source version of the Mles-WebSocket server service called mles-webproxy and it does not collect any information of MlesTalk application users. The users are always welcome to review the source code of mles-webproxy and establish their own Mles-WebSocket server service. Please see https://mles.io/legal for the full Privacy Notice and other legal information.

Frequently Asked Questions

What kind of network connection does MlesTalk need?

MlesTalk uses Mles-WebSocket protocol over Transport Layer Security (TLS) protected Transmission Control Protocol (TCP). You should be able to use it with any internet connection. MlesTalk will do the reconnection attempts for you in usual network glitches and also resend unsent messages.

Are sent or received messages saved somewhere for later retrieval by the MlesTalk application?

Messages are not saved permanently by the MlesTalk application. The messages in device memory are lost when the MlesTalk application is closed from an application point of view. To support asynchronous communication, some of the messages on the channel can be restored from a Mles-WebSocket server during reconnection to the channel if the server supports a message history. Mles.io supports message history of 3000 messages per channel where every new character uses one message.

Are the messages secured somehow?

Messages are sent over TLS protected connection by default which should be secure.

In addition to transport-level TLS encryption, message data is obfuscated end-to-end using symmetrical Blowfish (56-bit, weak key) with ciphertext stealing (CTS), all-or-nothing transform (AONT), Blake2 HMAC and Padmé padding. The shared key is passed through the password-based key derivation function scrypt. For longer real-time communication, an ephemeral Burmester-Desmedt (BD) key is exchanged. When it is applied, it can be identified from a font colour change. While the message data is not plain text, please do note that this obfuscation does not protect from serious message opening efforts.

I cannot log into a channel with the same user name twice, i.e from the web GUI. What can I do?

Please use a different user name for simultaneous logins on the same channel. It is a feature of the Mles protocol that the user name is restricted to one active at a time. You can identify this situation from the GUI where it constantly logs into a channel but never receives any messages.