### Install via pre-built binary Source: https://github.com/pimalaya/cardamum/blob/master/README.md Installs the latest binary using the provided shell script. ```bash curl -sSL https://raw.githubusercontent.com/pimalaya/cardamum/master/install.sh | sudo sh ``` ```bash curl -sSL https://raw.githubusercontent.com/pimalaya/cardamum/master/install.sh | PREFIX=~/.local sh ``` -------------------------------- ### Install via Nix Source: https://github.com/pimalaya/cardamum/blob/master/README.md Installs the tool using the Nix package manager. ```bash nix-env -i cardamum ``` ```bash nix-env -if https://github.com/pimalaya/cardamum/archive/master.tar.gz ``` ```bash nix-env -if . ``` ```bash nix profile install cardamum ``` ```bash nix profile install ``` ```bash nix run cardamum ``` -------------------------------- ### Install via Cargo Source: https://github.com/pimalaya/cardamum/blob/master/README.md Installs the tool using the Rust package manager. ```bash cargo install cardamum ``` ```bash cargo install cardamum --no-default-features --features vdir ``` ```bash cargo install --locked --git https://github.com/pimalaya/cardamum.git ``` -------------------------------- ### Install Cardamum Source: https://context7.com/pimalaya/cardamum/llms.txt Various methods to install the Cardamum CLI tool including cargo, shell scripts, and Nix. ```bash # Install via cargo (Rust package manager) cargo install cardamum # Install with only Vdir support (no CardDAV) cargo install cardamum --no-default-features --features vdir # Install from git for latest development version cargo install --locked --git https://github.com/pimalaya/cardamum.git # Install via shell script (as root) curl -sSL https://raw.githubusercontent.com/pimalaya/cardamum/master/install.sh | sudo sh # Install via shell script (as regular user) curl -sSL https://raw.githubusercontent.com/pimalaya/cardamum/master/install.sh | PREFIX=~/.local sh # Install via Nix nix-env -i cardamum # Run directly without installing (Nix Flakes) nix run cardamum ``` -------------------------------- ### Generate Manual Pages Source: https://context7.com/pimalaya/cardamum/llms.txt Generate and install manual pages for offline documentation. You can specify a directory for generation or use a shorthand command. ```bash # Generate man pages to directory cardamum manuals /usr/local/share/man ``` ```bash # Or using alias cardamum mans ~/.local/share/man ``` ```bash # View man page after installation man cardamum ``` -------------------------------- ### Configure Google Contacts Source: https://context7.com/pimalaya/cardamum/llms.txt Setup OAuth 2.0 authentication for Google Contacts using an external token manager. ```toml # ~/.config/cardamum.toml [accounts.google] default = true # Google requires OAuth 2.0 bearer token authentication # Use Ortie or similar OAuth token manager carddav.auth.bearer.command = ["ortie", "token", "show"] # Discovery configuration for Google carddav.discover.host = "www.googleapis.com" carddav.discover.method = "PROPFIND" # Optional: Hardcode URIs for faster performance # carddav.server-uri = "https://www.googleapis.com/carddav/v1/principals" # carddav.home-uri = "https://www.googleapis.com/carddav/v1/principals/your.email@gmail.com/lists" ``` -------------------------------- ### Configure Apple iCloud Source: https://context7.com/pimalaya/cardamum/llms.txt Setup basic authentication with an app-specific password for iCloud. ```toml # ~/.config/cardamum.toml [accounts.apple] default = true # Apple requires direct server URI (no discovery service) carddav.server-uri = "https://contacts.icloud.com" # Use basic auth with app-specific password carddav.auth.basic.username = "your.email@icloud.com" carddav.auth.basic.password.raw = "app-specific-password" # Optional: Add home URI for faster calls (check --trace logs for your URI) # carddav.home-uri = "https://p156-contacts.icloud.com:443/17170244959/carddavhome/" ``` -------------------------------- ### Output in JSON Format Source: https://context7.com/pimalaya/cardamum/llms.txt Use the --json flag to get output in JSON format, which is ideal for scripting and integration with other tools. This allows for easy parsing and manipulation of contact data. ```bash # Output in JSON format for scripting cardamum --json cards list default ``` -------------------------------- ### Build the project Source: https://github.com/pimalaya/cardamum/blob/master/CONTRIBUTING.md Standard command to compile the project using Cargo. ```text cargo build ``` -------------------------------- ### Create Addressbook Source: https://context7.com/pimalaya/cardamum/llms.txt Create a new addressbook with optional metadata using full commands or short aliases. ```bash cardamum addressbooks create "Family" cardamum addressbooks create "Work Contacts" --description "Professional contacts" --color "#0066cc" cardamum addressbooks new "Friends" -d "Personal friends" -C "#00ff00" cardamum addressbooks add "Colleagues" ``` -------------------------------- ### Configure Posteo Discovery Source: https://github.com/pimalaya/cardamum/blob/master/README.md Uses discovery service combined with basic authentication. ```toml carddav.discover.host = "posteo.de" carddav.auth.basic.username = "your.email" carddav.auth.basic.password.raw = "p@$$w0rd" ``` -------------------------------- ### Enable Debug and Trace Logging Source: https://context7.com/pimalaya/cardamum/llms.txt Enable debug or trace logging using the --debug or --trace flags respectively. Trace logging is more verbose and shows HTTP requests, useful for troubleshooting. ```bash # Enable debug logging cardamum --debug cards list default ``` ```bash # Enable trace logging (very verbose, shows HTTP requests) cardamum --trace cards list default ``` -------------------------------- ### Configure Cardamum Accounts Source: https://context7.com/pimalaya/cardamum/llms.txt Define Vdir or CardDAV account settings in the TOML configuration file. ```toml # ~/.config/cardamum.toml [accounts.personal] # Set as default account when --account is not specified default = true # Vdir backend configuration (local file storage) vdir.home-dir = "/home/user/.contacts" # CardDAV backend configuration (remote server) # Option 1: Use HTTP discovery (slowest but safest) carddav.discover.host = "posteo.de" carddav.discover.port = 443 carddav.discover.scheme = "https" # Option 2: Use server URI directly (faster) # carddav.server-uri = "https://carddav.example.org" # Option 3: Use home URI directly (fastest but least safe) # carddav.home-uri = "https://carddav.example.org/principals/user" # Basic authentication carddav.auth.basic.username = "your.email@example.com" carddav.auth.basic.password.raw = "your-password" # Or use command to retrieve password securely # carddav.auth.basic.password.command = ["pass", "show", "example"] # Or use system keyring # carddav.auth.basic.password.keyring = "example-basic" # Bearer token authentication (for OAuth 2.0) # carddav.auth.bearer.command = ["ortie", "token", "show"] # carddav.auth.bearer.raw = "oauth2-token" [accounts.work] # Additional account configuration carddav.discover.host = "contacts.icloud.com" carddav.auth.basic.username = "work@icloud.com" carddav.auth.basic.password.raw = "app-specific-password" ``` -------------------------------- ### List addressbooks Source: https://github.com/pimalaya/cardamum/blob/master/README.md Displays all available addressbooks. ```bash $ cardamum addressbooks list | ID | NAME | DESC | COLOR | |---------|---------------------|------|-------| | default | default addressbook | | | ``` -------------------------------- ### Specify Configuration File Path Source: https://context7.com/pimalaya/cardamum/llms.txt Use the --config option to specify a custom path to the Cardamum configuration file. This allows for managing different sets of configurations. ```bash # Set configuration file path cardamum --config ~/.config/cardamum-work.toml addressbooks list ``` -------------------------------- ### Create Card Source: https://context7.com/pimalaya/cardamum/llms.txt Create a new contact using the system's default text editor. ```bash cardamum cards create default cardamum cards new work-contacts cardamum cards add family EDITOR=nano cardamum cards create default EDITOR="code --wait" cardamum cards create default ``` -------------------------------- ### Combine Global Options Source: https://context7.com/pimalaya/cardamum/llms.txt Combine multiple global options such as account selection, output format, and logging level in a single command for complex operations. ```bash # Combine options cardamum --account personal --json --debug cards list contacts ``` -------------------------------- ### List Addressbooks Source: https://context7.com/pimalaya/cardamum/llms.txt Retrieve and display addressbooks from the configured account. ```bash # List all addressbooks from default account cardamum addressbooks list # Example output: # | ID | NAME | DESC | COLOR | # |---------|---------------------|------|-------| # | default | default addressbook | | | # | work | Work Contacts | | #ff0 | # List addressbooks from a specific account cardamum --account work addressbooks list ``` -------------------------------- ### Build release version Source: https://github.com/pimalaya/cardamum/blob/master/CONTRIBUTING.md Builds the project in release mode with default features disabled. ```text cargo build --no-default-features --release ``` -------------------------------- ### Hardcode Posteo URI Source: https://github.com/pimalaya/cardamum/blob/master/README.md Provides faster calls by bypassing discovery, though it is not recommended. ```toml carddav.server-uri = "https://posteo.de:8843" carddav.home-uri = "https://posteo.de:8843/addressbooks/your.email/" ``` -------------------------------- ### Update Rust toolchain Source: https://github.com/pimalaya/cardamum/blob/master/CONTRIBUTING.md Use this command to update the Rust toolchain if not using Nix. ```text rustup update ``` -------------------------------- ### Generate Shell Completions Source: https://context7.com/pimalaya/cardamum/llms.txt Generate shell completion scripts for various shells (bash, zsh, fish, PowerShell) to improve command-line usability. Redirect output to the appropriate completion directory. ```bash # Generate bash completions cardamum completions bash > ~/.local/share/bash-completion/completions/cardamum ``` ```bash # Generate zsh completions cardamum completions zsh > ~/.zsh/completions/_cardamum ``` ```bash # Generate fish completions cardamum completions fish > ~/.config/fish/completions/cardamum.fish ``` ```bash # Generate PowerShell completions cardamum completions powershell > cardamum.ps1 ``` -------------------------------- ### List Addressbooks Source: https://context7.com/pimalaya/cardamum/llms.txt Retrieve a list of addressbooks, optionally formatted as JSON. ```bash cardamum addressbooks list --json ``` -------------------------------- ### Configure Apple Contacts Basic Auth Source: https://github.com/pimalaya/cardamum/blob/master/README.md Uses basic authentication as Apple does not support discovery services. ```toml carddav.server-uri = "https://contacts.icloud.com" carddav.auth.basic.username = "your.email@example.com" carddav.auth.basic.password.raw = "p@$$w0rd" ``` -------------------------------- ### List cards Source: https://github.com/pimalaya/cardamum/blob/master/README.md Lists all cards within a specific addressbook. ```bash $ cardamum card list default | ID | VERSION | FN | EMAIL | TEL | |-------------------------------------------------|-----------|--------------|-------------------------|-----------------| | pimp_X3Xwu-58rVRwlbUeiptAUMyVK3HkJ45jJt3PjZaE7g | 3.0 | Forrest Gump | forrestgump@example.com | (404) 555-1212 | | 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 | 3.0 | Jean Dupont | jean.dupont@example.com | +1234 56789 | ``` -------------------------------- ### Set Apple Contacts Home URI Source: https://github.com/pimalaya/cardamum/blob/master/README.md Optional configuration to improve performance by manually specifying the home URI found in trace logs. ```toml carddav.home-uri = "https://p156-contacts.icloud.com:443/17170244959/carddavhome/" ``` -------------------------------- ### Specify Account for Operations Source: https://context7.com/pimalaya/cardamum/llms.txt Use the --account option to specify which account to use for operations, overriding the default account. This is useful when managing multiple CardDAV accounts. ```bash # Specify account to use (overrides default) cardamum --account work addressbooks list ``` -------------------------------- ### Configure Google Contacts OAuth 2.0 Source: https://github.com/pimalaya/cardamum/blob/master/README.md Requires an OAuth 2.0 token manager like Ortie for authentication. ```toml carddav.auth.bearer.command = ["ortie", "token", "show"] carddav.discover.host = "www.googleapis.com" carddav.discover.method = "PROPFIND" ``` -------------------------------- ### Read Card Source: https://context7.com/pimalaya/cardamum/llms.txt Display full vCard content for a specific contact. ```bash cardamum cards read default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 cardamum cards get personal pimp_X3Xwu-58rVRwlbUeiptAUMyVK3HkJ45jJt3PjZaE7g cardamum cards read default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 --json ``` -------------------------------- ### Edit card Source: https://github.com/pimalaya/cardamum/blob/master/README.md Updates a specific card, opening the default text editor for modification. ```bash $ cardamum card update default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 ``` ```text BEGIN:VCARD VERSION:3.0 N:Gump;Forrest FN:Forrest Gump ORG:Bubba Gump Shrimp Co. TITLE:Shrimp Man PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif TEL;TYPE=WORK;VOICE:(111) 555-1212 TEL;TYPE=HOME;VOICE:(404) 555-1212 ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com REV:20080424T195243Z END:VCARD ``` ```text Card successfully updated ``` -------------------------------- ### List Cards Source: https://context7.com/pimalaya/cardamum/llms.txt List contacts within an addressbook, supporting account scoping and JSON output. ```bash cardamum cards list default cardamum --account work cards list work-contacts cardamum cards list default --json cardamum cards lst personal ``` -------------------------------- ### Delete Card with Confirmation Source: https://context7.com/pimalaya/cardamum/llms.txt Delete a contact card from an address book. By default, it prompts for confirmation. Use the --yes flag to bypass the prompt. ```bash # Delete with confirmation prompt cardamum cards delete default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 # Prompt: Do you really want to delete this card? [y/N] ``` ```bash # Delete without confirmation cardamum cards delete default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 --yes ``` ```bash # Short form cardamum cards rm work abc123-def456 -y ``` ```bash cardamum cards remove family contact-uuid --yes ``` ```bash # Output: Card successfully deleted ``` -------------------------------- ### Specify Editor for Card Updates Source: https://context7.com/pimalaya/cardamum/llms.txt Set the EDITOR environment variable to specify which editor to use when updating card details. This is useful for interactive editing. ```bash EDITOR=vim cardamum cards update default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 ``` -------------------------------- ### Set Card Aliases Source: https://context7.com/pimalaya/cardamum/llms.txt Use short aliases for card identifiers to simplify commands. These aliases can refer to specific card UUIDs or other identifiers. ```bash cardamum cards set default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 ``` ```bash cardamum cards change work abc123-def456 ``` -------------------------------- ### Hardcode Google Contacts URI Source: https://github.com/pimalaya/cardamum/blob/master/README.md Provides faster calls by bypassing discovery, though it is not recommended. ```toml carddav.server-uri = "https://www.googleapis.com/carddav/v1/principals" carddav.home-uri = "https://www.googleapis.com/carddav/v1/principals/your.email@gmail.com/lists" ``` -------------------------------- ### Update Addressbook Source: https://context7.com/pimalaya/cardamum/llms.txt Modify existing addressbook properties by ID. ```bash cardamum addressbooks update default --name "Personal Contacts" cardamum addressbooks update work --name "Business" --description "Work-related contacts" --color "#ff6600" cardamum addressbooks set family -n "Family & Friends" -d "Close relationships" ``` -------------------------------- ### Update Card Source: https://context7.com/pimalaya/cardamum/llms.txt Modify an existing contact card using the system's default text editor. ```bash cardamum cards update default 62196d36-65cb-4a6b-b107-f3d8dc8d8b62 ``` -------------------------------- ### Delete Addressbook Source: https://context7.com/pimalaya/cardamum/llms.txt Remove an addressbook and its contents, with optional force-delete flags. ```bash cardamum addressbooks delete old-addressbook cardamum addressbooks delete old-addressbook --yes cardamum addressbooks remove temp-contacts -y cardamum addressbooks rm archive --yes ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.