Gebruikershandleiding

Nederlands

Snelstart

# Bestand verzenden: wachtwoord wordt automatisch gegenereerd, link + wachtwoord worden weergegeven
$ 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

# 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.

Installatie

Homebrew (macOS)

$ brew install tweenietomatoes/ttl/ttl

Scoop (Windows)

$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl
$ scoop install ttl

Voorgecompileerd bestand

# Download voor uw platform vanuit de releases
$ 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

$ go install github.com/tweenietomatoes/ttl/cmd/ttl@latest

Vanuit broncode

$ git clone https://github.com/tweenietomatoes/ttl
$ cd ttl && go build -o ttl ./cmd/ttl/
$ sudo mv ttl /usr/local/bin/

Verifiëren

$ ttl version
ttl 1.6.0

Bestanden verzenden

Eenvoudig verzenden

# 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.

Eigen wachtwoord

$ ttl send -p mySecretPass -t 1h document.pdf

Na lezen verwijderen

# Wordt verbruikt zodra de eerste download begint; na een onderbreking kan alleen die download verder
$ ttl send -b photo.jpg

Aangepaste TTL

$ 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)

Bestanden downloaden

Interactief (terminal)

$ 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; als er in de uitvoermap al een bestand met die naam bestaat, wordt het bestand opgeslagen als name (1).ext in plaats van het bestaande bestand te overschrijven.

Alleen met token

# U kunt alleen het 10-tekens token gebruiken in plaats van de volledige URL
$ ttl get aBcDeFgHiJ

Uitvoermap

$ ttl get -o ~/Downloads aBcDeFgHiJ

Standaard worden bestanden opgeslagen in de huidige map. Gebruik -o / --output om een andere map op te geven.

Met wachtwoord-flag

$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ

Browser

U kunt bestanden ook downloaden en ontsleutelen in uw browser door de link rechtstreeks te bezoeken. De webinterface gebruikt hetzelfde bestandsformaat en dezelfde algoritmen (Argon2id, XChaCha20-Poly1305) en vraagt om uw wachtwoord. Geen software-installatie nodig.

Wachtwoordbeheer

Het wachtwoord dient als basis voor de versleutelingssleutel. Het verlaat nooit uw apparaat en wordt nooit naar de server verzonden. Er zijn zes manieren om het op te geven:

1. Automatisch genereren (alleen bij verzenden)

$ ttl send notes.txt
No password provided. Generate one? [Y/n]: y
Generated password: aB3kL9mXq7Rt

Genereert een cryptografisch willekeurig wachtwoord van 12 tekens uit [0-9A-Za-z]. Alleen beschikbaar bij send (interactief, of automatisch in --json-modus).

2. Interactieve invoer

$ 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.

3. Flag: -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.

4. Stdin: --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).

5. Bestand: --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.

6. Automatisch gedetecteerd bestand: ttl.password

Als 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.

Er kan slechts één expliciete wachtwoordbron tegelijk worden 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.

Opties-overzicht

Send-flags

FlagBeschrijvingStandaard
-p, --password PVersleutelingswachtwoordinteractief
--password-stdinWachtwoord van stdin lezen
--password-file FWachtwoord uit bestand lezen
-t, --ttl DURGeldigheidsduur7d
-b, --burnNa lezen verwijderen (eenmalige download)uit
-u, --uploader-onlyAlleen uw eigen API-sleutel kan downloaden (Orbit; alias --private)uit
--timeout DUROverdrachtstimeoutgeen
--server URLServer-URLhttps://ttl.space
-h3, --http3HTTP/3 (QUIC) proberen, terugval op TCPuit
--jsonJSON-uitvoer naar stdout (voor scripts en AI-agenten)uit

Get-flags

FlagBeschrijvingStandaard
-p, --password POntsleutelingswachtwoordinteractief
--password-stdinWachtwoord van stdin lezen
--password-file FWachtwoord uit bestand lezen
-o, --output DIRUitvoermaphuidige map
--timeout DUROverdrachtstimeoutgeen
-h3, --http3HTTP/3 (QUIC) proberen, terugval op TCPuit
--jsonJSON-uitvoer naar stdout (voor scripts en AI-agenten)uit

