

sninja — это Share.Ninja в терминале. Команда раздаёт файлы по ссылке и скачивает по чужим ссылкам, работает с тем же аккаунтом и теми же ссылками, что и приложения. Файлы шифруются на вашем компьютере ещё до отправки, а ссылка открывается у получателя в любом браузере.
macOS 13 и новее на Apple Silicon, через Homebrew:
brew install shareninjahq/sninja/sninjaWindows 10 и новее, x64, через winget:
winget install Share.Ninja.CLIПроверить, что всё встало: sninja --version.
sninja put report.pdf photos/Команда шифрует файлы, загружает их и печатает ссылку. Отправьте её кому угодно: ссылка откроется в любом браузере, приложение и аккаунт получателю не нужны.
Если указать имя каталога, раздаётся сам каталог. Слеш в конце или glob раздают только его содержимое:
sninja put build # a folder named build
sninja put build/ # the contents of buildПараметры:
Сначала можно посмотреть, что внутри:
sninja list 'https://share.ninja/#…' --tree--table покажет вместо дерева размеры и даты, --path docs начнёт с папки внутри раздачи, --non-recursive выведет только один уровень. Затем:
sninja get 'https://share.ninja/#…' -o ~/DownloadsФайлы попадают в каталог, указанный в -o, по умолчанию в текущий. Ссылку берите в кавычки, иначе оболочка отбросит всё после #.
Прерванное скачивание продолжается с того места, где остановилось: просто запустите тот же get ещё раз.
sninja direct build/ --ttl 3600Команда сразу печатает ссылку и раздаёт файлы прямо с этого компьютера, пока работает. В облако ничего не загружается. Остановите её по Ctrl+C или задайте --ttl в секундах; в любом случае после этого скачивать будет нечего. В этом и смысл.
Всё описанное выше работает без аккаунта. Войдите, если хотите видеть свои раздачи и на других устройствах:
sninja auth loginКоманда откроет браузер для входа. Сессия хранится в системной связке ключей: sninja auth status её показывает, sninja auth logout удаляет.
Новое устройство получает доступ только после подтверждения с устройства, которому вы уже доверяете. Этот терминал не исключение:
sninja vault join --waitКоманда напечатает отпечаток устройства и будет ждать. Подтвердите запрос на доверенном устройстве, сверив отпечаток, и команда завершится с выполненным входом. Без --wait она вернётся сразу; sninja vault status покажет, на каком этапе вы находитесь.
После входа:
Закрыть раздачу пока можно только из приложения или на share.ninja; в командной строке такой команды ещё нет.
Прогресс и статус тоже печатаются в stdout, поэтому ссылку берите из последних строк, а не из всего вывода. list, link и links умеют писать результат в файл в формате JSON: --json <file>. Логи идут в stderr; --verbose делает их подробнее.