rolodex-tui

Crates.iorolodex-tui
lib.rsrolodex-tui
version1.0.0
created_at2025-07-16 00:53:50.916172+00
updated_at2025-07-16 00:53:50.916172+00
descriptionA fast and minimal terminal-based contact manager built in Rust
homepagehttps://github.com/popplestones/rs-rolodex
repositoryhttps://github.com/popplestones/rs-rolodex
max_upload_size
id1754493
size143,905
Shane Poppleton (codemonkey76)

documentation

https://docs.rs/rolodex

README

Rolodex ๐Ÿ—‚๏ธ

A fast and minimal terminal-based contact manager built in Rust using the Elm architecture, Crossterm, and Ratatui.

Features

  • ๐Ÿงญ Interactive TUI with real-time filtering by name or company
  • โŒจ๏ธ Keyboard navigation (โ†‘/โ†“, Home/End)
  • ๐Ÿ” Search-as-you-type filtering
  • ๐Ÿงต JSON output for scripting (pipe into jq or CLI dialers)
  • ๐Ÿ“ Contact data loaded from contacts.json

Usage

./rolodex | jq -r '.phone'

Use arrow keys to select a contact. Press Enter to emit the contact as JSON, which you can then pipe into another tool.

Keyboard shortcuts

Key Action
โ†‘ / โ†“ Move selection
Home / End Jump to start/end
Ctrl + Q Quit
Esc Clear search
Enter Output selected contact

JSON Format

{
  "name": "Alice Anderson",
  "company": "Acme Co.",
  "email": "alice@acme.co",
  "phone": "0412 345 678"
}

Installation

git clone https://github.com/popplestones/rolodex.git
cd rolodex
cargo build --release

Then run it:

./target/release/rolodex

Development Notes

For planned features like Add/Edit/Delete modes, file persistence, XDG path support, and CLI improvements, see TODO.md. Contributions and ideas welcome!

License

MIT

Commit count: 0

cargo fmt