Skip to the content.

Updates

Zelta has now stopped all native servers. You can deploy your own servers using the codebase. Scroll down to the bottom for link to the repository.

Sections

Project Zelta

Zelta is an open source, secure, anonymous and feature rich messaging service for the terminal.

Security & Encryption (High Level Overview)

Requirement

Node JS (v8 and above)

Install

npm i -g zelta
yarn global add zelta

General

Display a list of all the available commands

$ zelta

Register a new username

$ zelta register

Login. Once you login, the access token is valid for 24 hrs. You should logout after each session on an untrusted device.

$ zelta login

Messaging

Send a message

$ zelta send

Groups

Create a group. There are two types of groups in zelta : public and private. Anyone can join a public group using the passphrase but private groups require an invite to join. The invitation is sent by the admin, who is the creator of the group. Currently the group limit is 50 members.

$ zelta group

Join a public group using the passphrase. Group names are referred to using the @ symbol.

$ zelta join <group>

If you try joining a private group, zelta mentions that you need an invite.

Invite a user to your group (admin privilege). Use @ for mentioning group name.

$ zelta invite <user> <group>

Accept a group invite. You will receive the invite in your inbox.

$ zelta accept-invite <group>

To send messages to a group, just address the message to a group name using @. Needless to say, you need to be a member or admin of the group. Remember that @ tells zelta that you intend to send the message to a group. Without @ the message may be sent to a user with the same username as the group name.

You can always change the access level of your groups (admin privilege)

$ zelta set-public <group>
$ zelta set-private <group>

List all the members of a group. Needless to say, you need to be a member yourself.

$ zelta members <group>

Leave a group. If you are the admin, the oldest member of the group becomes the new admin.

$ zelta leave <group>

Kick a group member (admin privilege)

$ zelta kick <user> <group>

Inbox

Check your messages using the inbox command. Group messages appear in a user@group format. The time shown is GMT unless you have configured your local timezone.

$ zelta inbox

Timezone

Configure your local timezone using the timezone configuration wizard. For your security and anonymity, this info is not sent to the server. You will have to re-configure your timezone each time you are on a new device or each time you perform a fresh install. If you dont do this all incoming messages will show the GMT time.

$ zelta timezone

Chat

Create a chatroom

$ zelta chatroom

Zelta can support multiple chat servers in diffrent regions.

$ zelta region <region>

When you use the chatroom command, a chatroom is created on that server. The room name must be unique for the server. The creator of the room is the room owner and reserves the right to destroy the room. Until the room is destroyed, it will be live for any participant with the room name and passphrase.

You can enable typing-effect to have incoming chat messages typed on your screen (matrix style!). This may not work on every terminal and currently doesnt support emojis. It is not recommended to use it in busy rooms as the animation can create a backlog of messages.

$ zelta typing-effect <value>

Head over to a chatroom to see if it works

Customize the typing speed by setting the delay (in ms) between the printing of each character. Use the typing-delay command. Recommended value is between 100 - 130. Default is 115.

$ zelta typing-delay 120

Join a chatroom

$ zelta chat

You will need to be connected to the same chat server as the chatroom and you must know the room name and passphrase. Currently there is no invitation system implemented into chat. But you may manually invite the person through a personal message (Refer : zelta send)

Madbot is the chat moderator. It recognizes these commands:

If you have not used the timezone command to configure your local timezone, UTC/GMT time is shown by default.

For emojis you can use an OS provided emoji panel or use the following syntax - :emoji_name: Example - :smile: This will render as a smiley emoji for the receiver. Refer this list for emoji names : emoji-list

Logout

Logout. You should logout after each session on an untrusted device. If you dont logout, the access token expires in 24 hrs.

$ zelta logout




Show me the code