Skip to content

Eppie-io/Eppie-CLI

Repository files navigation

Command line client for Eppie — an encrypted p2p email

FrameworkBadge LicenseBadge CrowdinBadge WindowsBadge LinuxBadge macOSBadge Release

Intro

Eppie-CLI is a work-in-progress command line client for the upcoming encrypted p2p email Eppie. Currently, it is primarily used for testing during Eppie Core module development. It has limited functionality at the moment, but in the future Eppie-CLI will become an official fully featured CLI for Eppie.

You might find Eppie-CLI interesting if

  • You would like to contribute to Eppie development (yay! 👍)
  • You want a CLI for your SMTP email. Eppie can be used as a conventional email client with Gmail, Microsoft Outlook etc. It can also work with Proton Mail.
  • You want to be the first to try our p2p email, as soon as it's ready

In any case you are very welcome to fork, build and explore this module to your heart's content (see instructions below).

Features

The decentralized protoccol is still in development and its features are not yet available in Eppie-CLI. Meanwhile Eppie works as a conventional CLI email client with additional security features:

  • Creating a local account using a Seed Phrase according to BIP39 standard
  • PGP encryption support (WIP)
  • Connecting any number of third-party email accounts (e.g. Gmail. Microsoft Outlook etc.)
  • Connecting Proton Mail account
  • Creating a local backup
  • Viewing mailboxes
  • Viewing a single message
  • Writing & sending messages

Build project

Prerequisites

Clone

First of all, clone the project repository to your machine:

git clone --recursive https://github.com/Eppie-io/Eppie-CLI.git eppie-cli

Build

To build the Eppie.CLI project, run the following command in the project root directory:

dotnet build ./src/Eppie.CLI/

Download binary

You may want to skip the building and download the latest release for your system:

Windows

Eppie.CLI-win-arm64.zip
Eppie.CLI-win-x64.zip
Eppie.CLI-win-x86.zip

Linux

Eppie.CLI-linux-arm.zip
Eppie.CLI-linux-arm64.zip
Eppie.CLI-linux-x64.zip

MacOS

Eppie.CLI-osx-arm64.zip
Eppie.CLI-osx-x64.zip

Launch

If built from the source

To launch Eppie Console application, run the following command:

dotnet run --project ./src/Eppie.CLI/Eppie.CLI/Eppie.CLI.csproj

To use Gmail or Microsoft Outlook OAuth2 authorization, you need to register the application and then to pass the ClientId and ClientSecret arguments with the command:

dotnet run --project ./src/Eppie.CLI/Eppie.CLI/Eppie.CLI.csproj -- --Authorization:Gmail:ClientId="<gmail-client-id>" --Authorization:Gmail:ClientSecret="<gmail-client-secret>" --Authorization:Outlook:ClientId="<outlook-client-id>"

If downloaded the binaries

Run this while in the project folder

Linux and MacOS

./eppie-console

To authorize Eppie with Gmail and Microsoft Outlook:

./eppie-console --Authorization:Gmail:ClientId="<gmail-client-id>" --Authorization:Gmail:ClientSecret="<gmail-client-secret>" --Authorization:Outlook:ClientId="<outlook-client-id>"

Windows

.\eppie-console.exe

To authorize Eppie with Gmail and Microsoft Outlook:

.\eppie-console.exe --Authorization:Gmail:ClientId="<gmail-client-id>" --Authorization:Gmail:ClientSecret="<gmail-client-secret>" --Authorization:Outlook:ClientId="<outlook-client-id>"

Available commands

  • -?|-h|--help

    Prints out a list of available commands.

  • init

    Initializes the application and creates Eppie account.

  • reset

    Resets the application and erases all its data.

  • open

    Opens an existing Eppie account.

  • add-account

    Adds an email account.

  • list-accounts

    Displays a list of accounts.

  • list-contacts

    Displays contacts from all accounts.

  • show-all-messages

    Shows all messages from all accounts.

  • show-folder-messages

    Shows messages from a specific account folder.

  • show-contact-messages

    Shows messages for a specific contact.

  • show-message

    Shows details of a specific message.

  • send

    Sends a message.

  • restore

    Restores your Eppie account.

  • import

    Imports a key bundle from a file.

  • exit

    Closes the application.

Usage

WIP

Planned features

As the main project matures more features will be added to this CLI, including but not limited to

  • Creating a decentralized Eppie account
  • Encrypted p2p messaging
  • Encrypted decentralized backup
  • Connecting existing decentralized identities, e.g. ENS

How to contribute

First of all this is a pretty ambitiois project and we are greateful beyond measure for every bit of help from our community.

If you decide to contribute, please create an issue first, or find an existing one, unless it's a very minor fix, like a typo.

Here you can help Eppie with localization.

Background

Eppie is a next generation email and decentralized identity provider. It features open protocol, serverless architecture, cryptocurrency-grade privacy with full account ownership, ease of use, and SMTP-to-web3 messaging capability.

Eppie is developped to store the data using IPFS infrastructure, and the transport layer will work through SBBS. But the architecture allows to easily plug in multiple storage and transport technologies. Eppie's e2e encryption is based on Elliptic-curve cryptography. GUI application is being written in C# with Uno, and CLI is pure C#. Eppie targets Windows, macOS, Linux, iOS, and Android platforms.