Kommandozeile (CLI)
Mit qk fragst du jeden Datensatz im Terminal ab, exportierst Listen als CSV und baust Werte in Skripte und Cronjobs ein.
Installation
#Die Kommandozeile heißt qk und braucht Node.js ab Version 18. Du installierst sie global oder rufst sie einmalig über npx auf:
Schlüssel hinterlegen
#qk login fragt nach deinem Schlüssel und speichert ihn in ~/.config/quellenkontor/config.json, lesbar nur für deinen Benutzer. Ist XDG_CONFIG_HOME gesetzt, liegt die Datei dort. qk logout löscht sie wieder. Der Schlüssel selbst bleibt gültig, bis du ihn im Konto sperrst.
Ist die Umgebungsvariable QK_KEY gesetzt, hat sie Vorrang vor der gespeicherten Datei. Auf Servern und in CI-Läufen ist das der bessere Weg.
Aufbau eines Befehls
#- Jeder Datensatz ist ein Befehl, jeder Parameter eine Option. Aus Unterstrichen werden Bindestriche:
arbeitstage_pro_wocheheißt--arbeitstage-pro-woche. - Werte stehen nach einem Leerzeichen oder einem Gleichheitszeichen:
--jahr 2027oder--jahr=2027. - Eine Option ohne Wert gilt als true:
--probezeitentspricht--probezeit true.
Alle Befehle
#| Befehl | Beispiel | Verlauf |
|---|---|---|
| qk mindestlohn | qk mindestlohn --datum 2027-01-15 | qk mindestlohn verlauf |
| qk mindestausbildungsverguetung | qk mindestausbildungsverguetung --beginn 2026-08-01 --ausbildungsjahr 2 | qk mindestausbildungsverguetung verlauf |
| qk pflegemindestlohn | qk pflegemindestlohn --datum 2027-07-01 | qk pflegemindestlohn verlauf |
| qk rechengroessen | qk rechengroessen --jahr 2026 | qk rechengroessen verlauf |
| qk beitragssaetze | qk beitragssaetze --datum 2026-07-01 | qk beitragssaetze verlauf |
| qk sachbezugswerte | qk sachbezugswerte --jahr 2026 | qk sachbezugswerte verlauf |
| qk pfaendungsfreigrenzen | qk pfaendungsfreigrenzen --datum 2026-07-01 --unterhaltspflichten 1 --netto 2500 | qk pfaendungsfreigrenzen verlauf |
| qk uebergangsbereich | qk uebergangsbereich --datum 2026-01-01 | qk uebergangsbereich verlauf |
| qk minijob-abgaben | qk minijob-abgaben --datum 2026-10-01 | qk minijob-abgaben verlauf |
| qk kuenstlersozialabgabe | qk kuenstlersozialabgabe --jahr 2027 | qk kuenstlersozialabgabe verlauf |
| qk ausgleichsabgabe | qk ausgleichsabgabe --jahr 2025 --arbeitsplaetze 120 --besetzt 2 | qk ausgleichsabgabe verlauf |
| qk steuerfreie-betraege | qk steuerfreie-betraege --datum 2026-10-01 | qk steuerfreie-betraege verlauf |
| qk reisekosten-inland | qk reisekosten-inland --datum 2026-10-01 | qk reisekosten-inland verlauf |
| qk sfn-zuschlaege | qk sfn-zuschlaege --datum 2026-12-24 --grundlohn-stunde 22.5 | qk sfn-zuschlaege verlauf |
| qk dienstwagen | qk dienstwagen --listenpreis 58900 --antrieb elektro --anschaffung 2025-09-01 --entfernung-km 18 | nein |
| qk einkommensteuer-eckwerte | qk einkommensteuer-eckwerte --jahr 2026 | qk einkommensteuer-eckwerte verlauf |
| qk kuendigungsfrist | qk kuendigungsfrist --eintritt 2017-03-01 --zugang 2026-11-10 | nein |
| qk urlaubsanspruch | qk urlaubsanspruch --arbeitstage-pro-woche 3 | nein |
| qk mutterschutz | qk mutterschutz --termin 2027-03-15 | nein |
| qk feiertage | qk feiertage --jahr 2027 --land HE | nein |
| qk arbeitstage | qk arbeitstage --von 2027-01-01 --bis 2027-01-31 --land HE | nein |
| qk regelaltersgrenze | qk regelaltersgrenze --geburtsdatum 1961-08-15 | nein |
| qk pausen | qk pausen --arbeitszeit-stunden 9.5 | nein |
| qk datensaetze | alle Datensätze mit ihren Optionen |
Ausgabe als Tabelle, JSON und CSV
#Ohne weitere Angabe zeigt qk eine Tabelle. Verschachtelte Felder erscheinen als feld.unterfeld, Listen wie Feiertage als eigene Tabelle darunter. Steht in einer Zelle null, gibt es für den Stichtag keinen Wert, genau wie in der JSON-Antwort.
Mit --format json kommt die Antwort unverändert als JSON, mit --format csv als CSV für Listen. Für ein deutsches Excel hängst du --trennzeichen semikolon an. Dann setzt qk auch ein BOM an den Anfang der Datei, damit Excel die Umlaute richtig liest.
In Skripten und Cronjobs
#Fehler landen auf stderr als eine Zeile mit Status und Code, zum Beispiel Fehler 400 (ungueltiger_parameter): Der Parameter datum muss ein Datum im Format JJJJ-MM-TT sein, zum Beispiel 2027-01-15.. Der Rückgabewert ist dann 1, bei Erfolg 0. So brichst du ein Skript sauber ab.
Mit jq weiterverarbeiten
Monatlicher Export per Cron
Hilfe und Version
#Alle Optionen je Datensatz mit Typ, Standard und erlaubten Werten stehen in der Referenz.
Fehlt etwas oder ist etwas unklar? Schreib uns, wir ergänzen die Doku.