Schieben Sie eine Markdown-Datei aus dem Terminal hoch und bekommen Sie ihren Link zurück. Eine einzige JavaScript-Datei ohne Abhängigkeiten, die mit derselben API und denselben Konvertern spricht wie die Website.
Zur Referenz der Kommandozeile
`cli/tp.mjs` im öffentlichen Repository ist ein Client für dieselbe API. Es ist eine einzelne Datei, neben der nichts zu installieren ist — ein Werkzeug, das in CI läuft, sollte keinen Paketbaum hinter sich herziehen —, und sie braucht Node 20 oder neuer.
Aus einem Checkout läuft sie als `node cli/tp.mjs`; ihr Paket nennt den Befehl `tp`, und so sind die Beispiele auf dieser Seite geschrieben. `tp --help` listet jeden Befehl und jede Option.
Sie ist auch das, was die GitHub Action ausführt: Ein Befehl, der auf Ihrem Rechner funktioniert, verhält sich in einem Workflow genauso.
`tp push README.md --share` wandelt die Datei um, bewahrt sie in Ihrem Konto auf und gibt ihren Link aus. Eine hochgeschobene `.html`, `.csv`, `.tsv`, `.json` oder Evernote-`.enex` wandelt der Server beim Eingang in Markdown um, statt sie so zu speichern, als wäre sie schon Markdown.
Dateien, die die API als Bytes statt als Text annimmt — `.docx`, `.xlsx`, `.pptx`, `.epub`, `.odt`, `.rtf` und Export-Zips —, werden abgelehnt, mit der Adresse der Seite, die sie im Browser liest.
`--merge` verkettet mehrere Markdown-Dateien in der angegebenen Reihenfolge zu einem Dokument, mit einer Trennlinie dazwischen, und `--name` benennt es: `tp push docs/*.md --merge --share --name handbook.md`.
`--share` erzeugt einen Link, den jeder öffnen kann, der ihn hat, und `--share people` hält das Dokument bei benannten Lesern, deren Adressen Sie auf der Website hinzufügen. `--expires 7d`, `12h` oder `2026-12-31` beendet den Link — ein bloßes Datum am Ende dieses Tages in Ihrer Zeitzone —, und `--password` schützt ihn mit einem Passwort aus `TP_SHARE_PASSWORD`, nie aus einem Argument, wo es in Ihrer Shell-History bliebe.
`tp push notes.md --update <id>` schickt neuen Text an ein Dokument, das es schon gibt. Seine id, sein Link, sein Passwort und sein Ablaufdatum bleiben, wie sie waren, und der ersetzte Text wird auf dem Server als Revision aufbewahrt, die neuesten zehn davon. Derselbe Text noch einmal ändert nichts.
`--replaces <id>` tut mit Absicht das Gegenteil: Es legt ein neues Dokument mit eigener id an, mit eigenem Link, sobald es geteilt ist, und vermerkt es als nächste Version eines früheren, was `tp versions <id>` als Kette auflistet. Ein schon verschickter Link zeigt weiterhin, was er gezeigt hat.
`tp list` zeigt, was im Konto liegt, und `--q` durchsucht den Text der Dokumente. `tp rm <id>` legt ein Dokument in den Papierkorb, wo es 14 Tage wartet; `tp usage` gibt aus, wie viel von den 250 MB und den 5.000 Dokumenten belegt ist; `tp summary <id>` fordert eine kurze Zusammenfassung an, einmal erstellt und dann zwischengespeichert.
`--folder "Team/Notes"` beim Hochschieben legt das Dokument über seinen Pfad ab und erstellt jeden Teil des Pfads, den es noch nicht gibt. `tp folders` gibt den Baum mit ids aus, `tp mkdir` und `tp mv` legen an und verschieben, `tp rmdir` entfernt einen Ordner und rückt seinen Inhalt eine Ebene nach oben, und `tp share-folder` teilt einen ganzen Ordner mit `--link`, `--people` oder `--private`, mit denselben `--expires` und `--password`.
`tp login tp_live_…` speichert einen Schlüssel in `~/.config/tp/config.json`, lesbar nur für Sie. Ein Schlüssel kann auch aus `--key` oder `TP_API_KEY` kommen, die zuerst gelesen werden; die Umgebungsvariable ist die für CI, denn `tp login` hinterlässt den Schlüssel in Ihrer Shell-History.
`--json` gibt statt der Zusammenfassungszeilen die Antwort der API selbst aus, und genau die liest die Action; `TP_HOST` richtet das Werkzeug auf eine andere Installation. Ein Fehler gibt die Meldung der API mit ihrem Status aus und endet mit einem Exit-Code ungleich null, sodass ein Skript oder eine Pipeline dort anhält, wo es soll.