# फ़ाइल भेजें — पासवर्ड स्वतः उत्पन्न होता है, लिंक + पासवर्ड प्रिंट होता है $ 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 एन्क्रिप्शन, अपलोड, डाउनलोड और डिक्रिप्शन को स्वचालित रूप से संभालता है। सर्वर कभी भी आपका पासवर्ड या सादा डेटा नहीं देखता।
$ brew install tweenietomatoes/ttl/ttl
$ 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 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 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
आप लिंक पर सीधे जाकर अपने ब्राउज़र में भी फ़ाइलें डाउनलोड और डिक्रिप्ट कर सकते हैं। वेब इंटरफ़ेस उसी एन्क्रिप्शन लाइब्रेरी का उपयोग करता है और आपसे पासवर्ड पूछता है। किसी सॉफ़्टवेयर की इंस्टॉलेशन आवश्यक नहीं है।
पासवर्ड एन्क्रिप्शन कुंजी का आधार है। यह कभी भी आपके उपकरण से बाहर नहीं जाता और सर्वर को कभी नहीं भेजा जाता। इसे प्रदान करने के पाँच तरीके हैं:
$ ttl send notes.txt No password provided. Generate one? [Y/n]: y Generated password: aB3kL9mX
[0-9A-Za-z] वर्ण सेट से क्रिप्टोग्राफ़िक रूप से यादृच्छिक 8 अक्षरों का पासवर्ड उत्पन्न करता है। केवल टर्मिनल में send के दौरान उपलब्ध है।
$ 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 के दौरान सीधे पूछा जाता है।
-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 का उपयोग करें।--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 उपयोग होने पर छोड़कर — उस स्थिति में पासवर्ड स्वतः उत्पन्न होता है)।
--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 फ़ाइलों और इसी तरह के पैटर्न के साथ संगत है।
ttl.passwordयदि कोई स्पष्ट पासवर्ड नहीं दिया गया है, तो CLI पहले बाइनरी के बगल में ttl.password फ़ाइल खोजता है, फिर ~/.ttl/password। पहली पंक्ति पासवर्ड के रूप में उपयोग की जाती है।
-p / --password, --password-stdin और --password-file को मिलाना एक त्रुटि है। स्वतः पहचानी गई ttl.password फ़ाइल केवल तभी जाँची जाती है जब इनमें से कोई भी नहीं दिया गया हो। न्यूनतम पासवर्ड लंबाई 8 अक्षर है।| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
-p, --password P | एन्क्रिप्शन पासवर्ड | इंटरैक्टिव |
--password-stdin | stdin से पासवर्ड पढ़ें | |
--password-file F | फ़ाइल से पासवर्ड पढ़ें | |
-t, --ttl अवधि | जीवनकाल | 7d |
-b, --burn | पढ़ने के बाद मिटाएँ (एक बार डाउनलोड) | बंद |
--timeout अवधि | ट्रांसफ़र टाइमआउट | स्वतः |
--server URL | सर्वर URL | https://ttl.space |
-h3, --http3 | HTTP/3 (QUIC) आज़माएँ, TCP पर वापस जाएँ | बंद |
--json | stdout पर JSON आउटपुट (स्क्रिप्ट और AI एजेंट के लिए) | बंद |
| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
-p, --password P | डिक्रिप्शन पासवर्ड | इंटरैक्टिव |
--password-stdin | stdin से पासवर्ड पढ़ें | |
--password-file F | फ़ाइल से पासवर्ड पढ़ें | |
-o, --output DIR | आउटपुट डायरेक्टरी | वर्तमान डायरेक्टरी |
--timeout अवधि | ट्रांसफ़र टाइमआउट | स्वतः |
-h3, --http3 | HTTP/3 (QUIC) आज़माएँ, TCP पर वापस जाएँ | बंद |
--json | stdout पर JSON आउटपुट (स्क्रिप्ट और AI एजेंट के लिए) | बंद |
निःशुल्क: 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
$ 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 # लिंक ठीक एक बार काम करता है, 5 मिनट में समाप्त
# भेजें — 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 बड़ी फ़ाइलें (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
ttl send / ttl get या --json मोड का उपयोग करें। नीचे दिए गए एंडपॉइंट 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 योजना आवश्यक है।
$ 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 GB | 10 GB |
| अधिकतम TTL | 7 दिन | 30 दिन |
| प्रतिदिन अपलोड | 10 | असीमित |
| संग्रहण कोटा | — | 500 GB |
| सूची और हटाना | — | ✓ |
| न्यूनतम पासवर्ड लंबाई | 8 अक्षर | |
| प्रति IP अनुरोध | 10 सेकंड में 30 | |
| प्रति IP कनेक्शन | 10 समवर्ती | |
फ़ाइलें अपलोड से पहले आपके उपकरण पर एन्क्रिप्ट की जाती हैं। सर्वर केवल सिफ़रटेक्स्ट संग्रहीत करता है और आपकी फ़ाइलों को डिक्रिप्ट नहीं कर सकता।
| घटक | एल्गोरिथ्म / मान |
|---|---|
| कुंजी व्युत्पत्ति | Argon2id (time=3, memory=64 MB, parallelism=1) |
| सिफ़र | XChaCha20-Poly1305 AEAD |
सिफ़रटेक्स्ट में कोई भी परिवर्तन डिक्रिप्शन को विफल कर देता है। सर्वर सिफ़रटेक्स्ट जारी करने से पहले सत्यापित करता है कि डाउनलोड करने वाला सही पासवर्ड जानता है, एन्क्रिप्शन कुंजी से व्युत्पन्न एक-तरफ़ा टोकन का उपयोग करके।