Introducing Eppie-CLI — the official CLI for Eppie, an open protocol encrypted p2p email
Tags: csharp, web3, opensource, security
Published: 2024-05-15 19:28:40

Hey! If you believe in the decentralized future of the Web, and maybe even like you Gmail or Proton Mail in the command line, this post might be just for you. I’m excited to introduce Eppie-CLI — a command line client for [Eppie](https://eppie.io).

## So, what is Eppie?
Eppie is an open protocol encrypted p2p email and decentralized identity provider. It is currently in development, and we are about to begin publicly testing the MVP. When released, Eppie will feature web3-grade privacy with full account and data ownership granted to users. It is capable of receiving direct messages from a conventional IMAP/SMTP email, as well as connecting to multiple existing decentralized networks, like Ethereum or Bitcoin. It’s GUI client (although not the main topic of this post) is also intuitive, unlike most of the web3 applications we’ve seen. 

Technically Eppie will be storing the data on IPFS infrastructure and using SBBS as a default transport layer. 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. 

While the p2p part is still in development, at the moment Eppie works as a conventional email client supporting all major email providers e.g. Google or Microsoft Outlook with a local account created using a Seed Phrase according to BIP39 standard and owned exclusively by the user[^1], and additional security features like PGP support and the ability to authenticate at Proton Mail servers (which none of the existing desktop clients can do by the way).

## Eppie CLI – as hardcore as it gets
Eppie-CLI is being developed along with the core application and is currently in alpha version. We mainly use it for testing during Eppie development. 

Why would you need it? If you’ve read this far, you probably know, but just in case. It might be interesting for those who wish to contribute to Eppie development (which would make us happy to the Moon and back 🥳). You might also wish to try the p2p email as soon as it’s ready, and having the CLI on your machine is certainly a way to go. Finally, you can use it with your Gmail, or Outlook with PGP client-side encryption. Or have your CL Proton Mail. The possibilities are not endless but substantial.

Here’s a list of its available 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 (WIP)
- Creating a local backup
- Viewing mailboxes
- Viewing a single message
- Writing & sending messages

New features will be added as the core application matures. In the future Eppie-CLI will become a fully featured official CLI for Eppie.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52br9jm314u5s7sihxou.png)

## How to

You need .NET 8.0. 

Clone the repository:

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

And build:

```console
dotnet build ./src/Eppie.CLI/
```

Launch the app like this:

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

Take a look at the available commands using `-?|-h|--help `

For example:
- `init` — nitializes the application and creates Eppie account.
- `open` — opens an existing Eppie account.
- `add-account` — adds an email account.
- `show-all-messages` — shows all messages from all accounts.
- `show-message` — shows details of a specific message.
- `send` — sends a message

## What else
As I’ve mentioned earlier, we would greatly appreciate contributions, so everyone is welcome to our [GitHub](https://github.com/Eppie-io/Eppie-CLI). And don’t forget to give us some stars &#11088; — it matters a lot to us! Also feel free to leave a comment and ask your questions here. Thanks for reading!

[^1]: here's a little [blog post](https://blog.eppie.io/post/feudal/) we wrote on the topic of account ownership