उपयोग मार्गदर्शिका

हिन्दी

त्वरित आरंभ

# फ़ाइल भेजें — पासवर्ड स्वतः उत्पन्न होता है, लिंक + पासवर्ड प्रिंट होता है
$ 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

# डाउनलोड करें — पासवर्ड इंटरैक्टिव रूप से पूछा जाता है
$ ttl get https://ttl.space/aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)

CLI एन्क्रिप्शन, अपलोड, डाउनलोड और डिक्रिप्शन को स्वचालित रूप से संभालता है। सर्वर कभी भी आपका पासवर्ड या सादा डेटा नहीं देखता।

इंस्टॉल

Homebrew (macOS)

$ brew install tweenietomatoes/ttl/ttl

Scoop (Windows)

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

पूर्व-निर्मित बाइनरी

# अपने प्लेटफ़ॉर्म के लिए रिलीज़ से डाउनलोड करें
$ 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

सोर्स कोड से बनाएँ

$ 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

फ़ाइलें भेजना

सामान्य भेजना

# पासवर्ड स्वतः उत्पन्न, डिफ़ॉल्ट 7 दिन TTL
$ 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

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

पासवर्ड सुरक्षित रूप से पढ़ा जाता है — टर्मिनल पर नहीं दिखाया जाता। मूल फ़ाइल नाम संरक्षित रहता है।

केवल टोकन के साथ

# पूर्ण URL के बजाय केवल 10 अक्षर का टोकन उपयोग कर सकते हैं
$ ttl get aBcDeFgHiJ
Enter password: ********
Password verified
◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)

आउटपुट डायरेक्टरी

$ ttl get -o ~/Downloads aBcDeFgHiJ

डिफ़ॉल्ट रूप से फ़ाइलें वर्तमान डायरेक्टरी में सहेजी जाती हैं। अलग डायरेक्टरी निर्दिष्ट करने के लिए -o / --output का उपयोग करें।

पासवर्ड फ़्लैग के साथ

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

ब्राउज़र

आप लिंक पर सीधे जाकर अपने ब्राउज़र में भी फ़ाइलें डाउनलोड और डिक्रिप्ट कर सकते हैं। वेब इंटरफ़ेस उसी एन्क्रिप्शन लाइब्रेरी का उपयोग करता है और आपसे पासवर्ड पूछता है। किसी सॉफ़्टवेयर की इंस्टॉलेशन आवश्यक नहीं है।

पासवर्ड प्रबंधन

पासवर्ड एन्क्रिप्शन कुंजी का आधार है। यह कभी भी आपके उपकरण से बाहर नहीं जाता और सर्वर को कभी नहीं भेजा जाता। इसे प्रदान करने के पाँच तरीके हैं:

1. स्वतः उत्पन्न (केवल भेजते समय)

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

[0-9A-Za-z] वर्ण सेट से क्रिप्टोग्राफ़िक रूप से यादृच्छिक 8 अक्षरों का पासवर्ड उत्पन्न करता है। केवल टर्मिनल में send के दौरान उपलब्ध है।

2. इंटरैक्टिव प्रॉम्प्ट

$ 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 के दौरान सीधे पूछा जाता है।

3. फ़्लैग: -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 का उपयोग करें।

4. Stdin: --password-stdin

# echo से पाइप
$ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz

# पासवर्ड मैनेजर से पाइप
$ pass show ttl/key | ttl send --password-stdin data.zip

# एनवायरनमेंट वेरिएबल से पाइप
$ 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 उपयोग होने पर छोड़कर — उस स्थिति में पासवर्ड स्वतः उत्पन्न होता है)।

5. फ़ाइल: --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 फ़ाइलों और इसी तरह के पैटर्न के साथ संगत है।

6. स्वतः पहचानी गई फ़ाइल: ttl.password

यदि कोई स्पष्ट पासवर्ड नहीं दिया गया है, तो CLI पहले बाइनरी के बगल में ttl.password फ़ाइल खोजता है, फिर ~/.ttl/password। पहली पंक्ति पासवर्ड के रूप में उपयोग की जाती है।

एक समय में केवल एक स्पष्ट पासवर्ड स्रोत का उपयोग किया जा सकता है। -p / --password, --password-stdin और --password-file को मिलाना एक त्रुटि है। स्वतः पहचानी गई ttl.password फ़ाइल केवल तभी जाँची जाती है जब इनमें से कोई भी नहीं दिया गया हो। न्यूनतम पासवर्ड लंबाई 8 अक्षर है।

विकल्प संदर्भ

भेजने के फ़्लैग

फ़्लैगविवरणडिफ़ॉल्ट
-p, --password Pएन्क्रिप्शन पासवर्डइंटरैक्टिव
--password-stdinstdin से पासवर्ड पढ़ें
--password-file Fफ़ाइल से पासवर्ड पढ़ें
-t, --ttl अवधिजीवनकाल7d
-b, --burnपढ़ने के बाद मिटाएँ (एक बार डाउनलोड)बंद
--timeout अवधिट्रांसफ़र टाइमआउटस्वतः
--server URLसर्वर URLhttps://ttl.space
-h3, --http3HTTP/3 (QUIC) आज़माएँ, TCP पर वापस जाएँबंद
--jsonstdout पर JSON आउटपुट (स्क्रिप्ट और AI एजेंट के लिए)बंद

डाउनलोड के फ़्लैग

फ़्लैगविवरणडिफ़ॉल्ट
-p, --password Pडिक्रिप्शन पासवर्डइंटरैक्टिव
--password-stdinstdin से पासवर्ड पढ़ें
--password-file Fफ़ाइल से पासवर्ड पढ़ें
-o, --output DIRआउटपुट डायरेक्टरीवर्तमान डायरेक्टरी
--timeout अवधिट्रांसफ़र टाइमआउटस्वतः
-h3, --http3HTTP/3 (QUIC) आज़माएँ, TCP पर वापस जाएँबंद
--jsonstdout पर JSON आउटपुट (स्क्रिप्ट और AI एजेंट के लिए)बंद

TTL मान

निःशुल्क: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d

Orbit अतिरिक्त: 14d 15d 28d 30d

टाइमआउट

डिफ़ॉल्ट: स्वतः — 1 Mbps पर फ़ाइल आकार से अनुमानित + 2 मिनट का मार्जिन (न्यूनतम 5 मिनट)। --timeout 10m या --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

लिंक को क्लिपबोर्ड पर कॉपी करें (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

लिंक को क्लिपबोर्ड पर कॉपी करें (Linux)

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

एक बार का रहस्य

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# लिंक ठीक एक बार काम करता है, 5 मिनट में समाप्त

JSON मोड (स्क्रिप्ट & AI एजेंट)

# भेजें — JSON मोड में पासवर्ड स्वतः उत्पन्न होता है
$ ttl --json send report.pdf
{"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"}

# डाउनलोड करें
$ ttl --json get -p aB3kL9mX 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 योजना

Orbit बड़ी फ़ाइलें (10 GB), लंबी अवधारण (30 दिन), और फ़ाइल प्रबंधन (सूची और हटाना) प्रदान करता है।

API कुंजी स्वतः पहचानी जाती है: TTL_API_KEY एनवायरनमेंट वेरिएबल, बाइनरी के बगल में ttl.key, या ~/.ttl/key। कुंजी सहेजने के लिए ttl activate का उपयोग करें, या इनमें से किसी भी स्थान पर मैन्युअल रूप से लिखें।

# अपनी कुंजी सक्रिय करें
$ ttl activate ttl_orbit_aBcDeFgHiJ...
Orbit plan activated. Key saved to /usr/local/bin/ttl.key

# योजना और उपयोग जाँचें
$ 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 / 500.0 GB

# विस्तारित TTL के साथ भेजें
$ ttl send -t 30d large-backup.tar.gz

# हाल के अपलोड की सूची देखें
$ 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

HTTP API

अपलोड और डाउनलोड के लिए CLI की एन्क्रिप्शन पाइपलाइन आवश्यक है (Argon2id + XChaCha20-Poly1305 + खंडित AEAD)। स्क्रिप्ट के लिए ttl send / ttl get या --json मोड का उपयोग करें। नीचे दिए गए एंडपॉइंट Orbit फ़ाइल प्रबंधन के लिए हैं।

फ़ाइलें सूचीबद्ध करें (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}]}

इस कुंजी से अपलोड की गई सभी फ़ाइलें लौटाता है। Orbit योजना आवश्यक है।

फ़ाइल हटाएँ (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अनुरोध सीमा पार हो गई

सीमाएँ

प्रतिबंधनिःशुल्कOrbit
अधिकतम फ़ाइल आकार2 GB10 GB
अधिकतम TTL7 दिन30 दिन
प्रतिदिन अपलोड10असीमित
संग्रहण कोटा500 GB
सूची और हटाना
न्यूनतम पासवर्ड लंबाई8 अक्षर
प्रति IP अनुरोध10 सेकंड में 30
प्रति IP कनेक्शन10 समवर्ती

एन्क्रिप्शन

फ़ाइलें अपलोड से पहले आपके उपकरण पर एन्क्रिप्ट की जाती हैं। सर्वर केवल सिफ़रटेक्स्ट संग्रहीत करता है और आपकी फ़ाइलों को डिक्रिप्ट नहीं कर सकता।

घटकएल्गोरिथ्म / मान
कुंजी व्युत्पत्तिArgon2id (time=3, memory=64 MB, parallelism=1)
सिफ़रXChaCha20-Poly1305 AEAD

सिफ़रटेक्स्ट में कोई भी परिवर्तन डिक्रिप्शन को विफल कर देता है। सर्वर सिफ़रटेक्स्ट जारी करने से पहले सत्यापित करता है कि डाउनलोड करने वाला सही पासवर्ड जानता है, एन्क्रिप्शन कुंजी से व्युत्पन्न एक-तरफ़ा टोकन का उपयोग करके।