Sobre o projeto

Vauchi CLI é a interface de linha de comando para o Vauchi, descrito como um sistema para cartões de contato dinâmicos trocados pessoalmente. O repositório é um espelho de leitura do gitlab.com/vauchi/cli, onde problemas e solicitações de merge devem ser abertos. O projeto está em fase pré-alpha e sob intenso desenvolvimento, não estando pronto para produção, com APIs que podem mudar sem aviso prévio. A instalação é feita com cargo build -p vauchi-cli --release, produzindo o binário em target/release/vauchi. Os usuários podem criar uma identidade criptográfica com vauchi init "Seu Nome". O gerenciamento do cartão de contato inclui a exibição do cartão, adição de campos como e-mail, telefone, redes sociais e site, além de editar e remover campos. A troca de contatos é projetada para o uso de QR codes pessoalmente. vauchi exchange start gera um QR code de troca, e vauchi exchange complete "wb://..." completa uma troca usando os dados do QR code de outra pessoa. O README descreve um fluxo bidirecional: uma parte inicia a troca, a outra a completa e adiciona a primeira como contato, e então ambos sincronizam com o relay para trocar nomes de exibição. Os comandos de gerenciamento de contatos incluem a listagem de contatos, exibição de detalhes, busca por nome, verificação da impressão digital (fingerprint) de um contato e a remoção de contatos. vauchi sync sincroniza com o servidor relay para receber mensagens pendentes. O backup e a restauração utilizam comandos de exportação e importação criptografados: vauchi export backup.vauchi e vauchi import backup.vauchi. Opções globais permitem especificar um diretório de dados personalizado, com padrão em ~/.local/share/vauchi, e um servidor relay, com padrão em ws://localhost:8080. O CLI utiliza o vauchi-core para operações criptográficas e gerenciamento de dados. A comunicação com o servidor relay utiliza WebSocket com um protocolo JSON simples. A estrutura do código inclui main.rs para o ponto de entrada e roteamento de comandos, um diretório de comandos para criação de identidade, gerenciamento de cartões, contatos, troca, sincronização e backup, além de módulos de configuração, exibição e protocolo. O README estabelece regras de desenvolvimento obrigatórias: TDD com Red-Green-Refactor, testes primeiro, e a manutenção de src/ apenas para código de produção e tests/ apenas para testes como pastas irmãs, em vez de aninhadas. O projeto é financiado pela comunidade através do GitHub Sponsors e Liberapay, e está licenciado sob GPL-3.0-or-later.