3 releases
new 0.1.3 | Nov 16, 2024 |
---|---|
0.1.2 | Nov 16, 2024 |
0.1.1 |
|
0.1.0-alpha | Nov 15, 2024 |
#51 in Authentication
51 downloads per month
175KB
2.5K
SLoC
passepartui
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 version, 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
- Easy navigation with arrow keys and Vim keybinding
- Searching and filtering of passwords
- Support for viewing and copying operations for passwords and one-time passwords
- Mouse support (limited)
Installation
Requirements
- Unix (tested on Linux so far)
pass
, optionallypass-otp
for one-time passwords- Rust and cargo
Installation from crates.io
passepartui
can be found on crates.io here.
cargo install passepartui
Type passepartui
to run the app (provided that ~/.cargo/bin
has been added to $PATH
).
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
TODO:
- General refactoring
- Tests
- Mouse support overhaul
- Localisation for last modified column
- Button animations for keyboard shortcuts
Planned for future versions:
- Background updates
- Support for symbolic links in store
- Tree view for folders (for example Ratatui Tree Widget)
- Configuration file for setting options
- Theming, e.g. for using the terminal color theme
- Decryption of password files with Rust (possibly with sequoia-openpgp).
This would allow for
- showing which fields are set in the password preview
- showing all passwords at once when scrolling in the corresponding view mode (optional)
- displaying flags for set fields in the password table
- Sorting of the password table by columns
Clippy:
rustup component add clippy
cargo clippy
cargo fmt
Dependencies
~20–33MB
~493K SLoC