CLTools provides various tools and command to use in the terminal.

Overview

#CLTOOLS

About

CLTools provides various tools and command to use in the terminal. As of date, CLTools is only able to generate temporary email addresses and receive emails. There are plans to integrate more tools and options in the future.

CLTools allows for the user to easily generate new emails on the fly to increase privacy, combat spam, and browse the internet in a safer manner. Documentation on the commands can be found below. Additionally, there are screenshots and gifs provided to visually understand how CLTools works.

Continuing Development

CLTools is an ongoing project with the intent of being forked and modified. If you wish to contribute or continue development, you are encouraged to fork the repository and continue development as you see fit. All dependencies are listed below and are included in the virtual environment.

Please read the CLTools Design document as that contains information about everything in the project to get you up to speed. If you run into an error, feel free to create an issue or resolve it on your own.

Dependencies and Tools

CLTools was made with the help of the following libraries and modules:

  1. Python 3.9 - CLTools was developed in Python 3.9 so any version of Python before 3.9 may be unsupported.
  2. onesecmail by yyyyyyan -- CLTools uses the onesecmail library wrapper developed by yyyyyyan.
  3. pickle -- CLTools uses the pickle library to serialize data for persistence.
  4. hashlib -- CLTools uses the Hashlib library to SHA1 encode various data
  5. lzma -- CLTools uses the LZMA library to pack all stored files on the hard drive with the exceptions of attachments that are downloaded.

Installation and Usage

CLTools is compiled with PyInstaller so python is not needed to run clmail. Simply installing the binary in a directory known in your computer's PATH variable, will allow you to run clmail from any directory at any time. If not, you can store the binary where you see fit, cd to that directory and run the command:

./clmail [command here]

If you have the binary saved in a directory pointed to in your computer's PATH variable, you can run the program by simply opening your terminal and typing:

clmail [command here]

Commands

create

clmail create

create generates a new temporary email address. If this is the first or only existing email address generated, then the address returned by create will automatically become the current email address to which you can interact with. To change the current mailbox or email address, you can use the set-curr command (Scroll down for more information.)

ls

clmail ls [-all | -active | -cached]

In the spirit of open source, commands are based off of the linux filesystem. LS will output all email addresses/mailboxes of the specified type. There are three type specifications:

  1. -all : Returns all email addresses/mailboxes that have been created and not deleted
  2. -active: Returns all active email addresses/mailboxes that have been created and never deleted. Active mailboxes will have their messages fetched from the server.
  3. -cached: Returns all cached or inactive email addresses/mailboxes that have never been deleted. Cached email addresses will never have their messages be fetched by the server due to the high probability that such email addresses no longer exist. Consequently, any emails received once said email addresses are cached will not be accessible from CLTools.

Cached email addresses are kept should the user need to refer back to a message that would otherwise be no longer retrievable. Active and cached email addresses or mailboxes can be deleted with the rm command. (See below for details.)

set-curr

clmail set-curr [ID OF MAILBOX]

Because certain commands only operate with respect to the current mailbox (ls-messages, cat, pull, curr), it is useful to be able to switch between the current mailbox. The ID of the mailbox passed it is the ID shown by the ls command. Just like Git, you do not need to enter in the whole ID but just the first few characters that are enough to distinguish the ID. If there are two ID with the first same set of characters that you enter, one of the two will be selected according to Python's internal iterator implementation. set-curr enables the user to switch between all mailboxes, cached or active.

ls-messages

clmail ls-messages

ls-messages will list out all received emails in the current mailbox. The user will be given information regarding the message id, subject, date, and sender. From this command, the user may select a specific message from its message id.

cat

clmail cat [MESSAGE-ID] (-v OPTIONAL)

cat will output the contents of a message within the current mailbox. Unlike set-curr, the ID of the message must be completely specified -- shortcuts will not work. Cat will search for the message by its ID in the current mailbox and output the contents if found. Additionally, the user may set the verbose flag by appending '-v' to the command after the message id to output the html-text alongside all text embedded within the email. Cat works for all messages, cached or active, as long as they are in the mailbox and are visible from the ls-messages command.

pull

clmail pull [MESSAGE-ID]

