motus

Crates.iomotus
lib.rsmotus
version0.2.0
sourcesrc
created_at2023-05-06 11:04:16.18952
updated_at2023-05-12 16:02:27.89905
descriptionAccess the most common information about your system using a single command
homepagehttps://github.com/oleiade/motus
repositoryhttps://github.com/oleiade/motus
max_upload_size
id858445
size365,148
Théo Crevon (oleiade)

documentation

README

motus logo

Dead simple password generator

release AGPL License Build status

Motus is a command-line application written in Rust that makes generating secure passwords a breeze.

Inspired by the user experience of the 1Password password generator, motus focuses on providing a simple and elegant user interface with sane defaults and comprehensive options. By default, motus copies the generated password to your clipboard, making it even more convenient to use.

> motus memorable
fossil abreast overplant commute dish

> motus random
UDrZrJJTYElWeOFHZmfp

> motus pin
1234421

Features

  • Simple and elegant user interface: motus is designed to be easy to use and understand, and makes it difficult to generate insecure passwords.
  • Generate secure memorable passwords: motus uses the EFF's wordlist to generate secure and memorable passwords
  • Generate random passwords with optional number and symbol inclusion
  • Generate PINs with customizable length
  • Security analysis: the --analyze option provides a security analysis of the generated password, ensuring optimal password strength.
  • Sane defaults
  • Clipboard integration for easy password usage
  • Flexible customization options

Installation

on macOS

Using Homebrew:

brew tap oleiade/tap
brew install motus

on Debian/Ubuntu Linux

Add the repository and install motus:

# Download and install the repository's GPG key
curl -fsSL https://oleiade.github.io/deb/oleiade-archive-keyring.gpg | \
gpg --dearmor \
sudo tee /usr/share/keyrings/oleiade-archive-keyring.gpg > /dev/null

# Add the repository to your system's sources
echo "deb [signed-by=/usr/share/keyrings/oleiade-archive-keyring.gpg] https://oleiade.github.io/deb stable main" \
sudo tee /etc/apt/sources.list.d/oleiade.list > /dev/null

# Update your sources
apt update

# Install motus
apt install motus

using Cargo

Alternatively, you can install using Cargo:

cargo install motus

Usage

> motus --help
Motus is a command-line tool for generating secure, random, and memorable passwords as well as PIN codes.

Usage: motus [OPTIONS] <COMMAND>

Commands:
  memorable
          Generate a human-friendly memorable password
  random
          Generate a random password with specified complexity
  pin
          Generate a random numeric PIN code
  help
          Print this message or the help of the given subcommand(s)

Options:
      --no-clipboard
          Disable automatic copying of generated password to clipboard

  -o, --output <OUTPUT>
          Output the generated password in a specified format

          [default: text]
          [possible values: text, json]

      --analyze
          Display a safety analysis along the generated password

      --seed <SEED>
          Seed value for deterministic password generation (for testing purposes)

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

Generate a memorable password

> motus memorable
fossil abreast overplant commute dish

# Or customize the password generation
> motus memorable --words 7 --separator numbers-and-symbols --capitalize
Goes$Stood3Paving(Tipoff$Settle*Flip3Scone

Generate a random password

> motus random
UDrZrJJTYElWeOFHZmfp

# Or customize the password generation
> motus random --characters 42 --numbers --symbols
6HdwMjKQPYE3scIBlCps&1Ir5R8lQ85eIVtF!fpUSD

Generate a PIN

> motus pin
1234421

# Or customize the size of the PIN
> motus pin --numbers 9
347751411

# Generate a password and analyze its security
> motus --analyze memorable
╔═══════════════════════════════════════════════╗
║ Generated Password                            ║
╠═══════════════════════════════════════════════╣
║ unchanged implicit idealize smugness attitude ║
╚═══════════════════════════════════════════════╝

╔════════════════════════╗
║ Security Analysis      ║
╠══════════╦═════════════╣
║ Strength ║ very strong ║
╠══════════╬═════════════╣
║ Guesses  ║ 10^19       ║
╚══════════╩═════════════╝

╔═════════════════════════════════════╗
║ Crack time estimations              ║
╠═══════════════════════╦═════════════╣
║ 100 attempts/hour     ║ centuries   ║
╠═══════════════════════╬═════════════╣
║ 10 attempts/second    ║ centuries   ║
╠═══════════════════════╬═════════════╣
║ 10^4 attempts/second  ║ centuries   ║
╠═══════════════════════╬═════════════╣
║ 10^10 attempts/second ║ 57 years    ║
╚═══════════════════════╩═════════════╝

# Generate a password and output the result in JSON format
> motus --output json random
{"kind": "memorable", "password": "6HdwMjKQPYE3scIBlCps&1Ir5R8lQ85eIVtF!fpUSD"}

Contributing

We welcome contributions to the project. Feel free to submit issues, suggest new features, or create pull requests to help improve motus.

License

motus is distributed under the AGPL-3.0 license.

Why the name?

motus used to be a tv game that I would call the ancestor of Wordle. Players had to guess words of a given size, and would pick up balls from a cup to decide how each round would move along. They would make that very distinct move to scramble the balls around every time, with a very distinct sound. When starting this project, I thought of the process of generating passwords as this comforting and satisfying act of diving into a huge cup full of numbered balls, and the childish feeling of it. This project is named in memory of Motus.

Commit count: 27

cargo fmt