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
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:
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:
To launch Eppie Console application, run the following command:
dotnet run --project ./src/Eppie.CLI/Eppie.CLI/Eppie.CLI.csproj
If you compile your own binaries, you will need to authorize the application in Google Developer Console and Microsoft Azure Portal in order to be able to connect Gmail and Microsoft Outlook mailboxes. Basically, Google and Microsoft want to know a little bit about the app before they allow it to access their users' data. Here is a little tutorial. When you get the Client ID and Client Secret (only Gmail) pass them as arguments with launch command, like this:
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 you download the binaries you can skip this step. We went through Google's and Microsoft's security audits and certification procedures, so it is now a bit more convenient.
Go to the project folder:
Add execute pemission:
chmod +x ./eppie-console
Launch:
./eppie-console
.\eppie-console.exe
-?|-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.
sync-folder
Sync messages in specific account folder.
send
Sends a message.
restore
Restores your Eppie account.
import
Imports a key bundle from a file.
exit
Closes the application.
Here is an example session.
Go to the project folder and run eppie-console as described above. Create your local account with init
command. Create a password and write down your seed-phrase. Remember, you will never be able to restore it if you lose it. Also, never share the seed-phrase with anybody.
To clarify, the password protects your local database. The seed-phrase will be your way to access the decentralized account whenever you want to connect a new device to existing account. That is when the decentralized network is launched. Currently decentralized messaging is available on a small testnet, and you cannot connect multiple devices to the same account.
Go ahead and add an email acount with add-account -t email
. Choose a service and authorize Eppie to access your account in browser. Then fill in IMAP/SMTP settings.
List your connected mailboxes with list-accounts
. Show all messages with show-all-messages
.
Next time you log in to Eppie, run open
command and enter your password.
Send a message with send -s <sender address> -r <receiver address> -t <subject>
.
As the main project matures more features will be added to this CLI, including but not limited to
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.