Home

Awesome

passepartui

crates.io Packaging status

<img src="passepartui_screenshot.png" width="80%">

A TUI for pass

Introduction

I started this project as a way to practice programming in Rust while reading the Rust Book. Therefore, this project is still in an alpha state, however, user interaction is mostly finished.

passepartui relies for all decryption operations on pass, one-time passwords (OTP) are handled by pass-otp. Currently, no functionality for manipulating the password store (e.g. adding or deleting a password) is implemented. For those operations use pass directly from your terminal (refer to man pass). More on the current state of development can be found below.

The name passepartui is a combination of "passepartout", French for "master key", and "TUI".

Features

Installation

Prerequisites

Installation from crates.io

passepartui can be found on crates.io.

cargo install passepartui --locked

Type passepartui to run the app (provided that ~/.cargo/bin has been added to $PATH).

Installation from the AUR

passepartui is available in the AUR. You can install it with your favorite AUR helper, e.g.:

paru -S passepartui

Installation from nixpkgs

passepartui is available in nixpkgs. You can install it in your system via the usual ways, or try it with:

nix run nixpkgs#passepartui

Manual installation

Clone the repository and change to the directory:

git clone git@github.com:kardwen/passepartui.git
cd passepartui

Build and copy the executable to an appropriate location:

cargo build --release
cp target/release/passepartui ~/.cargo/bin

Run passepartui in a terminal.

Contrib

The contrib directory contains additional files, for now an example for a desktop file.

A desktop entry lets you start passepartui with your application menu. Edit the desktop file passepartui.desktop to use your terminal emulator for running passepartui and copy it to $XDG_DATA_HOME/applications which is usually ~/.local/share/applications.

Development

Contributions are welcome! For architectural changes please start with opening an issue.

Build with Ratatui.

Library for pass: passepartout

TODO:

Some possible features for future versions:

Clippy:

rustup component add clippy
cargo clippy
cargo fmt