# пошаљите фајл: лозинка се аутоматски генерише, линк + лозинка се исписују $ ttl send secret.pdf No password provided. Generate one? [Y/n]: Generated password: aB3kL9mXq7Rt ·✧★◉ Thank goodness, secret.pdf is in orbit (1.2 MB) IMPORTANT! Save your password — required to download and decrypt the file. Password: aB3kL9mXq7Rt https://ttl.space/aBcDeFgHiJ # преузмите: лозинка се тражи интерактивно $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)
CLI аутоматски обавља шифровање, отпремање, преузимање и дешифровање. Сервер никада не види Вашу лозинку нити Ваше податке у отвореном тексту.
$ brew install tweenietomatoes/ttl/ttl
$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl $ scoop install ttl
# преузмите верзију за Вашу платформу $ curl -Lo ttl.tar.gz \ https://github.com/tweenietomatoes/ttl/releases/download/v1.6.0/ttl_1.6.0_linux_amd64.tar.gz $ tar xzf ttl.tar.gz && sudo mv ttl /usr/local/bin/
$ go install github.com/tweenietomatoes/ttl/cmd/ttl@latest
$ git clone https://github.com/tweenietomatoes/ttl $ cd ttl && go build -o ttl ./cmd/ttl/ $ sudo mv ttl /usr/local/bin/
$ ttl version ttl 1.6.0
# аутоматски генериши лозинку, подразумевани TTL 7 дана $ ttl send report.xlsx
Ако лозинка није наведена у терминалу, CLI поставља питање:
No password provided. Generate one? [Y/n]:
Притисните Enter или унесите y за аутоматско генерисање.
$ ttl send -p mySecretPass -t 1h document.pdf
# троши се чим почне прво преузимање; после прекида може да се настави само то преузимање $ ttl send -b photo.jpg
$ ttl send -t 5m temp-credentials.txt # истиче за 5 минута $ ttl send -t 30m meeting-link.txt # истиче за 30 минута $ ttl send -t 6h backup.tar.gz # истиче за 6 сати $ ttl send -t 1d daily-report.pdf # истиче за 1 дан $ ttl send -t 3d project-archive.zip # истиче за 3 дана $ ttl send -t 5d design-assets.zip # истиче за 5 дана $ ttl send report.xlsx # истиче за 7 дана (подразумевано)
$ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
Лозинка се чита на безбедан начин, не приказује се у терминалу. Оригинално име фајла се задржава; ако фајл са тим именом већ постоји у излазном директоријуму, чува се као name (1).ext уместо да се постојећи препише.
# уместо пуног URL-а можете користити само 10-знаковни токен $ ttl get aBcDeFgHiJ
$ ttl get -o ~/Downloads aBcDeFgHiJ
Подразумевано се фајлови чувају у тренутном директоријуму. Користите -o / --output да наведете други директоријум.
$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ
Фајлове можете преузети и дешифровати и у прегледачу тако што директно посетите линк. Веб интерфејс користи исти формат фајла и исте алгоритме (Argon2id, XChaCha20-Poly1305) и тражи Вашу лозинку. Није потребна инсталација софтвера.
Лозинка је основа кључа за шифровање. Никада не напушта Ваш уређај и никада се не шаље серверу. Може се навести на шест начина:
$ ttl send notes.txt No password provided. Generate one? [Y/n]: y Generated password: aB3kL9mXq7Rt
Генерише криптографски случајну лозинку од 12 знакова из скупа [0-9A-Za-z]. Доступно само приликом send (интерактивно или аутоматски у --json режиму).
$ ttl send notes.txt No password provided. Generate one? [Y/n]: n Enter password: ******** Confirm password: ******** $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ********
Лозинка се не приказује на екрану и не чува се у историји командне линије. Приликом send прво се нуди аутоматско генерисање; ако унесете сопствену лозинку, тражи се поновни унос ради потврде. Приликом get лозинка се тражи директно.
-p / --password$ ttl send -p mySecretPass file.zip $ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password је видљиво у излазу ps aux и може бити сачувано у историји командне линије (~/.bash_history). Избегавајте коришћење у дељеним окружењима и скриптама. Уместо тога користите --password-stdin или --password-file.--password-stdin# pipe са echo $ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz # pipe из менаџера лозинки $ pass show ttl/key | ttl send --password-stdin data.zip # pipe из променљиве окружења $ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ # heredoc $ ttl send --password-stdin report.pdf <<<"mySecretPass"
Чита први ред из stdin-а. Корисно у скриптама, CI/CD токовима и аутоматизацији. Ако stdin није терминал и извор лозинке није наведен, CLI завршава с грешком (осим ако се користи --json, тада се лозинка аутоматски генерише).
--password-file$ ttl send --password-file /run/secrets/key report.xlsx $ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ
Чита први ред фајла (завршни знак за нови ред се уклања). Компатибилно са Docker secrets (/run/secrets/), Vault agent фајловима и сличним структурама.
ttl.passwordАко лозинка није експлицитно наведена, CLI прво тражи фајл ttl.password поред извршног фајла, а затим ~/.ttl/password. Први ред се користи као лозинка.
-p / --password, --password-stdin и --password-file се не могу комбиновати. Аутоматски откривен фајл ttl.password се проверава само ако ниједан од њих није наведен. Минимална дужина лозинке је 8 знакова.| Заставица | Опис | Подразумевано |
|---|---|---|
-p, --password P | Лозинка за шифровање | интерактивно |
--password-stdin | Читај лозинку из stdin-а | |
--password-file F | Читај лозинку из фајла | |
-t, --ttl ТРАЈАЊЕ | Рок трајања | 7d |
-b, --burn | Обриши после читања (једно преузимање) | искључено |
-u, --uploader-only | Само Ваш API кључ може да преузме (Orbit; алијас --private) | искључено |
--timeout ТРАЈАЊЕ | Временско ограничење преноса | без ограничења |
--server URL | URL сервера | https://ttl.space |
-h3, --http3 | Покушај HTTP/3 (QUIC), врати се на TCP | искључено |
--json | Испиши JSON излаз у stdout (за скрипте и AI агенте) | искључено |
| Заставица | Опис | Подразумевано |
|---|---|---|
-p, --password P | Лозинка за дешифровање | интерактивно |
--password-stdin | Читај лозинку из stdin-а | |
--password-file F | Читај лозинку из фајла | |
-o, --output DIR | Излазни директоријум | тренутни директоријум |
--timeout ТРАЈАЊЕ | Временско ограничење преноса | без ограничења |
-h3, --http3 | Покушај HTTP/3 (QUIC), врати се на TCP | искључено |
--json | Испиши JSON излаз у stdout (за скрипте и AI агенте) | искључено |
Бесплатно: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d
Orbit додатак: 14d 15d 28d 30d permanent
Подразумевано: без ограничења. Пренос који застане сам се наставља, а одустаје ако не може даље. Ограничење поставите са --timeout 30m или --timeout 2h.
#!/bin/bash tar czf /tmp/backup.tar.gz /data echo "$BACKUP_KEY" | ttl send --password-stdin -t 6h /tmp/backup.tar.gz rm /tmp/backup.tar.gz
$ ttl send -p mypass123 file.pdf | pbcopy
$ ttl send -p mypass123 file.pdf | xclip -sel clip
$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env # линк ради тачно једном, истиче за 5 минута
# пошаљи: у JSON режиму лозинка се аутоматски генерише $ ttl --json send report.pdf {"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"uploader_only":false,"is_permanent":false,"password":"aB3kL9mXq7Rt"} # преузми $ ttl --json get -p aB3kL9mXq7Rt xK9mQ2vLpA {"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"} # грешке враћају ok:false {"ok":false,"error":"Link not found"}
У --json режиму сав излаз се шаље у stdout као структурирани JSON. При слању, ако лозинка није наведена, аутоматски се генерише и укључује у одговор. Излазни код је 0 при успеху, 1 при грешци.
Orbit нуди веће фајлове (10 GB), дуже чување (30 дана или трајно), фајлове само за пошиљаоца (може их преузети само Ваш API кључ) и управљање фајловима (листање и брисање). Потпуно поређење: Features.
API кључ се аутоматски открива: променљива окружења TTL_API_KEY, фајл ttl.key поред извршног фајла или ~/.ttl/key. Користите ttl activate да сачувате кључ или га ручно упишите на једну од ових локација.
# активирајте Ваш кључ: уноси се без приказа на екрану, па не остаје у историји командне линије $ ttl activate Enter Orbit API key: ******** Orbit plan activated. Key saved to /usr/local/bin/ttl.key # неинтерактивно: ttl activate --key-stdin | ttl activate --key-file F # проверите план и коришћење $ ttl plan Plan: orbit Max file size: 10.0 GB Max TTL: 30 days (or permanent) Uploads per day: 1000000 Usage: Uploads today: 3 Active storage: 1.2 GB / 500.0 GB # пошаљите са продуженим TTL-ом $ ttl send -t 30d large-backup.tar.gz # трајан фајл (само уз Orbit): без истека, чува се док га не обришете или док Вам се претплата не заврши $ ttl send -t permanent archive.tar.gz # пошаљите приватан фајл: само Ваш API кључ може да га преузме (само уз Orbit) $ ttl send -u payroll.xlsx # прикажите последња отпремања $ ttl list xK9mQ2vLpA 4.2 MB 2026-03-16 10:30 → 2026-04-15 10:30 [active] https://ttl.space/xK9mQ2vLpA rT7bNw3KpF 912.0 KB 2026-03-15 14:20 → 2026-03-17 14:20 [active (burn)] https://ttl.space/rT7bNw3KpF # обришите фајл пре истека рока $ ttl delete xK9mQ2vLpA Deleted: xK9mQ2vLpA # уклоните сачувани кључ $ ttl deactivate Key file removed: /usr/local/bin/ttl.key
ttl send / ttl get или --json режим. Следеће крајње тачке су за Orbit управљање фајловима.$ curl https://ttl.space/v1/files -H "X-API-Key: ttl_orbit_..." {"files":[{"token":"xK9mQ2vLpA","link":"https://ttl.space/xK9mQ2vLpA","size_bytes":1048576,"created_at":1711800600,"expires_at":1714392600,"burn":false,"expired":false,"uploader_only":false,"is_permanent":false,"is_note":false,"perm_grace_until":0}],"has_more":false} # следећа страница: само када је has_more true; проследите next_cursor из претходног одговора $ curl "https://ttl.space/v1/files?cursor=1711800600123456" -H "X-API-Key: ttl_orbit_..."
Враћа фајлове отпремљене овим кључем, од најновијих, 20 по страници. Када је has_more true, одговор садржи и next_cursor; проследите га као ?cursor= да бисте добили следећу страницу. Потребан је Orbit план.
$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."
Враћа 204 No Content при успеху. Потребан је Orbit план. Фајл мора припадати овом кључу.
| Статус | Значење |
|---|---|
401 | Неважећи или истекли API кључ |
403 | Функција захтева Orbit план |
404 | Фајл није пронађен или не припада овом кључу |
429 | Прекорачено ограничење захтева |
500 | Интерна грешка сервера, покушајте поново касније |
502 | Складиште привремено није доступно, покушајте поново касније |
| Ограничење | Бесплатно | Orbit |
|---|---|---|
| Макс величина фајла | 2 GB | 10 GB |
| Макс TTL | 7 дана | 30 дана или трајно |
| Дневна отпремања | 10 | Неограничено |
| Дневни обим отпремања (по IP адреси) | 10 GB | Неограничено |
| Истовремена отпремања | 1 по IP адреси | 1 по IP адреси и по API кључу |
| Квота складиштења | ✗ | 500 GB |
| Листа датотека | ✗ | ✓ |
| Рано брисање | ✓ | ✓ |
| Фајлови само за пошиљаоца | ✗ | ✓ |
| Мин дужина лозинке | 8 знакова | |
| Захтева по IP адреси | 30 у 10 секунди | |
| Конекција по IP адреси | 10 истовремених | |
Фајлови се шифрују на Вашем уређају пре отпремања. Сервер чува само шифровани текст и не може дешифровати Ваше фајлове.
| Компонента | Алгоритам / Вредност |
|---|---|
| Извођење кључа | Argon2id (time=3, memory=64 MiB, parallelism=1) |
| Шифра | XChaCha20-Poly1305 AEAD |
Свака измена шифрованог текста доводи до неуспеха дешифровања. Сервер проверава да преузималац зна исправну лозинку пре издавања шифрованог текста, користећи једносмерни токен изведен из кључа за шифровање.