# Bestand verzenden — wachtwoord wordt automatisch gegenereerd, link + wachtwoord worden weergegeven $ 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 # Downloaden — wachtwoord wordt interactief gevraagd $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)
De CLI versleutelt, uploadt, downloadt en ontsleutelt automatisch. De server ziet nooit uw wachtwoord of uw onversleutelde gegevens.
$ brew install tweenietomatoes/ttl/ttl
$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl $ scoop install ttl
# Download voor uw platform vanuit de 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
# Wachtwoord automatisch genereren, standaard TTL 7d $ ttl send report.xlsx
Als er geen wachtwoord is opgegeven in de terminal, vraagt de CLI:
No password provided. Generate one? [Y/n]:
Druk op Enter of typ y om automatisch te genereren.
$ ttl send -p mySecretPass -t 1h document.pdf
# Bestand wordt na de eerste download definitief verwijderd $ ttl send -b photo.jpg
$ ttl send -t 5m temp-credentials.txt # verloopt over 5 minuten $ ttl send -t 30m meeting-link.txt # verloopt over 30 minuten $ ttl send -t 6h backup.tar.gz # verloopt over 6 uur $ ttl send -t 1d daily-report.pdf # verloopt over 1 dag $ ttl send -t 3d project-archive.zip # verloopt over 3 dagen $ ttl send -t 5d design-assets.zip # verloopt over 5 dagen $ ttl send report.xlsx # verloopt over 7 dagen (standaard)
$ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
Het wachtwoord wordt niet weergegeven. De oorspronkelijke bestandsnaam wordt hersteld.
# U kunt alleen het 10-tekens token gebruiken in plaats van de volledige URL $ ttl get aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
$ ttl get -o ~/Downloads aBcDeFgHiJ
Standaard worden bestanden opgeslagen in de huidige map. Gebruik -o / --output om een andere map op te geven.
$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ
U kunt bestanden ook downloaden en ontsleutelen in uw browser door de link rechtstreeks te bezoeken. De webinterface gebruikt dezelfde encryptiebibliotheek en vraagt om uw wachtwoord. Geen software-installatie nodig.
Het wachtwoord dient als basis voor de versleutelingssleutel. Het verlaat nooit uw apparaat en wordt nooit naar de server verzonden. Er zijn vijf manieren om het op te geven:
$ ttl send notes.txt No password provided. Generate one? [Y/n]: y Generated password: aB3kL9mX
Genereert een cryptografisch willekeurig wachtwoord van 8 tekens uit [0-9A-Za-z]. Alleen beschikbaar bij send in de terminal.
$ ttl send notes.txt No password provided. Generate one? [Y/n]: n Enter password: ******** Confirm password: ******** $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ********
Het wachtwoord wordt niet weergegeven en niet opgeslagen in de shellgeschiedenis. Bij send kiest u eerst of u automatisch wilt genereren. Bij get wordt u direct om invoer gevraagd.
-p / --password$ ttl send -p mySecretPass file.zip $ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password is zichtbaar in ps aux-uitvoer en kan worden opgeslagen in de shell-geschiedenis (~/.bash_history). Vermijd gebruik in gedeelde omgevingen en scripts. Gebruik in plaats daarvan --password-stdin of --password-file.--password-stdin# Via echo doorsturen $ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz # Vanuit wachtwoordbeheerder doorsturen $ pass show ttl/key | ttl send --password-stdin data.zip # Vanuit een omgevingsvariabele doorsturen $ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ # Heredoc $ ttl send --password-stdin report.pdf <<<"mySecretPass"
Leest de eerste regel van stdin. Handig in scripts, CI/CD-pipelines en automatisering. Als stdin geen terminal is en er geen wachtwoordbron is opgegeven, stopt de CLI met een foutmelding (tenzij --json wordt gebruikt, dat automatisch een wachtwoord genereert).
--password-file$ ttl send --password-file /run/secrets/key report.xlsx $ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ
Leest de eerste regel van het bestand (afsluitend regeleindeteken wordt verwijderd). Compatibel met Docker Secrets (/run/secrets/), Vault-agent-bestanden en vergelijkbare patronen.
ttl.passwordAls er geen expliciet wachtwoord wordt opgegeven, zoekt de CLI naar een ttl.password-bestand naast het programma, dan ~/.ttl/password. De eerste regel wordt als wachtwoord gebruikt.
-p / --password, --password-stdin en --password-file kunnen niet worden gecombineerd. Het automatisch gedetecteerde ttl.password-bestand wordt alleen gecontroleerd als geen van deze is opgegeven. Minimumlengte: 8 tekens.| Flag | Beschrijving | Standaard |
|---|---|---|
-p, --password P | Versleutelingswachtwoord | interactief |
--password-stdin | Wachtwoord van stdin lezen | |
--password-file F | Wachtwoord uit bestand lezen | |
-t, --ttl DUR | Geldigheidsduur | 7d |
-b, --burn | Na lezen verwijderen (eenmalige download) | uit |
--timeout DUR | Overdrachtstimeout | auto |
--server URL | Server-URL | https://ttl.space |
-h3, --http3 | HTTP/3 (QUIC) proberen, terugval op TCP | uit |
--json | JSON-uitvoer naar stdout (voor scripts en AI-agenten) | uit |
| Flag | Beschrijving | Standaard |
|---|---|---|
-p, --password P | Ontsleutelingswachtwoord | interactief |
--password-stdin | Wachtwoord van stdin lezen | |
--password-file F | Wachtwoord uit bestand lezen | |
-o, --output DIR | Uitvoermap | huidige map |
--timeout DUR | Overdrachtstimeout | auto |
-h3, --http3 | HTTP/3 (QUIC) proberen, terugval op TCP | uit |
--json | JSON-uitvoer naar stdout (voor scripts en AI-agenten) | uit |
Gratis: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d
Orbit extra: 14d 15d 28d 30d
Standaard: auto — geschat op basis van bestandsgrootte bij een veronderstelde snelheid van 1 Mbps + 2 minuten buffer (minimum 5 minuten). Overschrijven met --timeout 10m of --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 # Link werkt precies één keer, verloopt na 5 minuten
# verzenden — wachtwoord automatisch gegenereerd in JSON-modus $ ttl --json send report.pdf {"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"} # downloaden $ ttl --json get -p aB3kL9mX xK9mQ2vLpA {"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"} # fouten retourneren ok:false {"ok":false,"error":"Link not found"}
In --json-modus is alle uitvoer gestructureerde JSON op stdout. Als bij het verzenden geen wachtwoord is opgegeven, wordt er automatisch een gegenereerd en opgenomen in het antwoord. De exitcode is 0 bij succes en 1 bij een fout.
Orbit ontgrendelt grotere bestanden (10 GB), langere bewaring (30 dagen) en bestandsbeheer (weergeven en verwijderen).
De API-sleutel wordt automatisch gedetecteerd: TTL_API_KEY-omgevingsvariabele, ttl.key naast het programma of ~/.ttl/key. Gebruik ttl activate om de sleutel op te slaan of schrijf deze handmatig naar een van deze locaties.
# uw sleutel activeren $ ttl activate ttl_orbit_aBcDeFgHiJ... Orbit plan activated. Key saved to /usr/local/bin/ttl.key # plan en gebruik controleren $ 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 # verzenden met verlengde TTL $ ttl send -t 30d large-backup.tar.gz # recente uploads weergeven $ 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 # een bestand verwijderen $ ttl delete xK9mQ2vLpA Deleted: xK9mQ2vLpA # opgeslagen sleutel verwijderen $ ttl deactivate Key file removed: /usr/local/bin/ttl.key
ttl send / ttl get of de --json-modus. De onderstaande endpoints zijn voor Orbit-bestandsbeheer.$ 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}]}
Geeft alle bestanden weer die met deze sleutel zijn geüpload. Vereist Orbit-plan.
$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."
Retourneert 204 No Content bij succes. Vereist Orbit-plan. Het bestand moet bij deze sleutel horen.
| Status | Betekenis |
|---|---|
401 | Ongeldige of verlopen API-sleutel |
403 | Functie vereist Orbit-plan |
404 | Bestand niet gevonden of behoort niet tot deze sleutel |
429 | Aanvraaglimiet overschreden |
| Beperking | Gratis | Orbit |
|---|---|---|
| Max. bestandsgrootte | 2 GB | 10 GB |
| Max. TTL | 7 dagen | 30 dagen |
| Uploads per dag | 10 | 50 |
| Opslagquotum | — | 250 GB |
| Weergeven & verwijderen | — | ✓ |
| Min. wachtwoordlengte | 8 tekens | |
| Verzoeken per IP | 30 per 10 seconden | |
| Verbindingen per IP | 10 gelijktijdig | |
Bestanden worden op uw apparaat versleuteld voordat ze worden geüpload. De server slaat alleen versleutelde tekst op en kan uw bestanden niet ontsleutelen.
| Component | Algoritme / Waarde |
|---|---|
| Sleutelafleiding | Argon2id (time=3, memory=64 MB, parallelism=1) |
| Cijfer | XChaCha20-Poly1305 AEAD |
Elke wijziging aan de versleutelde tekst veroorzaakt dat de ontsleuteling mislukt. De server verifieert dat de downloader het juiste wachtwoord kent voordat de versleutelde tekst wordt vrijgegeven, met behulp van een eenrichtingstoken afgeleid van de encryptiesleutel.