TTL-waarden

Gratis: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d

Orbit extra: 14d 15d 28d 30d permanent

Timeout

Standaard: geen. Een overdracht die stokt, gaat vanzelf verder en stopt als die niet verder kan. Stel een limiet in met --timeout 30m of --timeout 2h.

Voorbeelden

Script: back-up en upload

#!/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

Link naar klembord kopiëren (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

Link naar klembord kopiëren (Linux)

$ ttl send -p mypass123 file.pdf | xclip -sel clip

Eenmalig geheim met zelfvernietiging

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# Link werkt precies één keer, verloopt na 5 minuten

JSON-modus (scripts & AI-agenten)

# 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,"uploader_only":false,"is_permanent":false,"password":"aB3kL9mXq7Rt"}

# downloaden
$ ttl --json get -p aB3kL9mXq7Rt 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-plan

Orbit ontgrendelt grotere bestanden (10 GB), langere bewaring (30 dagen, of permanent), privébestanden (alleen uw API-sleutel kan ze downloaden) en bestandsbeheer (weergeven en verwijderen). Volledige vergelijking: Features.

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: gevraagd zonder weergave, zodat hij niet in de shellgeschiedenis belandt
$ ttl activate
Enter Orbit API key: ********
Orbit plan activated. Key saved to /usr/local/bin/ttl.key
# niet-interactief: ttl activate --key-stdin  |  ttl activate --key-file F

# plan en gebruik controleren
$ 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

# verzenden met verlengde TTL
$ ttl send -t 30d large-backup.tar.gz
# permanent bestand (alleen Orbit): geen vervaldatum, bewaard tot u het verwijdert of uw abonnement eindigt
$ ttl send -t permanent archive.tar.gz
# een privébestand verzenden: alleen uw API-sleutel kan het downloaden (alleen Orbit)
$ ttl send -u payroll.xlsx

# 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

HTTP API

Upload en download vereisen de versleutelingspipeline van de CLI (Argon2id + XChaCha20-Poly1305 + blok-AEAD). Gebruik voor scripts ttl send / ttl get of de --json-modus. De onderstaande endpoints zijn voor Orbit-bestandsbeheer.

Bestanden weergeven (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}

# volgende pagina: alleen als has_more true is; geef next_cursor uit het vorige antwoord mee
$ curl "https://ttl.space/v1/files?cursor=1711800600123456" -H "X-API-Key: ttl_orbit_..."

Geeft de bestanden weer die met deze sleutel zijn geüpload, nieuwste eerst, 20 per pagina. Als has_more true is, bevat het antwoord ook next_cursor; geef die mee als ?cursor= om de volgende pagina op te halen. Vereist Orbit-plan.

Bestand verwijderen (Orbit)

$ 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.

Foutreacties

StatusBetekenis
401Ongeldige of verlopen API-sleutel
403Functie vereist Orbit-plan
404Bestand niet gevonden of behoort niet tot deze sleutel
429Aanvraaglimiet overschreden
500Interne serverfout, probeer het later opnieuw
502Opslag tijdelijk niet beschikbaar, probeer het later opnieuw

Limieten

BeperkingGratisOrbit
Max. bestandsgrootte2 GB10 GB
Max. TTL7 dagen30 dagen of permanent
Uploads per dag10Onbeperkt
Uploadvolume per dag (per IP)10 GBOnbeperkt
Gelijktijdige uploads1 per IP1 per IP en per API-sleutel
Opslagquotum✗500 GB
Bestandsoverzicht✗✓
Vroegtijdig verwijderen✓✓
Privébestanden (alleen uploader)✗✓
Min. wachtwoordlengte8 tekens
Verzoeken per IP30 per 10 seconden
Verbindingen per IP10 gelijktijdig

Versleuteling

Bestanden worden op uw apparaat versleuteld voordat ze worden geüpload. De server slaat alleen versleutelde tekst op en kan uw bestanden niet ontsleutelen.

ComponentAlgoritme / Waarde
SleutelafleidingArgon2id (time=3, memory=64 MiB, parallelism=1)
CijferXChaCha20-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.