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).
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
First of all, clone the project repository to your machine:
git clone --recursive https://github.com/Eppie-io/Eppie-CLI.git eppie-cli
To build the Eppie.CLI project, run the following command in the project root directory:
dotnet build ./src/Eppie.CLI/
You may want to skip the building and download the latest release for your system:
Eppie.CLI-win-arm64.zip
Eppie.CLI-win-x64.zip
Eppie.CLI-win-x86.zip
Eppie.CLI-linux-arm.zip
Eppie.CLI-linux-arm64.zip
Eppie.CLI-linux-x64.zip
Eppie.CLI-osx-arm64.zip
Eppie.CLI-osx-x64.zip
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>"
Run this while in the project folder
./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>"
.\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>"
-
-?|-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.
WIP
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
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.
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.