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

हिन्दी

त्वरित आरंभ

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

# डाउनलोड करें: पासवर्ड इंटरैक्टिव रूप से पूछा जाता है
$ 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/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

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

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

सत्यापन

$ ttl version
ttl 1.6.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)

पासवर्ड सुरक्षित रूप से पढ़ा जाता है, टर्मिनल पर नहीं दिखाया जाता। मूल फ़ाइल नाम संरक्षित रहता है; यदि आउटपुट डायरेक्टरी में उसी नाम की फ़ाइल पहले से मौजूद है, तो उस पर ओवरराइट करने के बजाय फ़ाइल name (1).ext के रूप में सहेजी जाती है।

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

# पूर्ण URL के बजाय केवल 10 अक्षर का टोकन उपयोग कर सकते हैं
$ ttl get aBcDeFgHiJ

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

$ ttl get -o ~/Downloads aBcDeFgHiJ

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

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

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

ब्राउज़र

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

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

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

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

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

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

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पढ़ने के बाद मिटाएँ (एक बार डाउनलोड)बंद
-u, --uploader-onlyकेवल आपकी अपनी API कुंजी से डाउनलोड किया जा सकता है (Orbit; उपनाम --private)बंद
--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 permanent

टाइमआउट

डिफ़ॉल्ट: कोई सीमा नहीं। रुका हुआ ट्रांसफ़र अपने आप फिर शुरू होता है, और आगे न बढ़ पाने पर बंद हो जाता है। सीमा तय करने के लिए --timeout 30m या --timeout 2h का उपयोग करें।

उदाहरण

स्क्रिप्ट: बैकअप और अपलोड

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

# डाउनलोड करें
$ ttl --json get -p aB3kL9mXq7Rt 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 कुंजी से डाउनलोड किया जा सकता है), और फ़ाइल प्रबंधन (सूची और हटाना) प्रदान करता है। पूरी तुलना: Features।

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

# अपनी कुंजी सक्रिय करें: बिना स्क्रीन पर दिखाए पूछी जाती है, इसलिए शेल इतिहास में नहीं जाती
$ ttl activate
Enter Orbit API key: ********
Orbit plan activated. Key saved to /usr/local/bin/ttl.key
# गैर-इंटरैक्टिव: ttl activate --key-stdin  |  ttl activate --key-file F

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

# विस्तारित TTL के साथ भेजें
$ ttl send -t 30d large-backup.tar.gz
# स्थायी फ़ाइल (केवल Orbit): कोई समाप्ति नहीं, जब तक आप इसे हटा न दें या आपकी सदस्यता समाप्त न हो जाए, तब तक रखी जाती है
$ ttl send -t permanent archive.tar.gz
# निजी फ़ाइल भेजें: इसे केवल आपकी API कुंजी से डाउनलोड किया जा सकता है (केवल Orbit)
$ ttl send -u payroll.xlsx

# हाल के अपलोड की सूची देखें
$ 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,"uploader_only":false,"is_permanent":false,"is_note":false,"perm_grace_until":0}],"has_more":false}

# अगला पृष्ठ: केवल जब has_more true हो; पिछली प्रतिक्रिया का next_cursor भेजें
$ curl "https://ttl.space/v1/files?cursor=1711800600123456" -H "X-API-Key: ttl_orbit_..."

इस कुंजी से अपलोड की गई फ़ाइलें लौटाता है, सबसे नई पहले, प्रति पृष्ठ 20। जब has_more true होता है, तो प्रतिक्रिया में next_cursor भी शामिल होता है; अगला पृष्ठ प्राप्त करने के लिए इसे ?cursor= के रूप में भेजें। 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अनुरोध सीमा पार हो गई
500आंतरिक सर्वर त्रुटि, बाद में पुनः प्रयास करें
502संग्रहण अस्थायी रूप से अनुपलब्ध, बाद में पुनः प्रयास करें

सीमाएँ

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

एन्क्रिप्शन

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

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

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