pull will download all attachments within the specified message. Like cat, the full message id must be specified. This command should rarely be used since all attachments of messages are downloaded automatically. All attachments can be found at the source directory of this program in the Downloads folder. The Downloads directory is organized as follows:

Downloads/
    EmailID+EmailAddress/
        Attachment1
        Attachment2

rm

clmail rm [MAILBOX-ID]

rm is a destructive command. rm will remove all mailbox data specified by the mailbox id if the mailbox exists. Like set-curr, the ID can be truncated so that only a few characters are needed to determine a unique mailbox. rm will remove all downloaded attachments, all messages, and clear up all data related to the mailbox specified. rm will delete all mailboxes, cached or active. Use with caution.

curr

clmail curr

curr will simply output the current mailbox. The user will be given the mailbox id and address.

You might also like...
bsp_tool provides a Command Line Interface for analysing .bsp files

bsp_tool Python library for analysing .bsp files bsp_tool provides a Command Line Interface for analysing .bsp files Current development is focused on

img-proof (IPA) provides a command line utility to test images in the Public Cloud

overview img-proof (IPA) provides a command line utility to test images in the Public Cloud (AWS, Azure, GCE, etc.). With img-proof you can now test c

A useful and easy to use Terminal Timer made with Python.
A useful and easy to use Terminal Timer made with Python.

Terminal SpeedCubeTimer Installation ยกNo requirements! Just Download and play Usage Starts timer.py and you will see this. python timer.py Scramble

๐Ÿ‘ป Ghoul is an easy to use information service, allowing you to get/add information on someone or something directly from your terminal.
๐Ÿ‘ป Ghoul is an easy to use information service, allowing you to get/add information on someone or something directly from your terminal.

๐Ÿ‘ป Ghoul is an easy to use information service, allowing you to get/add information on someone or something directly from your terminal. It c

Easy-to-use terminal program that can compile your code.

Description Easy-to-use terminal program that can compile your code. Installition 1. Cloning repository $ git clone https://github.com/DarkJoij/Compil

A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands
A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands

PIGIT A terminal tool for git. When we use git, do you feel very uncomfortable with too long commands. For example: git status --short, this project c

 Use case: quick JSON processing/restructuring with jq without terminal
Use case: quick JSON processing/restructuring with jq without terminal

alfred-jq Alfred workflow to conveniently process JQ on clipboard based on a jq query Also available at: packal/jq Use case: quick JSON processing/res

Todo - You could use terminal to set your todo
Todo - You could use terminal to set your todo

