Brukerveiledning

← Home

Hurtigstart

# Send fil — passord genereres automatisk, lenke + passord vises
$ 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

# Last ned — passord blir spurt om interaktivt
$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)

CLI-verktøyet krypterer, laster opp, laster ned og dekrypterer automatisk. Serveren ser aldri passordet ditt eller klartekstdataene dine.

Installasjon

Homebrew (macOS)

$ brew install tweenietomatoes/ttl/ttl

Scoop (Windows)

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

Forhåndskompilert binærfil

# Last ned for din plattform fra utgivelsene
$ 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

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

Fra kildekoden

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

Verifiser

$ ttl version
ttl v1.3.0

Sende filer

Enkel sending

# Generer passord automatisk, standard TTL 7d
$ ttl send report.xlsx

Hvis det ikke er oppgitt noe passord i terminalen, spør CLI-verktøyet:

No password provided. Generate one? [Y/n]:

Trykk Enter eller skriv y for å generere automatisk.

Egendefinert passord

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

Slett etter lesing

# Filen slettes permanent etter første nedlasting
$ ttl send -b photo.jpg

Egendefinert TTL

$ ttl send -t 5m temp-credentials.txt   # utløper om 5 minutter
$ ttl send -t 30m meeting-link.txt      # utløper om 30 minutter
$ ttl send -t 6h backup.tar.gz          # utløper om 6 timer
$ ttl send -t 1d daily-report.pdf       # utløper om 1 dag
$ ttl send -t 3d project-archive.zip    # utløper om 3 dager
$ ttl send -t 5d design-assets.zip      # utløper om 5 dager
$ ttl send report.xlsx                  # utløper om 7 dager (standard)

Laste ned filer

Interaktivt (terminal)

$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)

Passordet vises ikke. Det opprinnelige filnavnet gjenopprettes.

Kun med token

# Du kan bruke bare det 10-tegns tokenet i stedet for den fullstendige URL-en
$ ttl get aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)

Utdatamappe

$ ttl get -o ~/Downloads aBcDeFgHiJ

Som standard lagres filer i gjeldende mappe. Bruk -o / --output for å angi en annen mappe.

Med passordflagg

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

Nettleser

Du kan også laste ned og dekryptere filer i nettleseren ved å besøke lenken direkte. Webgrensesnittet bruker det samme krypteringsbiblioteket og ber om passordet ditt. Ingen programvareinstallasjon nødvendig.

Passordadministrasjon

Passordet brukes som grunnlag for krypteringsnøkkelen. Det forlater aldri enheten din og sendes aldri til serveren. Det finnes fem måter å oppgi det på:

1. Automatisk generering (kun ved sending)

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

Genererer et kryptografisk tilfeldig 8-tegns passord fra [0-9A-Za-z]. Kun tilgjengelig ved send i terminalen.

2. Interaktiv inntasting

$ ttl send notes.txt
No password provided. Generate one? [Y/n]: n
Enter password: ********
Confirm password: ********

$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********

Passordet vises ikke og lagres ikke i skallhistorikken. Ved send velger du først om det skal genereres automatisk. Ved get blir du bedt om å taste inn passordet direkte.

3. Flagg: -p / --password

$ ttl send -p mySecretPass file.zip
$ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password er synlig i ps aux-utdata og kan lagres i skallhistorikken (~/.bash_history). Unngå bruk i delte miljøer og skript. Bruk --password-stdin eller --password-file i stedet.

4. Stdin: --password-stdin

# Videresend via echo
$ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz

# Videresend fra passordbehandler
$ pass show ttl/key | ttl send --password-stdin data.zip

# Videresend fra miljøvariabel
$ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ

# Heredoc
$ ttl send --password-stdin report.pdf <<<"mySecretPass"

Leser den første linjen fra stdin. Nyttig i skript, CI/CD-pipelines og automatisering. Hvis stdin ikke er en terminal og ingen passordkilde er angitt, avsluttes CLI-verktøyet med en feil (med unntak av --json, som automatisk genererer et passord).

5. Fil: --password-file

$ ttl send --password-file /run/secrets/key report.xlsx
$ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ

Leser den første linjen i filen (avsluttende linjeskift fjernes). Kompatibel med Docker Secrets (/run/secrets/), Vault-agent-filer og lignende mønstre.

6. Automatisk oppdaget fil: ttl.password

Hvis det ikke oppgis et eksplisitt passord, søker CLI etter en ttl.password-fil ved siden av programmet, deretter ~/.ttl/password. Første linje brukes som passord.

Bare én eksplisitt passordkilde kan brukes om gangen. -p / --password, --password-stdin og --password-file kan ikke kombineres. Den automatisk oppdagede ttl.password-filen sjekkes bare når ingen av disse er oppgitt. Minstelengde: 8 tegn.

