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
Skript manuell herunterladenVersion: 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.

ModellBefehle
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
Nützliche Flags: --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 | bash
Windows PS: irm https://monicacrm.com/xapi2/cli/install.ps1 | iex
Sign in (required before any data command):
contactscli login --token pat_… # personal access token
contactscli 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 --location
contactscli 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 --color
contactscli conversation { list | get | create | update | delete | upsert }
fields: --parent-id --channel --summary --content --occurred-at --sentiment --duration-minutes
contactscli custom_field { list | get | create | update | delete | upsert }
fields: --parent-id --label --value --kind --icon
contactscli gift { list | get | create | update | delete | upsert }
fields: --parent-id --title --occasion --status --occurred-at --price --currency --url --notes
contactscli journal_entry { list | get | create | update | delete | upsert }
fields: --title --body --mood --occurred-at --tags
contactscli life_event { list | get | create | update | delete | upsert }
fields: --parent-id --kind --title --occurred-at --description --location --recurring
contactscli note { list | get | create | update | delete | upsert }
fields: --parent-id --body --pinned
contactscli pet { list | get | create | update | delete | upsert }
fields: --parent-id --name --species --species-other --breed --born-at --color --notes
contactscli relationship { list | get | create | update | delete | upsert }
fields: --parent-id --target-id --kind --label --since --notes
contactscli reminder { list | get | create | update | delete | upsert }
fields: --parent-id --message --due-date --completed
Output + 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/cli
Task: <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

VariableZweck
XCLI_NO_AUTOUPDATETägliche Versionsprüfung und Selbst-Update überspringen.
XCLI_NO_TELEMETRYAnonyme CLI-Nutzungs-Analyse überspringen.
XCLI_BASE_URLEingebettete Server-URL überschreiben (nur für Tests).
XCLI_TOKENPAT 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.