Python Tutorial You can learn how to build a terminal application(CLI applicatio

A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Stream your favorite shows straight from the command line.

A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

Releases(clmail)
Owner
Ashwin Chugh
Self-inspired high school programmer interested in AI/Machine Learning, desktop and mobile app development, and game design.
Ashwin Chugh
jrnl is a simple journal application for the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for the command line. You can use it to easily create, search, and v

jrnl 5.7k Dec 31, 2022
nbcommands bring the goodness of Unix commands to Jupyter notebooks.

nbcommands nbcommands bring the goodness of Unix commands to Jupyter notebooks. Installation You can simply use pip to install nbcommands: $ pip insta

Vinayak Mehta 181 Dec 23, 2022
A powerful, colorful, beautiful command-line-interface for pypi.org

pypi-command-line pypi-command-line is a colorful, powerful, and beautiful command line interface for pypi.org that is actively maintained Detailed Do

Wasi Master 32 Jun 23, 2022
dbt-subdocs is a python CLI you can used to generate a dbt-docs for a subset of your dbt project

dbt-subdocs dbt-subdocs is a python CLI you can used to generate a dbt-docs for a subset of your dbt project ๐Ÿค” Description This project is useful if

Jambe 6 Jan 03, 2023
ForX - get forex quotes from the terminal

A command line tool for checking exchange rates between currencies, both crypto and fiat.

Gabe Banks 52 Dec 10, 2022
dotfilery, configuration, environment settings, automation, etc.

โ”Œโ”ฌโ”โ”Œโ”€โ”โ”Œโ”€โ”โ”Œโ”€โ”โ”ฌ โ”ฌโ”Œโ”ฌโ”โ”ฌ โ”ฌโ”ฌโ”Œโ”€โ” โ”‚โ”‚โ”‚โ”œโ”ค โ”‚ โ”ฌโ”œโ”€โ”คโ”‚ โ”‚ โ”‚ โ”œโ”€โ”คโ”‚โ”‚ :: bits & bobs, dots & things. โ”ด โ”ดโ””โ”€โ”˜โ””โ”€โ”˜โ”ด โ”ดโ”ดโ”€โ”˜โ”ด โ”ด โ”ด โ”ดโ”ดโ””โ”€โ”˜ @megalithic ๐Ÿš€ Instal

Seth Messer 89 Dec 25, 2022
A Julia library for solving Wordle puzzles.

Wordle.jl A Julia library for solving Wordle puzzles. Usage julia import Wordle: play julia play("panic") 4 julia play("panic", verbose = true) I

John Myles White 3 Jan 23, 2022
LSD (Linux Spotify Downloader) is a command line tool for downloading or rather recording content on Spotify.

LSD (Linux Spotify Downloader) is a command line tool for downloading or rather recording content on Spotify.

Jannis Zahn 7 Jun 21, 2022
Several tools that can be added to your `PATH` to make your life easier.

CK-CLI Tools Several tools that can be added to your PATH to make your life easier. prettypath Prints the $PATH variable in a human-readable way. It a

Christopher Kumm 2 Apr 21, 2022
A stupidly simple task list to keep you productive and focused.

StupidlySimple-TaskList A stupidly simple task list to keep you productive and focused. There is really nothing to it. This is a terminal-based script

Jack Soderstrom 1 Nov 28, 2021
Microsoft Azure CLI - Azure Command-Line Interface

A great cloud needs great tools; we're excited to introduce Azure CLI, our next generation multi-platform command line experience for Azure.

Microsoft Azure 3.4k Dec 30, 2022
Interact with Replit remotely with the Replit CLI

Replit CLI pip install repl-cli Welcome to Replit CLI! With the Replit CLI Application, you can work with your repls locally, including clone, pull,

Shuchir Jain 4 Aug 18, 2022
Logic-Sim - A clone of 'Digital Logic Sim' from Sebastian Lague

Logic Simulator This is a clone of 'Digital Logic Sim' from Sebastian Lague. But

Ethan 1 Feb 01, 2022
๐Ÿ”– Lemnos: A simple, light-weight command-line to-do list manager.

๐Ÿ”– Lemnos: CLI To-do List Manager This is a simple program that allows one to manage a to-do list via the command-line. Example $ python3 todo.py add

Rohan Sikand 1 Dec 07, 2022
A command line tool to publish ads on ebay-kleinanzeigen.de

kleinanzeigen-bot Feedback and high-quality pull requests are highly welcome! About Installation Usage Development Notes License About kleinanzeigen-b

83 Dec 26, 2022
Cli tool to browse and play anime

browse and watch anime (scrape from gogoanime) (wip) basically ani-cli but in python cuz python good demo dependencies mpv installation from pypi pip

sheep padowo 2 Apr 20, 2022
A simple CLI tool for tracking Pikud Ha'oref alarms.

Pikud Ha'oref Alarm Tracking A simple CLI tool for tracking Pikud Ha'oref alarms. Polls the unofficial API endpoint every second for incoming alarms.

Yuval Adam 24 Oct 10, 2022
Double Pendulum visualised with fetching system information in Python.

Show off your terminal, in style. A nice relaxing double pendulum simulation using ASCII, able to simulate multiple pendulums at once, and provide tra

Nekurone 62 Dec 14, 2022
A python based command line tool to compare Github Users or Repositories

gitcomp A simple python package with a CLI to compare GitHub users and repositories by associating a git_score to each entry which is a weighted sum o

Anirudh Vaish 5 Mar 26, 2022
Customisable pharmacokinetic model accessible via bash CLI allowing for variable dose calculations as well as intravenous and subcutaneous administration calculations

Pharmacokinetic Modelling Group Project A PharmacoKinetic (PK) modelling function for analysis of injected solute dynamics over time, developed by Gro

1 Oct 24, 2021