Flaggreferanse

Send-flagg

FlaggBeskrivelseStandard
-p, --password PKrypteringspassordinteraktiv
--password-stdinLes passord fra stdin
--password-file FLes passord fra fil
-t, --ttl DURGyldighetsvarighet7d
-b, --burnSlett etter lesing (engangs nedlasting)av
--timeout DUROverføringstidsavbruddauto
--server URLServer-URLhttps://ttl.space
-h3, --http3Prøv HTTP/3 (QUIC), fallback til TCPav
--jsonJSON-utdata til stdout (for skript og KI-agenter)av

Get-flagg

FlaggBeskrivelseStandard
-p, --password PDekrypteringspassordinteraktiv
--password-stdinLes passord fra stdin
--password-file FLes passord fra fil
-o, --output DIRUtdatamappegjeldende mappe
--timeout DUROverføringstidsavbruddauto
-h3, --http3Prøv HTTP/3 (QUIC), fallback til TCPav
--jsonJSON-utdata til stdout (for skript og KI-agenter)av

TTL-verdier

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

Orbit legger til: 14d 15d 28d 30d

Tidsavbrudd

Standard: auto — beregnet ut fra filstørrelse med antatt 1 Mbps + 2 minutters buffer (minimum 5 minutter). Overstyr med --timeout 10m eller --timeout 1h.

Eksempler

Skript: Sikkerhetskopi og opplasting

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

Kopier lenke til utklippstavlen (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

Kopier lenke til utklippstavlen (Linux)

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

Engangshemmelighet med selvsletting

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# Lenken fungerer nøyaktig én gang, utløper etter 5 minutter

JSON-modus (skript & KI-agenter)

# sending — passord genereres automatisk i 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"}

# nedlasting
$ ttl --json get -p aB3kL9mX xK9mQ2vLpA
{"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"}

# feil returnerer ok:false
{"ok":false,"error":"Link not found"}

I --json-modus er all utdata strukturert JSON på stdout. Hvis det ikke oppgis passord ved sending, genereres et automatisk og inkluderes i svaret. Avslutningskode er 0 ved suksess og 1 ved feil.

Orbit-plan

Orbit gir tilgang til større filer (10 GB), lengre lagring (30 dager) og filbehandling (liste og slett).

API-nøkkelen oppdages automatisk: miljøvariabelen TTL_API_KEY, ttl.key ved siden av programmet eller ~/.ttl/key. Bruk ttl activate for å lagre nøkkelen eller skriv den manuelt til en av disse plasseringene.

# aktiver nøkkelen din
$ ttl activate ttl_orbit_aBcDeFgHiJ...
Orbit plan activated. Key saved to /usr/local/bin/ttl.key

# sjekk plan og bruk
$ 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

# send med forlenget TTL
$ ttl send -t 30d large-backup.tar.gz

# list nylige opplastinger
$ 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

# slett en fil
$ ttl delete xK9mQ2vLpA
Deleted: xK9mQ2vLpA

# fjern lagret nøkkel
$ ttl deactivate
Key file removed: /usr/local/bin/ttl.key

HTTP API

Opplasting og nedlasting krever CLI-ens krypteringspipeline (Argon2id + XChaCha20-Poly1305 + chunk-AEAD). For skript, bruk ttl send / ttl get eller --json-modus. Endepunktene nedenfor er for Orbit-filbehandling.

List filer (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}]}

Returnerer alle filer lastet opp med denne nøkkelen. Krever Orbit-plan.

Slett fil (Orbit)

$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."

Returnerer 204 No Content ved suksess. Krever Orbit-plan. Filen må tilhøre denne nøkkelen.

Feilsvar

StatusBetydning
401Ugyldig eller utløpt API-nøkkel
403Funksjonen krever Orbit-plan
404Fil ikke funnet eller tilhører ikke denne nøkkelen
429Forespørselsgrense overskredet

Begrensninger

BegrensningGratisOrbit
Maks. filstørrelse2 GB10 GB
Maks. TTL7 dager30 dager
Opplastinger per dag1050
Lagringskvote250 GB
Liste & slett
Min. passordlengde8 tegn
Forespørsler per IP30 per 10 sekunder
Tilkoblinger per IP10 samtidige

Kryptering

Filer krypteres på enheten din før de lastes opp. Serveren lagrer kun chiffertekst og kan ikke dekryptere filene dine.

KomponentAlgoritme / Verdi
NøkkelavledningArgon2id (time=3, memory=64 MB, parallelism=1)
ChifferXChaCha20-Poly1305 AEAD

Enhver endring av chifferteksten fører til at dekrypteringen mislykkes. Serveren verifiserer at den som laster ned kjenner riktig passord før chifferteksten frigis, ved hjelp av et enveis-token avledet fra krypteringsnøkkelen.