Contact Book
Befehlszeile (CLI)
Ein nativer Befehlszeilen-Client für Contact Book. Eine Installationszeile.
Die Contact Book-CLI wird automatisch aus denselben Modellen erzeugt wie die HTTP-API - jeder mit curl erreichbare Endpunkt ist hier auch ein Unterbefehl. Das Skript ist eine einzelne, in sich geschlossene Python-Datei (kein pip install), prüft täglich auf Updates und authentifiziert sich mit denselben Bearer-Tokens wie der Rest der API.
Installation
Eine Zeile, eine Datei. Das Skript wird in deinem Home-Verzeichnis abgelegt - kein pip install, kein systemweiter Eingriff. Wähle das passende Betriebssystem über die Tabs.
curl -fsSL https://monicacrm.com/xapi2/cli/install.sh | bash
1.2.8·Befehl: contactscli·Prüfsumme: 5b23702452…Anmelden
Jeder Befehl außer login / version / update braucht ein gültiges Token. Zwei Wege: ein persönliches Zugriffstoken (PAT) aus dem Integrationen-Menü (empfohlen für Skripte und CI) oder interaktiv per E-Mail und Passwort (gespeichert als Sitzungstoken unter ~/.contactscli/credentials.json, Modus 0600).
contactscli login --token pat_…
Befehle
Jedes Datenmodell ist eine Untergruppe. Klicke auf einen Modellnamen, um die zugehörige Detailseite zu öffnen. Die verfügbaren Operationen entsprechen denen der HTTP-API.
| Modell | Befehle |
|---|---|
| activity | contactscli activity listcontactscli activity getcontactscli activity createcontactscli activity updatecontactscli activity deletecontactscli activity upsert |
| contact | contactscli contact listcontactscli contact getcontactscli contact createcontactscli contact updatecontactscli contact deletecontactscli contact upsert |
| conversation | contactscli conversation listcontactscli conversation getcontactscli conversation createcontactscli conversation updatecontactscli conversation deletecontactscli conversation upsert |
| custom_field | contactscli custom_field listcontactscli custom_field getcontactscli custom_field createcontactscli custom_field updatecontactscli custom_field deletecontactscli custom_field upsert |
| gift | contactscli gift listcontactscli gift getcontactscli gift createcontactscli gift updatecontactscli gift deletecontactscli gift upsert |
| journal_entry | contactscli journal_entry listcontactscli journal_entry getcontactscli journal_entry createcontactscli journal_entry updatecontactscli journal_entry deletecontactscli journal_entry upsert |
| life_event | contactscli life_event listcontactscli life_event getcontactscli life_event createcontactscli life_event updatecontactscli life_event deletecontactscli life_event upsert |
| note | contactscli note listcontactscli note getcontactscli note createcontactscli note updatecontactscli note deletecontactscli note upsert |
| pet | contactscli pet listcontactscli pet getcontactscli pet createcontactscli pet updatecontactscli pet deletecontactscli pet upsert |
| relationship | contactscli relationship listcontactscli relationship getcontactscli relationship createcontactscli relationship updatecontactscli relationship deletecontactscli relationship upsert |
| reminder | contactscli reminder listcontactscli reminder getcontactscli reminder createcontactscli reminder updatecontactscli reminder deletecontactscli reminder upsert |
--filter name=Foo (wiederholbar), --all (auto-paginieren), --fields id,name (Antwort projizieren), --cache N (lokaler Cache, N s), --file p.json / --csv p.csv / --stdin (Bulk-Eingabe; Arrays + CSV-Zeilen), --continue-on-error (Bulk-Fehler nicht stoppen, Exit 1 bei Fehler), --dry-run (Anfrage vorher zeigen), --idempotency-key K / --auto-idempotency (sicheres Wiederholen), --retry N + --backoff exp (429/5xx wiederholen), --format json|ndjson|table (Ausgabeformat), --stderr-json (maschinenlesbare Fehler), --profile NAME (Konto wechseln).Mit einer KI nutzen
Modelle wie Claude, ChatGPT oder Gemini schreiben dir Skripte, die diese CLI direkt verwenden - sie brauchen nur den Kontext unten. Kopiere den Block in deinen Chat und beschreibe, was du erreichen willst.
Help me write scripts using `contactscli`, the CLI for the Contact Book app.Install:macOS/Linux: curl -fsSL https://monicacrm.com/xapi2/cli/install.sh | bashWindows PS: irm https://monicacrm.com/xapi2/cli/install.ps1 | iexSign in (required before any data command):contactscli login --token pat_… # personal access tokencontactscli login # interactive (token or email + password)Commands per model:contactscli activity { list | get | create | update | delete | upsert }fields: --parent-id --kind --summary --description --occurred-at --locationcontactscli contact { list | get | create | update | delete | upsert }fields: --name --nickname --pronouns --email --phone --secondary-email --secondary-phone --company --job-title --address-line --city --country --website --linkedin --twitter --birthday --anniversary --gender --how-we-met --food-prefs --allergies --last-contacted-at --stay-in-touch-frequency --stay-in-touch-topic --notes --tags --favorite --avatar-blob-id --colorcontactscli conversation { list | get | create | update | delete | upsert }fields: --parent-id --channel --summary --content --occurred-at --sentiment --duration-minutescontactscli custom_field { list | get | create | update | delete | upsert }fields: --parent-id --label --value --kind --iconcontactscli gift { list | get | create | update | delete | upsert }fields: --parent-id --title --occasion --status --occurred-at --price --currency --url --notescontactscli journal_entry { list | get | create | update | delete | upsert }fields: --title --body --mood --occurred-at --tagscontactscli life_event { list | get | create | update | delete | upsert }fields: --parent-id --kind --title --occurred-at --description --location --recurringcontactscli note { list | get | create | update | delete | upsert }fields: --parent-id --body --pinnedcontactscli pet { list | get | create | update | delete | upsert }fields: --parent-id --name --species --species-other --breed --born-at --color --notescontactscli relationship { list | get | create | update | delete | upsert }fields: --parent-id --target-id --kind --label --since --notescontactscli reminder { list | get | create | update | delete | upsert }fields: --parent-id --message --due-date --completedOutput + flags:- stdout is JSON (one object, or {data:[...], meta:{...}} on list).- errors go to stderr; non-zero exit (3=auth, 5=not found, 6=validation, 7=conflict, 8=rate-limited).- --filter name=Foo (friendly key, repeatable) on `list`.- --all auto-paginates; --fields id,name projects; --cache N caches list/get for N s.- writes accept --json '{...}', --file path.json (arrays = bulk), --stdin, or --csv path [--map k=COL,…].- upsert needs --unique <field>; --dry-run previews any write.- --retry N --backoff exp survives 429/5xx; --stderr-json gives machine-readable errors.Field schemas + constraints per model: https://monicacrm.com/docs/types/<model>Full CLI reference: https://monicacrm.com/docs/cliTask: <describe what you want to do>
Beispiele
contactscli login --token pat_…contactscli whoami
Rezepte
End-to-end Snippets für die Workflows, die Leute am häufigsten brauchen. Auswählbar über die Tabs.
# items.csv has columns: parent_id,Full Name,status# --map renames CSV headers to API field names; missing cells skipped.contactscli activity create \--csv items.csv \--map name=Full Name \--continue-on-error \--retry 3 --backoff exp
Umgebungsvariablen
| Variable | Zweck |
|---|---|
| XCLI_NO_AUTOUPDATE | Tägliche Versionsprüfung und Selbst-Update überspringen. |
| XCLI_NO_TELEMETRY | Anonyme CLI-Nutzungs-Analyse überspringen. |
| XCLI_BASE_URL | Eingebettete Server-URL überschreiben (nur für Tests). |
| XCLI_TOKEN | PAT nur für diesen Aufruf nutzen, ohne ihn zu speichern. |
Telemetrie + Auto-Update
Die CLI sendet pro Befehl ein anonymes Analyse-Event (Befehlsname, Version, OS - keine Request-Bodies, keine Feldwerte), damit das Team, das diese App betreibt, die Nutzung im gleichen Dashboard wie die Web-UI sieht. Die Daten werden sicher verarbeitet; ein Audit-Log aller dich betreffenden Events kann jederzeit beim Anbieter dieser App angefragt werden. Wir empfehlen ausdrücklich, die Telemetrie aktiviert zu lassen - so werden Stabilitäts-probleme sichtbar und das Team kann Verbesserungen priorisieren, die dich betreffen. Abschalten mit XCLI_NO_TELEMETRY=1. Zusätzlich prüft die CLI höchstens alle 24 Stunden auf eine neuere Version und ersetzt sich selbst; XCLI_NO_AUTOUPDATE=1 deaktiviert das.