Latest Socket ResearchMalicious Chrome Extension Performs Hidden Affiliate Hijacking.Details
Socket
Book a DemoInstallSign in
Socket

ser1.net/qcard

Package Overview
Dependencies
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ser1.net/qcard

Go Modules
Version
v0.0.0-20250207202606-8b7c0bd90f21
Version published
Created
Source

qcard

Build statusReleasesChangelogIssuesGo Report Card

qcard is a CLI address book application for CardDAV servers written in Go. In contrast to other tools it does not cache anything. It can fetch multiple servers / address books in parallel what makes it quite fast.

Its main purpose is displaying address book data. Nevertheless, it supports basic creation and editing of entries.

qcard was originally written by ~psic4t on SourceHut, but this fork diverges significantly.

Features

  • Easy search for contacts.
  • Concurrent fetching of multiple address books.
  • Easy to use filters.
  • Create, modify and delete contacts.
  • Import VCF files.
  • Display VCF files.
  • Easy setup.
  • Supports arbitrary number of remote and local accounts.

Divergence from ~psic4t

  • Supports ICS directories, as made by vdirsyncer as well as caldav servers

Installation / Configuration

Binaries are provided (check the top of this document for the link) for a couple of OS/architectures. I will add more upon request. There is no reason why qcard should not compile for any target Go supports -- BSD, Darwin, Windows, ARM, RISCV64, whatever. Ask, and ye shall receive.

I have not yet submitted this fork to any distribution. I am not keen on creating a conflict with ~psic4t, and I may rename this fork to avoid doing so. Again, whether I do this depends on feedback from all y'all. If I do, I'll submit packages to

  • AUR (Arch)
  • Alpine
  • Void

because they're (relatively) easy to contribute packages to.

Building

  • Have Go installed
  • make && sudo make install (for MacOS: make darwin) OR
  • go install ser1.net/qcard@latest
  • Copy config-sample.json to ~/.config/qcard/config.json and modify accordingly

Configuration

  • For additional address books just add a comma and new address book credentials in curly brackets.

Usage

Common options:

qcard -h

Displaying address books

This simply displays all contacts from all address books:

qcard

This only shows contacts from address book 0:

qcard -a 0

This displays all available address books with their numbers and colors:

qcaŕd -l

This searches for contacts containing "doe" in all address books:

qcard -s doe

The DetailThreshold parameter in the configuration file determines when all contact details are shown for a given number of search results. For instance, on DetailThreshold = 3 you get all details if 3 or less contacts are found for the searchword "doe".

Here's a list of all attributes:

  • M: phoneCell
  • P: phoneHome
  • p: phoneWork
  • E: emailHome
  • e: emailWork
  • A: addressHome
  • a: addressWork
  • O: organisation
  • B: birthday
  • T: title
  • R: role
  • I: nickname
  • n: note

Add new contact

This creates a contact for John Doe with a private mobile phone number and an email address in address book 1:

qcard -a 1 -n "John Doe M:+49 172 123123 E:jdoe@data.haus"

Just combine the parameters from above like you wish.

Edit a contact

This shows searches for "doe" in address book 2 and prints the corresponding filenames ("fobarxyz.vcf"):

qcard -a 2 -s doe -f

This edits the selected vCard object in your $EDITOR (i.e. vim). When you save-quit the modified object is automatically uploaded:

qcard -c 2 -edit foobarxyz.vcf

Integrations

neomutt / other cli mail tools

To use qcard as your address book in neomutt, put the following in your neomuttrc:

set query_command= "qcard -s '%s' -emailonly"
bind editor <Tab> complete-query
bind editor ^T complete

About

Questions? Ideas? File bugs and TODOs through the issue tracker or send email to ~ser/qcard@todo.sr.ht

Patches and general questions should be sent to the mailing list: ~ser/public-inbox@lists.sr.ht.

FAQs

Package last updated on 07 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts