

sninja ist Share.Ninja im Terminal. Das Programm gibt Dateien per Link frei und lädt fremde Links herunter, mit demselben Konto und denselben Links wie die Apps. Die Dateien werden auf deinem Rechner verschlüsselt, bevor sie ihn verlassen, und der Link geht beim Empfänger in jedem Browser auf.
macOS 13 oder neuer auf Apple Silicon, per Homebrew:
brew install shareninjahq/sninja/sninjaWindows 10 oder neuer, x64, per winget:
winget install Share.Ninja.CLIOb alles da ist, zeigt sninja --version.
sninja put report.pdf photos/Das Programm verschlüsselt die Dateien, lädt sie hoch und gibt den Link aus. Schick ihn, wem du willst: Der Link geht in jedem Browser auf, der Empfänger braucht weder App noch Konto.
Ein Verzeichnisname gibt das Verzeichnis selbst frei. Mit Schrägstrich am Ende oder als Glob wird nur sein Inhalt freigegeben:
sninja put build # a folder named build
sninja put build/ # the contents of buildOptionen:
Erst nachsehen, was drin ist:
sninja list 'https://share.ninja/#…' --tree--table zeigt statt des Baums Größen und Datum, --path docs beginnt in einem Unterordner, --non-recursive nur eine Ebene. Dann:
sninja get 'https://share.ninja/#…' -o ~/DownloadsDie Dateien landen im Verzeichnis aus -o, standardmäßig im aktuellen. Setz den Link in Anführungszeichen, sonst verschluckt die Shell alles nach dem #.
Ein abgebrochener Download macht weiter, wo er aufgehört hat: einfach dasselbe get noch einmal starten.
sninja direct build/ --ttl 3600Das Programm gibt sofort einen Link aus und liefert die Dateien direkt von diesem Rechner, solange es läuft. In die Cloud geht nichts. Beende es mit Strg+C oder gib mit --ttl eine Laufzeit in Sekunden vor; danach gibt es so oder so nichts mehr herunterzuladen. Genau das ist der Sinn.
Alles bisher geht ohne Konto. Melde dich an, wenn du deine Freigaben auch auf deinen anderen Geräten sehen willst:
sninja auth loginDas öffnet den Browser zum Anmelden. Die Sitzung liegt im Schlüsselbund des Systems; sninja auth status zeigt sie, sninja auth logout entfernt sie.
Ein neues Gerät bekommt Zugriff erst, wenn ein Gerät, dem du schon vertraust, es bestätigt. Das gilt auch für dieses Terminal:
sninja vault join --waitDas Programm gibt den Fingerabdruck des Geräts aus und wartet. Bestätige die Anfrage auf einem vertrauten Gerät, vergleich dabei den Fingerabdruck, und der Befehl endet angemeldet. Ohne --wait kehrt er sofort zurück; sninja vault status zeigt, wo du stehst.
Angemeldet:
Eine Freigabe beenden geht bisher nur in der App oder auf share.ninja; die Kommandozeile hat dafür noch keinen Befehl.
Fortschritt und Status landen ebenfalls auf stdout, nimm den Link also aus den letzten Zeilen, nicht aus der ganzen Ausgabe. list, link und links schreiben ihr Ergebnis auf Wunsch als JSON in eine Datei: --json <file>. Logs gehen nach stderr; --verbose macht sie ausführlicher.