tsbin is a simple, open-source, temporary file-sharing application that allows users to securely upload, store, and share files. Encrypted files are stored via Telegram, while Appwrite handles authentication and metadata.
All files are end-to-end encrypted, ensuring privacy and security.
This project is intended for legal and ethical use only. The team does not support sharing illegal or unethical content.
- End-to-end encrypted file storage
- Temporary / ephemeral sharing (files auto-expire)
- Supports any file type: images, videos, snippets, documents, etc.
- Optional passcode protection for access
- CLI-first interaction for uploading and retrieving files
- Web interface support for non-CLI users
- Lightweight, simple, and open-source
flowchart LR
subgraph UserSide[User Interaction]
A[CLI / Web Interface]
end
subgraph LocalProcess[Local Device / Browser]
B[Local Encryption]
end
subgraph TelegramStorage[Telegram Storage]
C[Encrypted File Uploaded via Bot]
F[Encrypted File Stored on Telegram]
end
subgraph AppwriteBackend[Appwrite Backend]
D[Send Metadata: filename, expiry, passcode]
E[Authentication & Metadata Storage]
end
subgraph RecipientSide[Recipient]
G[Download Encrypted File]
H[Decrypt Locally Using Key / Passcode]
end
A --> B
B --> C
B --> D
C --> F
D --> E
F --> G
E --> G
G --> H
- Local Encryption: Files are encrypted on the user’s device before uploading. This ensures that the raw file is never exposed to Telegram or tsbin servers in plaintext.
- Upload via Telegram Bot: Encrypted files are sent to Telegram for storage. Telegram only stores the encrypted data.
- Metadata & Auth via Appwrite: Appwrite manages user authentication, file metadata, expiry, and optional passcodes.
- Sharing: Users can generate temporary links with optional passcodes for secure sharing.
- Download & Decryption: Recipients download the encrypted file and decrypt it locally using the encryption key or passcode.
Security Note: Only users with the encryption key or passcode can access the file. tsbin never sees unencrypted data.
- Node.js >= 18
- npm or yarn
- Telegram account & bot token
- Appwrite server instance for auth and metadata
git clone https://github.com/yourusername/tsbin.git
cd tsbin
npm install- Create a bot using BotFather on Telegram.
- Copy the bot token and set it in a
.envfile:
TELEGRAM_BOT_TOKEN=your_bot_token_here
- Install and configure Appwrite server.
- Configure authentication (email/password, OAuth, etc.).
- Set Appwrite endpoint and project credentials in
.env:
APPWRITE_ENDPOINT=your_appwrite_endpoint
APPWRITE_PROJECT_ID=your_project_id
APPWRITE_API_KEY=your_api_key
Upload a file via CLI
npx tsbin upload /path/to/file --passcode 1234Download a file via CLI
npx tsbin download <file-id> --passcode 1234Encrypt & share snippets
npx tsbin snippet "Hello World" --passcode 1234Web Interface
- Users can upload, browse, and download files through a minimal web interface.
- Web uploads are encrypted locally in the browser before sending to Telegram.
- End-to-end encryption: Only authorized users with the key or passcode can access files.
- Optional passcode protection for sharing.
- Temporary storage ensures files expire automatically.
- tsbin does not access unencrypted files.
- Build CLI for upload, download, and snippet sharing
- Integrate Telegram bot for storage
- Integrate Appwrite for authentication and metadata management
- Implement local encryption & decryption
- Add optional passcode-protected links
- Implement temporary file expiry
- Build lightweight web interface
- Detailed documentation for contributors
MIT License — free and open-source
tsbin is designed for legal and ethical sharing only. Do not use this application for illegal, harmful, or unethical activity.