Commands
rscontacts provides commands in several categories. Most check commands support --fix and --dry-run flags.
Setup & Diagnostics
- auth — Authenticate with Google (opens browser for OAuth2 consent)
- init-config — Generate a default config file at ~/.config/rscontacts/config.toml
- test-connect — Test connectivity to the Google People API
- complete — Generate shell completions
- version — Print version information
Listing & Inspection
- list — List all contacts
- show-contact — Show all details about a specific contact
- edit-contact — Interactively edit a contact
- show-contact-labels — Show all contact labels (contact groups) in use
- show-email-labels — Show all distinct email labels in use
- show-phone-labels — Show all distinct phone labels in use
- export-json — Export all contacts as JSON
Run All Checks
- all-checks — Run all checks
Name Checks
- check-contact-given-name-regexp — Check given names against allow regex defined in config.toml
- check-contact-family-name-regexp — Check family names against allow regex defined in config.toml
- check-contact-suffix-regexp — Check suffixes against allow regex (default: numeric)
- check-contact-displayname-duplicate — Print contacts that share the same display name
- check-contact-no-displayname — Print contacts with an empty display name
- check-contact-no-given-name — Check contacts that have no given name but have a family name
- check-contact-no-middle-name — Check that no contact has a middle name set
- check-contact-no-nickname — Check that no contact has a nickname set
- check-contact-given-name-known — Check that all given names are in the allowed list from config
- check-contact-given-name-exists — Check that every given name in the config has at least one contact
Company Checks
- check-contact-company-exists — Check that all company fields are in the known companies list from config
- check-contact-company-known — Check that every company in the config has at least one contact
- check-contact-type — Check that every contact has exactly one of type:Person or type:Company labels
- check-contact-no-identity — Check contacts that have no type tag (type:Person or type:Company)
- check-contact-type-company-given-name — Check that contacts tagged type:Company have given name equal to company field
- check-contact-type-company-no-company — Check that contacts tagged type:Company have their company field set
- check-contact-type-company-no-label — Check that contacts tagged type:Company have a matching company:<name> label
Phone Checks
- check-phone-countrycode — Print contacts with phone numbers missing a country code
- check-phone-format — Print phone numbers not in +CC-NUMBER format
- check-phone-duplicate — Print contacts that have the same phone number attached twice
- check-phone-label-missing — Print contacts with phone numbers missing a label (mobile/home/work/etc)
- check-phone-label-english — Print contacts with non-English phone labels
- check-phone-country-label — Check that contacts have correct country:<Name> labels matching their phone country codes
Email Checks
- check-contact-email — Print contacts with invalid or uppercase email addresses
- check-contact-email-duplicate — Print contacts that have the same email address attached twice
Contact Group (Label) Checks
- check-contact-no-label — Print contacts not assigned to any label (contact group)
- check-contact-label-nophone — Print labels (contact groups) that have no contacts
- check-contact-label-regexp — Check contact labels (groups) against allow regex defined in config.toml
Merge Commands
- merge-by-phone — Find and merge contacts that share the same phone number
- merge-by-email — Find and merge contacts that share the same email address
Action Commands
- move-family-to-suffix — Move numeric family names to suffix for contacts that have no suffix
- move-suffix-to-family — Move numeric suffixes to family name for contacts that have no family name
- compact-suffixes-for-contacts — Compact suffixes for contacts sharing the same base name (given + family)
- remove-label-from-all-contacts — Remove a contact label (group) from all contacts that have it
- review-phone-label — Review all phones with a specific label (e.g. “Work Fax”)
- review-email-label — Review all emails with a specific label (e.g. “Work”)
- sync-gnome-contacts — Sync Google Contacts to GNOME Contacts (Evolution Data Server)