| TeleVault | Cloud Storage | |
|---|---|---|
| Cost | Free | $5-30/month |
| Limit | Unlimited | 15 GB - 2 TB |
| Encryption | AES-256-GCM client-side | Server-side or none |
| Trust | Zero-trust (you hold the key) | Trust the provider |
| Max file size | 2 GB | Varies |
| Speed | Parallel chunk transfers | Single connection |
AES-256-GCM with scrypt key derivation. Your password never leaves your machine. Telegram only sees ciphertext.
Upload 3 chunks, download 5 chunks simultaneously. 100 MB default chunk size.
CRC32-protected progress files survive interruptions. Resume with --resume.
Atomic config writes, sequential index access, cached lookups, crash-safe upload/delete/stream. Your data comes first.
Incremental snapshots with retention policies. Restore to any point in time.
Mount your vault as a local filesystem. On-demand chunk streaming with LRU cache.
Access files over HTTP from any device. macOS Finder, Windows Explorer, mobile apps.
Interactive file browser with detail panel. Still improving โ CLI commands are the most reliable.
cat file | tvt push - ยท tvt cat file | jq ยท tvt ls --json
Schedule backups with systemd timers or cron. Watch directories for live changes.
pip install televault
# Optional extras
pip install televault[fuse] # FUSE mount
pip install televault[webdav] # WebDAV server
pip install televault[preview] # Image previews
# 1) Get API credentials at https://my.telegram.org
export TELEGRAM_API_ID=your_id
export TELEGRAM_API_HASH=your_hash
# 2) Login
tvt login
# 3) Setup (interactive, validates channel, sends test message)
tvt setup
# 4) Go!
tvt push photo.jpg
tvt ls
tvt pull photo.jpg
tvt push <file>Upload file (use - for stdin)tvt pull <file>Download file (-o - for stdout)tvt ls [--json]List filestvt cat <file>Stream file to stdouttvt preview <file>Preview without full downloadtvt find <query> [--json]Search files by nametvt info <file> [--json]Detailed file infotvt stat [--json]Vault statisticstvt rm <file>Delete filetvt verify <file>Verify file integritytvt gc [--dry-run]Garbage collectiontvt whoamiShow account infotvt loginAuthenticate with Telegramtvt setupConfigure channel (interactive)tvt channelShow channel infotvt tuiLaunch terminal UI (beta)tvt --versionShow versiontvt backup create <dir>Create snapshottvt backup create --incrementalIncremental backuptvt backup create --dry-runShow plan without uploadingtvt backup listList snapshotstvt backup restore <id>Restore from snapshottvt backup prunePrune old snapshotstvt backup verify <id>Verify snapshot integritytvt backup delete <id>Delete snapshottvt mount -m ~/driveFUSE mount with streaming cachetvt mount --read-only -m ~/driveRead-only mounttvt mount --cache-size 500500 MB LRU cachetvt serveWebDAV server on :8080tvt serve --host 0.0.0.0 --port 9090Custom host/porttvt serve --read-onlyRead-only WebDAVtvt schedule create <dir> --name dailyCreate daily scheduletvt schedule listList schedulestvt schedule install dailyInstall as systemd timertvt schedule uninstall dailyRemove systemd timertvt watch --path /dataWatch directory for changestvt watch --path /data --interval 10Custom poll intervalYour password never leaves your machine. Each chunk gets a random 16-byte salt and 12-byte nonce. BLAKE3 hashes verify integrity at every stage. If you lose your password, there is no recovery.
git clone https://github.com/YahyaToubali/televault.git
cd televault
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,fuse,webdav,preview]"
pytest # Run tests
ruff check src/ # Lint
cli.py โ Click CLI, command dispatch, friendly errorscore.py โ TeleVault class: upload, download, streamtelegram.py โ MTProto client, channel ops, indexmodels.py โ FileMetadata, ChunkInfo, VaultIndexchunker.py โ File splitting, ChunkWriter, BLAKE3crypto.py โ AES-256-GCM, scrypt, streamingcompress.py โ zstd compressionconfig.py โ Config dataclass, atomic persistencefuse.py โ FUSE driver with on-demand streamingpreview.py โ Terminal preview from headerstui.py โ Textual TUI with detail panelrun_async() โ friendly messages onlytvt and televaulttests/See ARCHITECTURE.md for detailed system design.