Grants

Befehlszeile (CLI)

Ein nativer Befehlszeilen-Client für Grants. Eine Installationszeile.

Die Grants-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://granttool.de/xapi2/cli/install.sh | bash
Skript manuell herunterladenVersion: 1.2.8·Befehl: grantscli·Prüfsumme: 6d49ad4588

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

grantscli 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
derived_doc
grantscli derived_doc listgrantscli derived_doc getgrantscli derived_doc creategrantscli derived_doc updategrantscli derived_doc deletegrantscli derived_doc upsert
feedback_item
grantscli feedback_item listgrantscli feedback_item getgrantscli feedback_item creategrantscli feedback_item updategrantscli feedback_item deletegrantscli feedback_item upsert
feedback_point
grantscli feedback_point listgrantscli feedback_point getgrantscli feedback_point creategrantscli feedback_point updategrantscli feedback_point deletegrantscli feedback_point upsert
file
grantscli file listgrantscli file getgrantscli file creategrantscli file updategrantscli file deletegrantscli file upsert
folder
grantscli folder listgrantscli folder getgrantscli folder creategrantscli folder updategrantscli folder deletegrantscli folder upsert
grant
grantscli grant listgrantscli grant getgrantscli grant creategrantscli grant updategrantscli grant deletegrantscli grant upsert
lead
grantscli lead listgrantscli lead getgrantscli lead creategrantscli lead updategrantscli lead deletegrantscli lead upsert
loi
grantscli loi listgrantscli loi getgrantscli loi creategrantscli loi updategrantscli loi deletegrantscli loi upsert
review_note
grantscli review_note listgrantscli review_note getgrantscli review_note creategrantscli review_note updategrantscli review_note deletegrantscli review_note upsert
version_snapshot
grantscli version_snapshot listgrantscli version_snapshot getgrantscli version_snapshot creategrantscli version_snapshot updategrantscli version_snapshot deletegrantscli version_snapshot 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 `grantscli`, the CLI for the Grants app.
Install:
macOS/Linux: curl -fsSL https://granttool.de/xapi2/cli/install.sh | bash
Windows PS: irm https://granttool.de/xapi2/cli/install.ps1 | iex
Sign in (required before any data command):
grantscli login --token pat_… # personal access token
grantscli login # interactive (token or email + password)
Commands per model:
grantscli derived_doc { list | get | create | update | delete | upsert }
fields: --grant-id --kind --based-on-version --status --formats --latest-blob-id --latest-format
grantscli feedback_item { list | get | create | update | delete | upsert }
fields: --grant-id --source-type --who --subject --body --urgent --unread --status --due-date
grantscli feedback_point { list | get | create | update | delete | upsert }
fields: --grant-id --feedback-item-id --chapter-key --kind --excerpt --suggestion --applied --applied-at
grantscli file { list | get | create | update | delete | upsert }
fields: --name --kind --content --doc --grant-id --folder-id --is-root --blob-id --mime-type --size-bytes --sort-order --chapter-type --chapter-answers --ai-messages --import-status --import-gaps --import-at
grantscli folder { list | get | create | update | delete | upsert }
fields: --name --grant-id --parent-folder-id --sort-order
grantscli grant { list | get | create | update | delete | upsert }
fields: --grant-type-key --title --description --funder --program --deadline --requested-amount --currency --status --compiler --root-file-id --tags --notes --color --intake-blob-id --intake-url --intake-extracted --import-status --import-started-at --import-finished-at --intake-extracted-by-source --intake-sources --awarded-amount --awarded-at --profile --team-size --baseline-score
grantscli lead { list | get | create | update | delete | upsert }
fields: --first-name --last-name --gender --company --position --fair-location --phone --email --linkedin --website --city --country --lead-status --note --tags --inferred-gender --inferred-country --inferred-domain --account-id --lead-source-id --last-contacted-at
grantscli loi { list | get | create | update | delete | upsert }
fields: --grant-id --lead-id --partner-id --status --scope-months --exclusive --body --blob-id
grantscli review_note { list | get | create | update | delete | upsert }
fields: --grant-id --chapter-key --who --role --body --resolved --resolved-at
grantscli version_snapshot { list | get | create | update | delete | upsert }
fields: --grant-id --label --score --summary --snapshot --feedback-trigger --derived-keys
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://granttool.de/docs/types/<model>
Full CLI reference: https://granttool.de/docs/cli
Task: <describe what you want to do>

Beispiele

grantscli login --token pat_…
grantscli 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: grant_id,Full Name,status
# --map renames CSV headers to API field names; missing cells skipped.
grantscli derived_doc 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.