Manage contacts directly from the command line with full CRUD operations and CSV import.
View all contacts with optional filtering:
Limit the number of results:
consuelo contacts list --limit 50
Filter by a field:
consuelo contacts list --filter "status=active"
consuelo contacts list --filter "company=Acme Corp"
Retrieve details for a specific contact:
consuelo contacts get contact_abc123
Output includes all fields, tags, and associated call history.
Create a new contact with required fields:
consuelo contacts create \
--name "Jane Smith" \
--phone "+15551234567"
Create with Optional Fields
consuelo contacts create \
--name "Jane Smith" \
--phone "+15551234567" \
--email "jane@example.com" \
--company "Acme Corp" \
--tags "prospect,enterprise" \
--custom-fields '{"lead_score": 85, "source": "website"}'
Options
| Option | Required | Description |
|---|
--name | Yes | Contact name |
--phone | Yes | Phone number in E.164 format |
--email | No | Email address |
--company | No | Company name |
--tags | No | Comma-separated tags |
--custom-fields | No | JSON object for custom fields |
Update specific fields on an existing contact:
consuelo contacts update contact_abc123 \
--name "Jane Smith-Jones" \
--tags "prospect,enterprise,priority"
You can update any field except the ID.
Remove a contact:
consuelo contacts delete contact_abc123
Deletion is permanent. There is no undo.
Search across all contact fields:
consuelo contacts search "jane"
consuelo contacts search "Acme Corp"
consuelo contacts search "+1555"
Limit search results:
consuelo contacts search "jane" --limit 10
Search is case-insensitive and matches partial strings in name, email, company, and phone fields.
Import contacts in bulk from a CSV file:
consuelo contacts import contacts.csv
Your CSV should have a header row with column names:
name,phone,email,company
John Doe,+15551112222,john@example.com,Acme Corp
Jane Smith,+15553334444,jane@example.com,Globex Inc
Column Mapping
If your CSV uses different column names, map them:
consuelo contacts import contacts.csv \
--map "Full Name=name,Phone Number=phone,Email Address=email"
Dry Run
Preview import without making changes:
consuelo contacts import contacts.csv --dry-run
This shows:
- Number of contacts to import
- Any validation errors
- Column mapping results
Supported Fields
| CSV Column | Maps To | Required |
|---|
name | Contact name | Yes |
phone | Phone (E.164) | Yes |
email | Email address | No |
company | Company name | No |
tags | Comma-separated tags | No |
The import command validates phone numbers and will reject rows with invalid
E.164 format.
All phone numbers must be in E.164 format:
Examples:
- US:
+15551234567 (1 + area code + number)
- UK:
+442071234567 (44 + area code + number)
- Germany:
+49301234567 (49 + area code + number)
Non-E.164 numbers will be rejected. Include the leading + and omit spaces,
dashes, or parentheses.
Human-Readable (Default)
Displays a formatted table with columns.
JSON Output
For scripting and automation:
consuelo contacts list --json
[
{
"id": "contact_abc123",
"name": "Jane Smith",
"phone": "+15551234567",
"email": "jane@example.com",
"company": "Acme Corp"
}
]
Quiet Mode
Suppress all output (useful for scripts):
consuelo contacts delete contact_abc123 --quiet
Next Steps