About this project

Vauchi CLI is the command-line interface for Vauchi, described as a system for living contact cards exchanged in person. The repository is a read-only mirror of gitlab.com/vauchi/cli, where issues and merge requests should be opened. The project is pre-alpha and under heavy development, not ready for production, with APIs that may change without notice. Installation is done with cargo build -p vauchi-cli --release, producing the binary at target/release/vauchi. Users can create a cryptographic identity with vauchi init "Your Name". Contact card management includes showing the card, adding fields such as email, phone, social, and website, editing fields, and removing fields. Contact exchange is designed for in-person QR code use. vauchi exchange start generates an exchange QR code, and vauchi exchange complete "wb://..." completes an exchange using someone else's QR data. The README describes a bidirectional flow: one party starts an exchange, the other completes it and adds the first as a contact, then both sync with the relay to exchange display names. Contact management commands include listing contacts, showing contact details, searching by name, verifying a contact's fingerprint, and removing a contact. vauchi sync synchronizes with the relay server to receive pending messages. Backup and restore use encrypted export and import commands: vauchi export backup.vauchi and vauchi import backup.vauchi. Global options allow specifying a custom data directory, defaulting to ~/.local/share/vauchi, and a relay server, defaulting to ws://localhost:8080. The CLI uses vauchi-core for cryptographic operations and data management. Communication with the relay server uses WebSocket with a simple JSON protocol. The source layout includes main.rs for entry point and command routing, a commands directory for identity creation, card management, contacts, exchange, sync, and backup, plus config, display, and protocol modules. The README states mandatory development rules: TDD with Red-Green-Refactor, testing first, and keeping src/ for production code only and tests/ for tests only as siblings rather than nested. The project is community-funded through GitHub Sponsors and Liberapay, and it is licensed under GPL-3.0-or-later.