# Odeslání souboru — heslo se vygeneruje automaticky, odkaz + heslo se vypíše $ ttl send secret.pdf No password provided. Generate one? [Y/n]: Generated password: aB3kL9mX ·✧★◉ Thank goodness, secret.pdf is in orbit (1.2 MB) IMPORTANT! Save your password — required to download and decrypt the file. Password: aB3kL9mX https://ttl.space/aBcDeFgHiJ # Stažení — heslo se zadává interaktivně $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)
CLI automaticky šifruje, nahrává, stahuje a dešifruje. Server nikdy nevidí vaše heslo ani vaše nešifrovaná data.
$ brew install tweenietomatoes/ttl/ttl
$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl $ scoop install ttl
# Stáhněte verzi pro svou platformu z releases $ curl -Lo ttl.tar.gz \ https://github.com/tweenietomatoes/ttl/releases/latest/download/ttl_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 v1.3.0
# Automatické generování hesla, výchozí TTL 7 d $ ttl send report.xlsx
Pokud v terminálu nezadáte heslo, CLI se zeptá:
No password provided. Generate one? [Y/n]:
Stiskněte Enter nebo zadejte y pro automatické vygenerování.
$ ttl send -p mySecretPass -t 1h document.pdf
# Soubor se po prvním stažení trvale smaže $ ttl send -b photo.jpg
$ ttl send -t 5m temp-credentials.txt # vyprší za 5 minut $ ttl send -t 30m meeting-link.txt # vyprší za 30 minut $ ttl send -t 6h backup.tar.gz # vyprší za 6 hodin $ ttl send -t 1d daily-report.pdf # vyprší za 1 den $ ttl send -t 3d project-archive.zip # vyprší za 3 dny $ ttl send -t 5d design-assets.zip # vyprší za 5 dní $ ttl send report.xlsx # vyprší za 7 dní (výchozí)
$ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
Heslo se zadává bezpečně — v terminálu se nezobrazuje. Původní název souboru se obnoví.
# Místo celé URL můžete použít pouze 10místný token $ ttl get aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
$ ttl get -o ~/Downloads aBcDeFgHiJ
Ve výchozím nastavení se soubory ukládají do aktuálního adresáře. Použijte -o / --output pro zadání jiného adresáře.
$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ
Soubory můžete stáhnout a dešifrovat také přímo v prohlížeči návštěvou odkazu. Webové rozhraní používá stejnou šifrovací knihovnu a požádá o heslo. Není nutná žádná instalace.
Heslo slouží jako základ pro odvození šifrovacího klíče. Nikdy neopustí vaše zařízení a nikdy se neodesílá na server. Existuje pět způsobů, jak ho zadat:
$ ttl send notes.txt No password provided. Generate one? [Y/n]: y Generated password: aB3kL9mX
Vygeneruje kryptograficky náhodné 8znakové heslo z [0-9A-Za-z]. Dostupné pouze při příkazu send v terminálu.
$ ttl send notes.txt No password provided. Generate one? [Y/n]: n Enter password: ******** Confirm password: ******** $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ********
Heslo se nezobrazuje a neukládá se do historie shellu. Při send nejprve zvolíte, zda se má vygenerovat automaticky. Při get budete rovnou vyzváni k zadání.
-p / --password$ ttl send -p mySecretPass file.zip $ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password je viditelné ve výstupu ps aux a může být uloženo v historii shellu (~/.bash_history). Vyhněte se použití ve sdílených prostředích a skriptech. Místo toho použijte --password-stdin nebo --password-file.--password-stdin# Předání přes echo $ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz # Předání ze správce hesel $ pass show ttl/key | ttl send --password-stdin data.zip # Předání z proměnné prostředí $ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ # Heredoc $ ttl send --password-stdin report.pdf <<<"mySecretPass"
Načte první řádek ze stdin. Užitečné ve skriptech, CI/CD pipeline a automatizaci. Pokud stdin není terminál a nebyl zadán žádný zdroj hesla, CLI se ukončí s chybou (pokud není použit --json, který automaticky vygeneruje heslo).
--password-file$ ttl send --password-file /run/secrets/key report.xlsx $ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ
Načte první řádek souboru (koncový znak nového řádku se odstraní). Kompatibilní s Docker Secrets (/run/secrets/), soubory Vault Agenta a podobnými vzory.
ttl.passwordPokud není zadáno explicitní heslo, CLI hledá soubor ttl.password vedle programu, poté ~/.ttl/password. První řádek se použije jako heslo.
-p / --password, --password-stdin a --password-file nelze kombinovat. Automaticky detekovaný soubor ttl.password se kontroluje pouze tehdy, když žádný z nich není zadán. Minimální délka: 8 znaků.| Parametr | Popis | Výchozí |
|---|---|---|
-p, --password P | Šifrovací heslo | interaktivní |
--password-stdin | Načíst heslo ze stdin | |
--password-file F | Načíst heslo ze souboru | |
-t, --ttl DUR | Doba platnosti | 7d |
-b, --burn | Smazat po přečtení (jednorázové stažení) | vypnuto |
--timeout DUR | Časový limit přenosu | auto |
--server URL | URL serveru | https://ttl.space |
-h3, --http3 | Zkusit HTTP/3 (QUIC), záložně TCP | vypnuto |
--json | JSON výstup na stdout (pro skripty a AI agenty) | vypnuto |
| Parametr | Popis | Výchozí |
|---|---|---|
-p, --password P | Dešifrovací heslo | interaktivní |
--password-stdin | Načíst heslo ze stdin | |
--password-file F | Načíst heslo ze souboru | |
-o, --output DIR | Výstupní adresář | aktuální adresář |
--timeout DUR | Časový limit přenosu | auto |
-h3, --http3 | Zkusit HTTP/3 (QUIC), záložně TCP | vypnuto |
--json | JSON výstup na stdout (pro skripty a AI agenty) | vypnuto |
Zdarma: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d
Orbit přidává: 14d 15d 28d 30d
Výchozí: auto — odhadnuto podle velikosti souboru při předpokládané rychlosti 1 Mbps + 2 minuty rezerva (minimum 5 minut). Přepsat pomocí --timeout 10m nebo --timeout 1h.
#!/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 # Odkaz funguje pouze jednou, vyprší po 5 minutách
# odeslání — heslo se v režimu JSON vygeneruje automaticky $ ttl --json send report.pdf {"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"} # stažení $ ttl --json get -p aB3kL9mX xK9mQ2vLpA {"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"} # chyby vrací ok:false {"ok":false,"error":"Link not found"}
V režimu --json je veškerý výstup strukturovaný JSON na stdout. Pokud není při odesílání zadáno heslo, je automaticky vygenerováno a zahrnuto v odpovědi. Návratový kód je 0 při úspěchu a 1 při chybě.
Orbit odemyká větší soubory (10 GB), delší uchování (30 dní) a správu souborů (seznam a mazání).
API klíč je detekován automaticky: proměnná prostředí TTL_API_KEY, ttl.key vedle programu nebo ~/.ttl/key. Použijte ttl activate k uložení klíče nebo jej zapište ručně na jedno z těchto míst.
# aktivovat klíč $ ttl activate ttl_orbit_aBcDeFgHiJ... Orbit plan activated. Key saved to /usr/local/bin/ttl.key # zkontrolovat plán a využití $ ttl plan Plan: orbit Max file size: 10.0 GB Max TTL: 30 days Uploads per day: Unlimited Usage: Uploads today: 3 Active storage: 1.2 GB / 250.0 GB # odeslat s prodlouženým TTL $ ttl send -t 30d large-backup.tar.gz # zobrazit nedávná nahrání $ 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 # smazat soubor $ ttl delete xK9mQ2vLpA Deleted: xK9mQ2vLpA # odebrat uložený klíč $ ttl deactivate Key file removed: /usr/local/bin/ttl.key
ttl send / ttl get nebo režim --json. Níže uvedené koncové body jsou pro správu souborů 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}]}
Vrátí všechny soubory nahrané tímto klíčem. Vyžaduje plán Orbit.
$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."
Vrátí 204 No Content při úspěchu. Vyžaduje plán Orbit. Soubor musí patřit tomuto klíči.
| Stav | Význam |
|---|---|
401 | Neplatný nebo vypršelý API klíč |
403 | Funkce vyžaduje plán Orbit |
404 | Soubor nenalezen nebo nepatří tomuto klíči |
429 | Překročen limit požadavků |
| Omezení | Zdarma | Orbit |
|---|---|---|
| Max. velikost souboru | 2 GB | 10 GB |
| Max. TTL | 7 dní | 30 dní |
| Nahrání za den | 10 | 50 |
| Úložná kvóta | — | 250 GB |
| Seznam & mazání | — | ✓ |
| Min. délka hesla | 8 znaků | |
| Požadavky na IP | 30 za 10 sekund | |
| Připojení na IP | 10 současných | |
Soubory se šifrují na vašem zařízení před nahráním. Server uchovává pouze šifrovaný text a nemůže vaše soubory dešifrovat.
| Komponenta | Algoritmus / hodnota |
|---|---|
| Odvození klíče | Argon2id (time=3, memory=64 MB, parallelism=1) |
| Šifra | XChaCha20-Poly1305 AEAD |
Jakákoli úprava šifrovaného textu způsobí selhání dešifrování. Server před uvolněním šifrovaného textu ověří, že stahující zná správné heslo, pomocí jednosměrného tokenu odvozeného z šifrovacího klíče.