Friendship Tracker

Befehlszeile (CLI)

Ein nativer Befehlszeilen-Client für Friendship Tracker. Eine Installationszeile.

Die Friendship Tracker-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://friendship-tracker.com/xapi2/cli/install.sh | bash
Skript manuell herunterladenVersion: 1.2.8·Befehl: friendshipcli·Prüfsumme: e7e3a48b71

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 ~/.friendshipcli/credentials.json, Modus 0600).

friendshipcli 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
friendshipcli activity listfriendshipcli activity getfriendshipcli activity createfriendshipcli activity updatefriendshipcli activity deletefriendshipcli activity upsert
contact
friendshipcli contact listfriendshipcli contact getfriendshipcli contact createfriendshipcli contact updatefriendshipcli contact deletefriendshipcli contact upsert
conversation
friendshipcli conversation listfriendshipcli conversation getfriendshipcli conversation createfriendshipcli conversation updatefriendshipcli conversation deletefriendshipcli conversation upsert
custom_field
friendshipcli custom_field listfriendshipcli custom_field getfriendshipcli custom_field createfriendshipcli custom_field updatefriendshipcli custom_field deletefriendshipcli custom_field upsert
gift
friendshipcli gift listfriendshipcli gift getfriendshipcli gift createfriendshipcli gift updatefriendshipcli gift deletefriendshipcli gift upsert
journal_entry
friendshipcli journal_entry listfriendshipcli journal_entry getfriendshipcli journal_entry createfriendshipcli journal_entry updatefriendshipcli journal_entry deletefriendshipcli journal_entry upsert
life_event
friendshipcli life_event listfriendshipcli life_event getfriendshipcli life_event createfriendshipcli life_event updatefriendshipcli life_event deletefriendshipcli life_event upsert
note
friendshipcli note listfriendshipcli note getfriendshipcli note createfriendshipcli note updatefriendshipcli note deletefriendshipcli note upsert
pet
friendshipcli pet listfriendshipcli pet getfriendshipcli pet createfriendshipcli pet updatefriendshipcli pet deletefriendshipcli pet upsert
relationship
friendshipcli relationship listfriendshipcli relationship getfriendshipcli relationship createfriendshipcli relationship updatefriendshipcli relationship deletefriendshipcli relationship upsert
reminder
friendshipcli reminder listfriendshipcli reminder getfriendshipcli reminder createfriendshipcli reminder updatefriendshipcli reminder deletefriendshipcli 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 `friendshipcli`, the CLI for the Friendship Tracker app.
Install:
macOS/Linux: curl -fsSL https://friendship-tracker.com/xapi2/cli/install.sh | bash
Windows PS: irm https://friendship-tracker.com/xapi2/cli/install.ps1 | iex
Sign in (required before any data command):
friendshipcli login --token pat_… # personal access token
friendshipcli login # interactive (token or email + password)
Commands per model:
friendshipcli activity { list | get | create | update | delete | upsert }
fields: --parent-id --kind --summary --description --occurred-at --location
friendshipcli 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
friendshipcli conversation { list | get | create | update | delete | upsert }
fields: --parent-id --channel --summary --content --occurred-at --sentiment --duration-minutes
friendshipcli custom_field { list | get | create | update | delete | upsert }
fields: --parent-id --label --value --kind --icon
friendshipcli gift { list | get | create | update | delete | upsert }
fields: --parent-id --title --occasion --status --occurred-at --price --currency --url --notes
friendshipcli journal_entry { list | get | create | update | delete | upsert }
fields: --title --body --mood --occurred-at --tags
friendshipcli life_event { list | get | create | update | delete | upsert }
fields: --parent-id --kind --title --occurred-at --description --location --recurring
friendshipcli note { list | get | create | update | delete | upsert }
fields: --parent-id --body --pinned
friendshipcli pet { list | get | create | update | delete | upsert }
fields: --parent-id --name --species --species-other --breed --born-at --color --notes
friendshipcli relationship { list | get | create | update | delete | upsert }
fields: --parent-id --target-id --kind --label --since --notes
friendshipcli 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://friendship-tracker.com/docs/types/<model>
Full CLI reference: https://friendship-tracker.com/docs/cli
Task: <describe what you want to do>

Beispiele

friendshipcli login --token pat_…
friendshipcli 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.
friendshipcli 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.